An earlier discussion here on the TSS, entitled: Java's been ready for many-core era; how about you?, presented numerous points regarding the readiness of the Java language for such processor architectures. This blog entry takes the discussion a little bit further
Multi-platform is not the same thing as multi-core/node. Merely having the technical capability to run code on multiple platforms is not the same as efficiently distributing and running that code on multiple nodes. Java EE takes that one step further, recommending that filesystem access not be used. See section 17.2.3 in the EJB 3 specification: Quote from EJB3 spec snipped The reference to principals obscures the remote nature of EJBs in the first place. A clearer example might be an illustration of a remote EJB deployment. Um, no. The EJB3 model is about as far away from the Erlang model as you can get and still remotely distribute code. The Java solution is an ungainly amalgamation of XML, source code annotations, and tons of IDE tooling. I realize that EJB3 has made huge improvements over the previous EJB specs but it’s still too complicated for what is does. Jini had the right idea when it started but lost its focus somewhere along the way. No, I think that we’ll need new languages and tools to adequately address the problem. And while Erlang has its warts and shortcomings I also think its the best of the current crop of tools. It provides time-tested features which directly attack the pain of writing distributed parallel code.
Read the complete post: http://weblog.hypotheticalabs.com/?p=159