JDK7 - To be or not to be?
I'm really not surprised to hear this, but the dates for the release of JDK7 (what will be Java SE 7) have been pushed out to mid-2012. That's almost two years away, and since it's already been a long time coming, Oracle and the community are quite concerned by this. So, Oracle is working on a "Plan B" according to Mark Reinhold (his blog: http://blogs.sun.com/mr/entry/rethinking_jdk7).
From the sound of this, it appears that Oracle is going to release what they have ready to go as Java SE 7 in 2011, and would create and close a JSR for it all in the same day. Pretty much, that pays lip service to the JCP, which is all but completely dead at this point anyway. Then, by mid-2012, Oracle will release Java SE 8 with the missing features, bug fixes, and whatever else the community requests. Again, with lip service to the JCP and a simultaneous JSR the same day. (That is, if there is a JCP by then, which I would guess there will not be, at least not in the form it's in now.)
That's my take on things based on this blog and some of the comments by folks at Oracle in the "comments" section of the blog. In summary, if Oracle goes with "Plan B", Java SE 7 will be released with the current features, more-or-less:
-Most of Coin:
- 6860965: Support for binary literals (e.g. 2 can be written 0b10)
- 6860965: Support for underscored literals (e.g. 123456 can be written 123_456)
- 6827009: Support for strings in switch statements (e.g. case "a")
- 6840638: Improved inferencing with generics, e.g. Map
I personally vote for "Plan B" with a twist: give us some of the features that are ready now as an update to Java SE 6, or at least via multiple updates to Java SE 6 until we get closer to the Java SE 7 release date of mid-2011. Then, release Java SE 7. From that point, add the remaining features to Java SE 7 via updates, instead of as Java SE 8. That frees Java SE 8 to be some completely different set of features and improvements not currently planned.
In fact, I wonder if we've reached the point where Java doesn't need major releases anymore? Instead, just release often with updates to the platform as we've been seeing with Java SE 6 over the past few years. Would you agree or disagree?
Happy coding!
-EJB

