As said in http://www.linux-mag.com/id/2292, MPI and OpenMP can have their limitations and should be replaced by something better.
Maybe I am a being conservative here, but Java has some limitations to be accepted in HPC:
There a lot of disbelief due to be a interpreted language. I know that most of the time JITs can achieve good performance, but they can't do heavy optimizations. Perhaps if someone make a vectorizing JIT, people will take Java more seriously.
Sometimes explicit memory management can achieve huge impact on performance.
In this paper they show that a GC program runs as fast as explicit managed memory if the machine had three times more memory [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.61.9682]. Most people wold think "ok, just buy more memory", but HPC people think "Given a cluster with X GB of memory, what is the speedup if I use explicit managed memory?" »