What's In Store for Java 8 and 9?
JavaOne 2011 is different from any other JavaOne conference in the past four years for at least one principal reason: there is now a new release of Java.
During his JavaOne keynote, Mark Reinhold, Chief Architect for the Java Platform at Oracle, said that a year ago at JavaOne the discussion was all about what should happen to Java 7. Java 7 was released earlier this year after having its feature set split into two releases. Java 7 includes Project Coin, Invoke Dynamic and the Fork/Join framework while other features like Project Lambda will land in the Java 8 release in 2012.
"Four years, 7 months and 17 days after Java 6, we delivered Java 7 on the 28th of July this year, exactly when we said we would," Reinhold said to the applause of the JavaOne audience.
With Java SE 7 now available, the focus is now on Java 8 work.
"Java 7 was an important release and it has really gotten Java moving forward again," Reinhold said. "But in terms of the overall history of the Java platform, it's a release that was a bit more evolutionary than revolutionary. Java 8 will wind up being more revolutionary."
Key Features Slated for Java 8
Reinhold said that one of the key reasons why Lambda expressions are needed in Java is because multi-core processor handling requires them. He explained that a Lambda expression enables a developer to take anonymous inner class constructors and replace them with a compact expression. The Project Lambda approach is also constructed in such a way as to be inclusive of older methods too, so as not to break older applications.
"What we have in Java, at last, is a way to evolve interfaces over time in a way that does not break compatibility," Reinhold said.
With Project Jigsaw, Reinhold noted that the motivation is to address the problem of programming "in the large" for Java.
"Programming in the small for Java is about writing classes and interfaces and putting them together in packages," Reinhold said. "Programming in the large is about doing things at a higher level, where you have large program components that you want to be able to re-use and assemble in different ways to construct different kinds of applications."
Reinhold noted that today writing in the large for Java means writing a classpath. Project Jigsaw is an attempt to extend the Java language so developers can declare higher-level constructs in something that looks like Java code.
Another item that is under discussion for Java 8 is something called Project Nashorn.
A Sneak Peek at Java 9
Looking beyond Java 8, Reinhold offered a few ideas as to what might be part of the future Java 9 release as well. At the top of his list for is a self-tuning JVM.
"You should just be able to type' Java'," Reinhold said. "You shouldn't have to go and tweak a bunch of command line flags to get good performance."