Abstract :
History repeats itself. Since the invention of the programmable computer, numerous computer scientists keep dedicating their professional lives to the design of "the single, best" programming model, whereas programmers "vote" by choosing their favourite languages and tools. Interestingly, these choices have always been guided by non-functional properties. For programming a single computer, the most widely used models have become object-oriented and component-based programming, a choice driven by their high abstraction level, leading to high programmer productivity. For parallel computers, the winner turned out to be message passing, providing by far not the highest-possible abstraction level, but the closest match between machine architecture and programming model, leading to efficient program execution. For grids, the race is still open. Here, additional nonfunctional properties like fault-tolerance, security, and platform independence enter the scene. In this paper, we explore the scope of grid programming problems and argue for a palette of programming abstractions, each suitable for its respective problem domain
Keywords :
grid computing; programming; grid application; grid programming problem; programming abstraction; programming model; system requirement; Application software; Computer architecture; Concurrent computing; History; Message passing; Object oriented modeling; Object oriented programming; Productivity; Programming profession; Voting;