The bright future of parallel computing
Parallel is a hard word to spell for a native swede. In swedish it comes with 4 l as in parallell so when doing some searches I only got swedish hits.... I started thinking a bit about parallel computing after reading these interesting fragments of an internal O'Reilly conversation on the matter. The point is that processors are not gonna get much faster in the future so our hope for faster computing lies in making them run in parallel. This is a prospect worth thinking about for a while. Will this new hardware architecture imply a change in how we construct software? Probably. Java, for example, doesn't have built-in support for massive parallelism. Java has threads but they have to be created by the programmer. EJB application servers might be able to use many processors effectively since the EJB container is responsible for threading of beans. In this case a single request will always be linearly executed and the possible advantage of many processors will be wasted. The use of JMS could possibly solve this but a message that you let go doesn't report back.
Java is not the language to use with this new harware then. Without really knowing I suspect that this is about the same for C#. We need languages that support code to may run concurrently without no hard work placed on the programmer. There are probably a number of candidates for this. Nat Torkington - also for O'Reilly Radar - mentions Erlang, Haskell and E as potential languages. Wikipedia says about Erlang that:
Erlang's main strength is support for concurrency. It has a small but powerful set of primitives to create processes and communicate between them. Processes are the primary means to structure an Erlang application. Erlang processes are neither OS processes nor OS threads, but lightweight threads somewhat similar to Java's "green threads".
Interesting! The years to come will definitley see some new players challenging the dominance of Java and C# for the enterprise. The Web 2.0 toolset will be likely to get some new tools. Ajax is kind of a parallel way of writing web pages so this shift in technology may be a natural continuation of the Web 2.0 thingie.