Although the release late last month of Java SE 7 did not come off without a hitch โ serious bugs turned up in the release candidate and had to be fixed in the Update 1 release โ the platform nonetheless offers developers a variety of enticing capabilities that range from programming improvements to boosts for sound applications and multicore systems.
Officially known as Java Platform Standard Edition 7, Java SE 7 is the first big release of Java in more than five years and the first under Oracleโs stewardship. It offers improvements for running dynamic languages, programming, and file systems.
Despite the five years of effort, Java SE 7 is not what had been originally planned. Many features in the original JDK 7 plan have been pushed to JDK 8, which is due in 2012. Java SE 7 is thus in some ways the first of a two-part release. Thatโs not necessarily a bad thing, says Rob Ratcliff, founder of the Austin Java Users Group and a Java developer. โIt was good for Oracle to release Java 7 and move onto [Java] 8 later.โ He prefers the evolutionary approach to Javaโs development.
Among the delayed capabilities are adding Lambda expressions, or โclosures,โ to Java for multicore programming, language and VM support for modular programming, and a module system for the JDK.
Still, Java SE 7 does offer useful new capabilities today.
Project Coinโs diamond syntax for constructor calls lets the compiler infer type arguments, and the try-with-resources statement helps the compiler make reliable code by automatically closing files, sockets, and database connections when developers forget to do this, Ratcliff says: โThatโs something thatโs been tripping up developers โ especially young developers โ for years. Thatโll be a good productivity improvement and will reduce bugs.โ
Java advocate Peter Lawrey, author of the Vanilla Java blog, cites Sockets Direct Protocol (SDP) capabilities as important for network file I/O. โSDP is really there to improve support for Infiniband,โ he says. Infiniband is a competitor to iSCSI that has been making some headway in virtualization environments.
Java SE 7 also features the XRender pipeline for 2D graphics rendering; it runs on top of the X Window system and can access modern graphics processors.
A new sound engine, called Gervill, enables multiple applications on Linux to play sound using Audio Synthesis Engine Project MIDI synthesizer.