Today, Oracle's Chief Architect in the Java Platform Group proposed two options for the JDK moving forward. The first option, "Plan A," would keep all of the currently defined JDK 7 features (including Project Lambda, Coin, and Jigsaw) within the same release. Under this plan, the final release of JDK 7 (and Java SE 7) would be pushed back to mid-2012.
Plan B, the plan that Reinhold and others at Oracle are "leaning heavily toward," would split the release in two. JDK 7 would include many features that are close to being finished. The benefit of separating Lambda, Jigsaw, and parts of Coin into a second release is the greater amount of time that project developers would have to work on those pieces. These major features (remember, Lambda was started late last year) still require significant work, and they could potentially turn out better if they're not rushed out the door. Plan B would allow JDK 7 to arrive midway through 2011. JDK 8, which would include the features that need more work, could be expected in late 2012.
Under Plan B, JDK 7 would include:
- Most of Coin (haven't determined exactly which parts would be bundled with JDK 7)
- NIO.2 (JSR 203)
- InvokeDynamic (JSR 292)
- "JSR 166y" (fork/join, etc.)
- Mostly everything else on the feature list minus Lambda, Jigsaw, and parts of Coin
- Possibly a few additional features
JDK 8 would include:
- Project Lambda (closures)
- Project Jigsaw (low-level module system)
- The rest of Project Coin
- Additional features
In February, during an Oracle Tech Chat, Reinhold said that the schedule for JDK 7 was extended far enough so that they wouldn't have to introduce closures in JDK 8. Now the JDK 7/JDK 8 split seems to be the option his team is favoring in order for Java to continue to show signs of life. It also doesn't make sense to let the nearly-finished features collect dust while we wait for the other features to catch up.
Some of the commenters were understandably upset with the further delays in JDK 7. Even if Plan B is adopted, it will still be another year before it's finished. It's good that Reinhold indicates that the JCP process will still be observed going forward, but I can think of at least one member of the JCP that might vote against anything Oracle proposes.
Jan-Kees van Andel suggested in the comments that Plan B might cause a majority of companies to skip upgrading to Java 7 if Java 8 is scheduled less than two years after JDK 7. On the other hand Brian Goetz, an Oracle engineer, believes that JDK 7 will be widely adopted because it's considered a small release. He compares the situation to Java 5's release, which was considered "big". Many companies were slow to adopt 5 or just skipped over it until Java 6, which people considered a "small" release, according to Goetz.
DZone will keep you updated on any developments related to JDK 7 development.
Update: Joseph D. Darcy posted all of the possible features in Project Coin that could be included in JDK 7 under Plan B. Anything else, we assume, would be in JDK 8.
Here are the features he listed: