Oracle is extending the official end-of-life date for its aging Java SE 6 software development platform a second time as it struggles to get the Java language development process onto a consistent, two-year release schedule.

Had it stuck to its original roadmap, Oracle would have stopped providing public support and software updates for version 6 of the Java Development Kit (JDK) in July 2012. In February, it extended that end-of-life date to November 2012. Now it's extending it again, to February 2013.

"JDK 6 was the default JDK for over 5 years, and so it seems fair that it have a longer publicly available support time-frame than past major releases," writes Oracle's Henrik Stahl in a blog post announcing the extension.

Nonetheless, the database giant insists that it is still on track to release Java 8 and 9, both of which are currently under development through the Java Community Process (JCP), and that future releases of the Java platform will come more rapidly than they have in the past.

"It's important to highlight that, as we establish a steady two year cadence for major releases, End of Public Update events for major versions will become more frequent," Stahl writes.

Going forward, Oracle says it will stop providing updates for major versions of Java once all of three criteria are met. First, the version to be end-of-lifed must be three years old. Second, the subsequent version must be at least one year old. And third, six months must have passed since the subsequent version was established as the default JRE for end-user desktops.

Java SE 6 has already met two of those criteria. It is growing long in the tooth, having entered general availablility nearly six years ago, in December 2006. Java SE 7 was released a year ago, in July 2011. But Oracle only named Java SE 7 its default JRE in May of this year, with the release of Java SE 7 Update 4. Since that was the only holdup, Java SE 6 should have reached end-of-life at Oracle's earlier November 2012 date.

The long road to Java 7

Yet Oracle may have reasons for extending Java SE 6's lifespan beyond respect for its venerable age. Enterprise customers have not exactly leapt to adopt Java 7. For one thing, it had a troubled launch, with the Apache Foundation voicing concerns that the Java 7 compiler optimized code over-aggressively, causing some code that worked on earlier versions of Java to crash.

Java 7 also introduced numerous updates to the Java APIs and the language itself. While those were welcome changes for some, such alterations can also make migration difficult for customers with large code bases running on older versions of the JVM.

As of May 2012, Oracle announced that 23 per cent of Java customers surveyed had adopted Java 7. That's not bad, considering it had only been released eight months prior. But it's not great, and the fact that 88 per cent of the customers surveyed still used Java SE 6 illustrates the problem Oracle faces as it strives to move the language forward.

On the one hand, numerous members of the JCP have been clamoring for updates to the Java language and APIs, which they claim are falling behind other languages in modern programming features. But on the other hand, switching to a new JDK and a new version of the Java language is no simple matter, especially for large customers.

In July, Mark Reinhold, the chief architect of Oracle's Java platform group, urged the JCP to adopt an explicit two-year release cycle, with Java 8 arriving in September 2013 and Java 9 following in 2015.

"Developers want rapid innovation while enterprises want stability, and a cadence of about two years seems to strike the right balance," Reinhold wrote in a blog post.

Given its decision to extend Java SE 6 support to 2013, however, Oracle may have realized that this balancing act could prove harder than it seems. ®