Oracle currently has two JVMs, JRockit which it acquired when it bought BEA Systems two years ago, and Sun's Hotspot VM which it obtained from the more recent acquisition. During a Sun-Oracle roadmap session last month Oracle's management team expressed its intention to merge the two projects. Mark Reinhold, Oracle principal engineer and former Sun employee, stated during a recent webcast that the plan on how to merge the two is "still evolving" and has been "the subject of many recent meetings".
Reinhold observed:
It's not an easy problem taking the best of each, figuring out what the long-term convergence plan is. Short term we're not going to just stop doing one of them. Customers have things in production on both, taking advantage of specific features in both. We're not going to cause an earthquake and make systems fall over...[but] At some point in time, I expect there will be one VM.
He went on to give an approximate timeframe of one-and-a-half to two years for this to happen.
The two JVMs have different strengths and weaknesses so attempting to take the best features from both makes sense and, according to Reinhold, "Oracle, both engineering wise and management wise, is committed to figuring out what the best is." He went on to give some examples:
There's stuff in JRockit that, frankly, we've been jealous of for some years. The mission control stuff is very sweet.
HotSpot, meanwhile, has performance advantages longer term: "Our sense with the HotSpot code base, especially the server compiler, is there's a lot more head room there. It's a much more-sophisticated system," he said.
It's been fascinating to learn more about JRockit over the last couple of months. It really is a world-class VM, but it is interesting that it is so different inside. It has strengths that HotSpot doesn't, and HotSpot has strengths that it doesn't, so it is going to be a fascinating project to try and take the best of both.
Reinhold speculated that the merged VM could have the JRockit garbage collector and serviceability, with the HotSpot runtime compiler and a mixed runtime system.
Reinhold also talked about JDK 7 during the webcast citing its modularity, which should enable Java to more effectively scale down to smaller devices, the multilingual capabilities coming through invokeDynamic, and the intention to make the Java language itself more productive through the Project Coin initiatives, as reasons to be excited by the next release. Developers should get a chance to play with Jigsaw, the modularity implementation, when openJDK Build 88 is released, which is expected in mid March.