Starting with Java 8, to be released in September, the development team behind the widely used programming language plans to release a new version of Java every two years -- and stick to that schedule.
The idea is to "speed up the rate" of releases, said Steve Harris, a board member of the JCP (Java Community Process) executive committee, and a senior vice president of products for the Java PaaS (platform-as-a-service) provider CloudBees.
Starting with Java 8, new versions of the Java SE (Standard Edition), and the associated JDK (Java Development Kit), will no longer be indefinitely held up by the inclusion of features that are complicated to design and implement. "The scope of Java 8 has been adjusted to fit in the timeline," Harris said.
An open source language, Java is advanced by a number of different technical expert groups, each focusing on a particular set of functionality, such as messaging. As Java has grown ever more complex since its creation just over 20 years ago, the time between each new release has lengthened.
In the late 1990s, when the language was new, fresh releases of Java were issued each year. In the last decade, as the code base grew and the number of users who relied on the language increased, new releases slipped to an every-other-year cadence. Almost five years elapsed between the release of Java 6, in 2006 and Java 7 in 2011. Despite this gap, a number of planned features for Java 7, such as closures, were still put on hold.
Java 8's relatively speedy release, assuming it does come out in September, will be due to some originally planned features being put on hold as well.
The most ambitious update for Java 8 that was held back was to make Java's OpenJDK modular, in an undertaking called Project Jigsaw. A JDK is an implementation of the specifications of the language and the OpenJDK is the official implementation of Java SE (Standard Edition). A modular JDK would be easier for enterprises to maintain, because unneeded parts could be stripped out.
Project Jigsaw, however, turned out to be more complicated than its developers anticipated.
"Modularizing the Java SE Platform and the JDK while maintaining compatibility for existing code is an incredibly delicate task [that] requires careful changes throughout both the specification and the implementation," wrote Mark Reinhold, chief architect of the Java Platform Group at Oracle, in a blog post last July,
Reinhold recommended to not hold up the release of Java 8 for Jigsaw. "We're reasonably confident that we can work through these issues, but doing so will most likely take us past" the deadline for when all changes should be finished and tested for Java 8, he wrote. He also suggested that future Java releases be put on a timed schedule, in which the JCP would issue a new version of the language every two years.
By moving to a timed release, Java updates can deliver to users those latest additions to the language that they are requesting, without being held up by larger projects. In turn, the larger projects can be completed at their own natural pace, rather than being rushed through to make the next release. If modularity can't be inserted into Java 8, its developers can plan for Java 9, which is just two years away.
The timed releases might even allow Java to keep pace with a growing number of other JVM (Java Virtual Machine) languages -- such as Scala and Groovy -- that were based in part on features that users wanted in Java.
An increasing number of software projects, especially open source ones, seem to be maintaining a regular release schedule. Harris pointed to how Eclipse is successfully updated on a yearly schedule.
While a once-a-year update schedule may be too accelerated for a fundamental programming language such as Java, a release every other year might be feasible, said Al Hilwa, an IDC analyst who covers applications development software. Enterprise Java users would appreciate the predictability of releases, because they can make longer-term preparations for upcoming releases, he added.