By Jim White (Director of Training and Instructor)
Those in the Java community have been waiting a while for Java 7. Some have even been waiting patiently. For everyone, it appears that the long wait is getting closer to an end.
Formal Declaration of Java 7 and Java 8
The Java Community Process (JCP) Executive Committee recently (within the last week) approved the Java Specification Request (JSR) 336 and JSR 337 (see the results here and here). What are JSR-336 and JSR-337? These JSRs formally and officially define the contents of Java Standard Edition (SE) 7 and now Java SE 8. Interestingly, both Apache and Google voted against these JSRs. Not surprising given the recent Oracle/Google lawsuit over Android, here is Google's comment regarding their vote: "While we support the technical content of this JSR, Google is voting no because of its licensing terms."
Java 7 Background
Work on Java 7 began back in 2006. Its release date was rumored to be in 2009, then slipped to 2010. Earlier this year, many believed it would be released at JavaOne - the annual conference on all things Java. However, after Oracle's purchase of Sun, it was announced that the release would slip into 2011 and, adding more disappointment surrounding the release, the release would not contain many of the features anticipated earlier this year.
During JavaOne 2010, Oracle began to share its Java release strategy. In particular, it developed a "Plan B" split of the features originally destined for Java 7 into the next two releases: Java 7 and Java 8. You can read about the planned new features and split here.
Some of the notable "new" Java 7 features include a new file I/O, JVM support for dynamic languages, Strings in switches, and JDBC 4.1. Features that Java 7 will not include but will now be in Java 8 include: lambda expressions/closures, module system and modularization, and annotations of Java types. Again, refer to the links above for more details about what is in each release.
Release Dates
So while agreement now exists on what is in each release, when can you expect Java 7 and now Java 8 on a platform near you? In early November, Oracle announced the planned release date for Java 7. We can now expect Java 7, in its new JSR defined form, to be released in July 2011. Plans are to release Java 8 (the remaining parts of the old Java 7) in late 2012.