Many researchers in science and engineering believe that the future of computing will heavily depend on the Grid for efficient and powerful computing, improving legacy technology, increasing demand-driven access to computational power, increasing utilization of idle capacity, sharing computational results, and providing new problem-solving techniques and tools. Substantially powerful Grids can be established using high-performance networking, computing, and programming support, regardless of the location resources and users.
We can ask what will be the biggest hurdles--in terms of programming support--to simplify distributed heterogeneous computing--in the same way that the World Wide Web simplified information sharing over the Internet. One possible answer is high performance--a slow system that has a clever motivation is not very useful. There will be a pressing need for grid-enabled applications that hide the heterogeneity and complexity of the underlying grid, without losing performance.
Today, programmers often write grid-enabled application in what is in effect an assembly language: sometimes using explicit calls to the Internet Protocol's User Datagram Protocol (UDP) or Transmission Control Protocol (TCP), with hard-coded configuration decisions for specific computing systems. We are a far from portable, efficient, high-level languages.