Java modular battle heats up as Oracle criticizes Red Hat, IBM

Top Java official questions the two companies’ sincerity in their opposition to the planned module system

Amidst a budding controversy surrounding the module system planned for Java, Oracle’s chief Java architect, Mark Reinhold, lashed out today at Red Hat and IBM’s opposition, saying the companies are just guarding their own self interests.

In an open letter to the Java Community Process (JCP) Executive Commitee published Friday morning, Reinhold was highly critical of the two rival vendors. The current disagreement centers on Java Specification Request 376, which focuses on the module system featured as part of Project Jigsaw. Red Hat Mid­dle­ware ini­tially agreed to the goals and re­quire­ments of the JSR, but then worked con­sis­tently to un­der­mine them, Reinhold said.

“They at­tempted to turn this JSR into some­thing other than it was in­tended to be. Rather than de­sign one mod­ule sys­tem that is both ap­proach­able and scal­able, they in­stead wanted to de­sign a ‘meta’ mod­ule sys­tem via which mul­ti­ple dif­fer­ent mod­ule sys­tems could in­ter­op­er­ate on an in­ti­mate basis,” he said. “I can only as­sume that they pur­sued this al­ter­nate goal in order to pre­serve and pro­tect their home-grown, non-stan­dard mod­ule sys­tem, which is lit­tle used out­side of the JBoss/Wild­fly ecosys­tem.”

Opposition by Red Hat and IBM to the module system could even hold up the upcoming release of Java Development Kit (JDK) 9 in late July; modularity is slated to be the marquee feature, enabling Java to have better scalability. Red Hat’s Scott Stark, vice president in the company’s JBoss Java middleware group, has argued that the Java module system presents problems for applications, and even sets up two separate worlds for developers–one for modules and one without them.

The JSR is intended to provide a module system approachable by all developers, Reinhold said. It is leveraged in JDK 9 via Java Enhancement Proposal 261. Public review balloting on JSR 376 is scheduled to end on May 8, and IBM and Red Hat are expected to vote no.

Designing a “meta” module system would be an interesting project, but it would be even larger in scope and more difficult than JSR 376, Reinhold said. “By fo­cus­ing on an au­di­ence of mod­ule-sys­tem ex­perts, it would likely re­sult in a de­sign that is far from ap­proach­able by all de­vel­op­ers. That is why I re­peat­edly pointed out to Red Hat Mid­dle­ware that many of the fea­tures they ad­vo­cated were out of scope, but they chose not to ac­cept those de­ci­sions.”

IBM, meanwhile, has said very little during the course of JSR 376, Reinhold said. “After they an­nounced that they would vote against it, they later sent a list of spe­cific is­sues to the EG (Expert Group)--but only in re­sponse to a re­quest from an­other EG mem­ber. None of those is­sues is new, many of them were dis­cussed long ago, and IBM was silent dur­ing most of the dis­cus­sions.”

Reinhold added that he can only conclude IBM has decided its own interests are served by delaying JSR 376 as well as JSR 379, which pertains to Java Standard Edition 9 and is the basis of JDK 9. This was “regrettable,” Reinhold said.

Reinhold says JSR 376 was not perfect, but it does reflect years of development, testing, and refinement with much feedback from developers. The current proposal provides a solid foundation for future work, he said. “It is time to ship what we have, see what we learn, and it­er­a­tively im­prove. Let not the per­fect be the enemy of the good.” He stressed his opposition to further delays, which could go on for years and could result in a bloated, complex design that no developer would ever use.

Reinhold noted that just yesterday he proposed a revision to the automatic modules part of the proposal after issues were raised. The revision has been received positively, he said.

Modularity in Java has been such a complex issue that it was pushed out from Java 8, which was released in March 2014, and has delayed the release of Java 9.

Join the newsletter!

Error: Please check your email address.

More about EclipseIBMJBossOracleRed Hat

Show Comments
[]