After having the Java SE 6 release shipped in 2006 there had been several plans for Java SE 7. The last plan Sun was in charge of was to ship in 2010. This was before the Sun down. It’s been clear for some time that the most recent JDK 7 development schedule is unrealistic. The schedule was created over nine months ago, prior to the acquisition of Sun by Oracle. The post-acquisition integration process took longer than expected.
The most important quote from Mark's session was:
It will get the platform moving again, and that's good news. So, in answer to the question I posed at the beginning, 7 has moved to 2011. 8, we can expect in 2012. I won't make any guesses about 9, but the current hint is to have releases on a more regular cadence every 18, 24 or maybe 36 months at the outside. A platform like Java, in order to stay alive, needs to keep moving. We are going to keep it moving.
We are still doing all of this in OpenJDK as before. We are retaining the GPL version 2 license. There are no plans to change this, and we intend to submit JSRs for Java SE 7 and Java SE 8 and the relevant component such as Lambda and Coin as necessary.
(Mark Reinhold, JavaOne 10)
Main feature categories
To make this more concrete, Mark mentioned the following main feature categories for 7,8 and even 9:
Java is a fairly productive language already, but there are things that can help you get more done with less code.
HotSpot and JRockit have very competitive performance from all the major VMs right now, but multi-core processors are still not supported like they should. Java can help with that.
The Java VM, is not just for Java anymore. There are a lot of other languages that need support.
Modularity, the platform is big. Applications are constructed with these brittle class paths, full of JAR files that are difficult to diagnose debug and construct. That should be fixed.
Java, from its beginning, has tended to be in its own sort of a little black box, and not relate particularly well to the underlying platforms upon which it is found. This should change.
People routinely deploy thousands of VMs across thousands of machines that need some way to manage them all, and in particular, some way to diagnose a problem in a running system, that wasn't necessarily configured at startup time to be diagnosed in any special way.
This is the list of features being developed by Oracle, and others, for OpenJDK 7. When the Java SE 7 Platform JSR is submitted then these features will be proposed therein:
- JSR 292: Support for dynamically-typed languages (InvokeDynamic)
- JSR TBD: Small language enhancements (Project Coin)
- Strict Verification
- Parallel Class Loaders
- Transfer Queues
- JSR 203: More new I/O APIs for the Java platform (NIO.2)
- Unicode 6.0
- Enhanced Locales
- SDP & SCTP
- TLS 1.2
- JDBC 4.1
- XRender Pipeline
- Swing JLayer
- Swing Nimbus
Java SE 8 (Late 2012)
Following features have been delayed and will probably be included into the Java SE 8 version:
- JSR TBD: Project Jingsaw
- JSR TBD: Project Lambda
- JSR 308: Type Annotations
- Bulk-Data Operations
- Swing JDatePicker
- Collection Literals
It's good to have a roadmap again and the idea to come back to a regular cadence of releases. It's now on Oracle to prove that they can hold the promises. The not changing support for the OpenJDK and the general JCP is a sign, we all were waiting for. Also positive the non changing GPL version 2 license for the OpenJDK.
But there are still many many things left open. In general all the presented information were public and available since some time. Only the final commitment was missing. This is done now. But what about the other parts, the community is still worrying about e.g. the needed canges and/or Improvements to the JCP? Or the "Google Case"? Some questions still are open and need to be answered by the new steward of Java.
If you like, you can also watch the OTN TechCast replay. Mark talking about the JDK 7 roundup: