Oracle has released the first major Java release in five years, bringing a host of incremental enhancements
With the theme of moving the platform forward, Oracle will launch Java 7 today.
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.
Wrestling Match Won By Oracle
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 favouritism by Sun and then Oracle. And “Moving Java Forward” became a mantra at Oracle, as if to say it is ours now and we are going to take it forward no matter what.
“Java 7 is the release everybody has been waiting for quite a long time,” said Ben Evans of the London Java Community (LJC). Evans, who also is the LJC’s representative on the Java Standard Edition/Enterprise Edition (Java SE/EE) 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 Microsystems 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 Java Community Process (JCP) 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 reduces the amount of code needed to do certain tasks. Key Project Coin features include the diamond operator, try-with resources and strings in switch.
Dynamic Language Performance Boost
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 organised 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 under girding for other language features” on the JVM.
Java Development Kit (JDK) 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.
“What is noteworthy is the change in Java 7 that embraces 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.”