Some thoughts on the Premium JVM and the benefits of freeing the JVM separate from Java SE.
The JVM is a technology we sometimes forget to talk about, yet it is central to development on the Java platform. Like most other Java technologies, it has a JSR - #924
Clearly, all the other languages on the JVM - Fantom, Groovy, JRuby, Clojure, Scala ... - all rely on the JVM primarily. Each of them also rely on the Java libraries to some degree, but the JVM is their core, and many of them would like to only depend on the JVM in an ideal world.
At QCon San Francisco, it is reported that Adam Messinger announced in passing that there would be a premium version of the JVM alongside the gratis (free) version. This raises many questions:
- Will the premium and gratis version be released at the same time?
- Will gratis version still support the same range of operating systems?
- What extra features will the premium version have?
- Is this only management features?
- Or are there performance features?
- Who is the target market?
My concern is that once you have the split, there will be a product manager for the premium version. Their bottom line and job success will depend on moving people from gratis to paid. They will therefore lobby against adding to the gratis version and rachet up the cost of the paid version.
Logically, this is just an extension of the JRockit product and shouldn't be a threat. Lets hope that the answers to the above are suitable and provided soon so the community has reassurance.
Update 8th Nov: This Oracle press release from September 2010 indicates the underlying situation - that "premium" simply refers to a continuation of the JRockit paid for elements. I still hope that more detailed information can be provided.
Update 10th Nov: This further update from Oracle provides a public HTML summary of what was announced at JavaOne. I understand this should be considered to be the definitive word on the strategy, and effectively confirms that the "premium JVM" name is just the continuation of those parts of JRockit that were already paid for.
Since the recent news that Oracle will not allow Apache Harmony to complete as an implementation of Java SE, I've noticed a number of tweets and blogs questioning the whole JVM platform, not just Java.
There are now people considering moving to the .NET CLR or other platforms away from the JVM. This cannot be a good thing for Oracle!
As Oracle have stated, the community cannot have an open standard for the Java SE platform. If we accept that (and given the history and legalities we shouldn't) then what is the next best thing?
What if there was an open standard for the JVM?
The JSR exists - 924. All Oracle needs to do is allow it to be freely implemented, without Field Of Use or any other limitation, and independently of the rest of Java SE (which I don't believe is possible at the moment).
Update: I asked for clarification from Henrik Stahl of Oracle. He replied to me by email giving me permission to reproduce this here:
I don't see this as threatening to Oracle in the same way as Java SE is (at least not threatening technically - politically its always hard to tell). The JVM is a simple input/output machine, theoretically easy to test for compatibility independent of the rest of Java SE (please contradict me in the comments if you have additional knowledge here).
Making this available has huge benefits: It is a good PR move, softening the tension in the Java community. It allows part of Apache Harmony to be released properly. It ensures true competition in JVM performance and additional features in the same way as Java EE has benefitted. It also removes any lingering concerns that the gratis/premium version of the JVM could be abused.
There is a huge set of opportunities here!
And for Oracle, that would mean embedding the JVM bytecode definition at the heart of many more areas. Which would reconfirm the JVM as the core technology today.
The premium JVM concept should just be JRockit continued. But, given recent actions by Oracle, there has to be concern that its the first move to charging for the "real" JVM. Clarification is needed. Update: see above
Apache Software Foundation member, speaking personally
Oracle Java Champion, speaking personally
Not a committer on Harmony or OpenJDK