Java 9, the next edition of the platform, might be delayed by objections raised recently by Red Hat and IBM over the workings of its module system.
Java Development Kit 9, the next edition of standard Java, had been proceeding toward its planned July 27 release after earlier bumps in the road over modularity. But now Red Hat and IBM have opposed the module plan. “JDK 9 might be held up by this,” Oracle’s Georges Saab, vice president of development for the Java platform, said late Wednesday afternoon. “As is the case for all major Java SE releases, feedback from the JCP [Java Community Process] may affect the timeline. Based on more than two years of feedback from weekly preview builds, we’re confident it meets the goals of the JSR [Java Specification Request] and the needs of developers.”
Though the Java expert group is still discussing a few finishing touches, Oracle anticipates these will come to resolution in time for the final vote.
Modularization is intended to offer benefits, including scalability, to small devices. But Red Hat’s Scott Stark, vice president of architecture for the company’s JBoss group, expressed a number of concerns about how applications would work with the module system and its potential impact on the planned Java Enterprise Edition 9. Stark also said the module system, which is featured in JSR 376 and Project Jigsaw, could result in two worlds of Java: one for Jigsaw and one for everything else, including Java SE classloaders and OSGI. Stark’s analysis received input from others in the Java community, including Sonatype.
IBM has chimed in that it, too, has reservations about the module plan and would vote against the public draft of the Java Platform Module System featured in JSR 376. According to Oracle, both JSR 376 and JSR 379—the umbrella JSR for JDK 9—still need votes in the JCP.
JDK 9 is due for an initial release candidate on June 22, followed by a final release candidate on July 6. General availability is set for July 27. JDK 9 has been delayed before by the complexities of developing the module system, which was pushed out from Java 8 to Java 9 for the same reason.