Oracle announced that Java 9’s release may once again be delayed and is now expected to be in July 2017.
In a message on the OpenJDK mailing list this week, Mark Reinhold, chief architect of the Java Platform Group at Oracle, said the team needs more time to work on Project Jigsaw, which aims to modularize the platform to make it scalable to a wider range of devices, make it easier for developers to construct and maintain libraries and large applications and improve security, maintainability and performance, Oracle said.
Reinhold proposed that the schedule for Java Development Kit (JDK) 9 should be extended for four months such that general availability will now be targeted for July 2017.
“If no such objections are raised by 16:00 UTC next Tuesday, 20 September,” this will be adopted as the new schedule for JDK 9, Reinhold said.
Reinhold had sent out a similar message in December 2015, when he said JDK 9 would be delayed for six months and was scheduled to be released in March 2017 rather than September 2016 as had been expected.
“We are not, unfortunately, where we need to be relative to the current schedule,” Reinhold said in his message this week. “We’ve made a lot of progress on Project Jigsaw, the key feature of the release, over the last eight months.”
Indeed, in March 2016, Oracle published a major update to the proposed design of the module system and merged it into the JDK 9 master forest, and developers have tested and provided feedback on the progress to date, he noted.
“Despite this progress, at this point it’s clear that Jigsaw needs more time,” Reinhold said. “We recently received critical feedback that motivated a redesign of the module system’s package-export feature, without which we’d have failed to achieve one of our main goals. There are, beyond that, still many open design issues, which will take time to work through.”
Reinhold added that the number of open bugs that are new in JDK 9 is “quite a bit larger” than it was at this point in JDK 8 and the maintainers of key projects are testing against JDK 9 builds, but they need more time and more testing “to be confident that potential issues have been found and reported.”
Mike Milinkovich, executive director of the Eclipse Foundation and a member of the executive committee of the Java Community Process (JCP), told eWEEK: “I’m disappointed that the Java 9 release date has slipped yet again. Obviously, it reflects the complexity involved in adding modules to the Java language and runtime. That said, I do believe that it’s important that the team get this right. My concern is that four more months will not be sufficient to resolve the outstanding issues, write the JSR [Java Specification Request] specifications and ship a quality release. I sincerely hope I’m wrong.”
That is something to be considered, as Reinhold noted in his message: “Minor enhancements and even strongly justified proposals to target new JEPs [JDK Enhancement Proposals] to JDK 9 will be considered, so long as they do not add undue risk to the overall release. As before, however, our main focus should be to use this additional time to stabilize, polish and fine-tune the features that we already have rather than add a bunch of new ones.”
Al Hilwa, an analyst with IDC, said he does not believe a few months are going to be a big deal. “The modularity work is challenging and important, and so it is better to do it right than meet a deadline,” he said. “Most enterprises wait years to put new versions of Java in production. Still, continuous and agile evolution of Java is key to its long-term dominance as a language.”
To be sure, over the past two decades there have been missteps on the Java modularity front, as well as key efforts of OSGi that never made it to the mainstream, said Mik Kersten, CEO of Tasktop Technologies.
“There is nothing more consequential to the reuse and maintainability of large-scale software than modularity,” Kersten said. “This is why it’s an extremely difficult design problem strewn with irreversible decisions that will impact Java developers for decades to come. I’ve lived this firsthand while on the AOP [aspect-oriented programming]/AspectJ programming language team, and can’t stress enough the importance of coming up with the best compromises. The JDK team is doing the right thing by delaying until they get Jigsaw and JRE [Java Runtime Environment] modularity right, and the good news is that they’re nearly there.”
Kersten, who was part of the AspectJ language design team at Xerox PARC in the early 2000s, worked through similar design problems of adding a new layer of modularity to Java.
“Part of me can’t believe it has taken this long to get it into the JDK, but they really are doing the right thing by giving themselves a bit more runway for feedback and input,” he said.