With the theme of moving Java forward, Oracle will launch the latest version of Java-Java 7-on July 28.
Ironically, although Java 7 is the first major Java revision in about five years, the changes in the language and platform are more evolutionary than revolutionary, Java experts say-including Mark Reinhold, chief architect of the Java Platform group at Oracle.
Yet the new moves are welcome by Java developers the world over, as Oracle demonstrated in a Webcast that ran more than four hours. "Java 7 is the most anticipated release ever," said Bruno Souza, president of SOUJava, a Brazilian Java User Group.
In essence, Java is movin' on up, but perhaps more in the mode of The Jeffersons' George and Weezie as opposed to the more revolutionary moving up Curtis Mayfield & the Impressions touted in "We're a Winner."
Progressing the language became difficult as Java was plagued by political and market unrest, first at Sun and then at Oracle after its acquisition of Sun. The Java Community Process, which governs the progress of Java, was rife with infighting and accusations of favoritism by Sun and then Oracle. And "Moving Java Forward" became a mantra at Oracle, as if to say, "It's ours now and we're going to take it forward no matter what."
"Java 7 is the release everybody has been waiting for, for quite a long time," said Ben Evans of the London Java Community. Evans, who also is the LJC's representative on the Java SE/EE (Java Standard Edition/Enterprise Edition) Executive Committee, added that Java 7 is "an enabler" that will give developers more options for building better Java applications-particularly in London's financial sector, which relies heavily on Java apps, he said.
"The most significant thing is the fact that we're shipping," Reinhold said. "It's been almost five years."
Meanwhile, Adam Messinger, vice president of product development at Oracle, said Java has been at Oracle for 18 months since the company acquired Sun and Java is in good hands. Acknowledging that Oracle is "standing on the shoulders of giants" with Java, Messinger noted that Oracle is investing heavily in Java by putting together "the largest team ever" to work on the language and platform by combining the HotSpot and JRockit teams. Messinger also said Oracle is working to continue to build out the Java community and has moved to make the JCP (Java Community Process) more open.
"Java is strategic to Oracle; we've got skin in the game just like all of you do," Messinger said to an audience of Java developers during Oracle's Webcast.
Java 7 brings several new features to the platform, including Project Coin, also known as Java Specification Request 334: Small language enhancements. The project consists of a set of small language changes intended to simplify common, day-to-day programming tasks. The Project Coin language changes enhance developer productivity and reduce the amount of code needed to do certain tasks. Key Project Coin features include the diamond operator, try-with-resources and strings in switch.
Alex Buckley of the Java Platform Group at Oracle said Java 7 represents "the first time we see the JVM set its own course."
The JVM was obviously designed for Java, and "all the invocation modes are organized around Java semantics," said John Rose, an Oracle engineer who headed up the InvokeDynamic effort. "But we add one more mode for other languages," he said. InvokeDynamic adds "low-level support and a stronger undergirding for other language features" on the JVM.
JDK (Java Development Kit) 7 also features a new API for parallel programming or building applications for multicore systems. The new Fork/Join Framework enables developers to break down problems into subtasks that can be executed in parallel across a number of processors. And Java 7 also adds a new I/O for working with different file systems, new networking and security features, and backward compatibility with other versions of the platform.
Meanwhile, from an industry observer's perspective, Al Hilwa, an analyst with IDC, said:
""The three big things from a feature perspective here is the multicore support with Fork/Join, the support for dynamic languages and the new file-system API. All these have been on the drawing board for some time, so it is great for Java developers to finally see them happen. One important message that comes through from all that has transpired around Java over the last year and a half is that Oracle appreciates the value of Java and will move it forward through solid investment. This has to be a great relief for the community.""
Support for dynamic languages also resonated with Mik Kersten, CEO of Tasktop Technologies and creator of the open-source Mylyn project. However, Kersten said he believes the bulk of the updates coming in Java 7 are too incremental for most developers to get excited about. Yet, this is a positive indicator of Java's dominance in the enterprise, which demands slow and steady change, he said.
However, "What is noteworthy is the changes in Java 7 that embrace innovations beyond the Java language," Kersten said. "The -invokedynamic' instruction promises dramatic performance improvements for dynamic languages like Groovy and JRuby. The new Fork/Join framework will help the implementation of functional languages including Clojure and Scala. Where a decade ago we had to jump through major hoops to create AspectJ on top of the JVM, these new Java 7 features will help the JVM continue to establish itself as the leading runtime for programming language innovation."