Multicore hardware is quickly becoming the most realistic step towards increased computing performance. Current projections predict the availability of chips with over 64,000 cores by the end of the decade. This opens up new exciting possibilities, but also brings profound new challenges. Making parallel computing easy to use has been described as "a problem as hard as any that computer science has faced".
For many years being a C developer at Walmart meant feeling like a second-class citizen. Java and .Net developers never passed up a chance to show off their slick IDE’s complete with syntax highlighting, static code analysis and graphical debugging. Some determined developers managed to string together several command line tools to make things a little better, but most resigned to a life of letting the compiler find their syntax errors and printf statements find their runtime errors.