Shots fired: IBM and Red Hat vote “no” on Project Jigsaw, may cause delays for Java 9
Jigsaw’s rocky development has hit another potential roadblock. In an unprecedented move, IBM and Red Hat have publicly stated they will vote no on Project Jigsaw. Could this delay Java 9?
Trouble is brewing in the Java ecosystem. In a wholly unprecedented move, IBM and Red Hat have publicly declared that they will vote no on Project Jigsaw in its current form. This spanner in the works could possibly throw the summer release of Java 9 into complete disarray.
The goal of Project Jigsaw is to create a standard module system for the Java ecosystem. This change would hopefully make it easier construct, maintain, and distribute large applications. It would also enable and support customizable configurations. Modular applications would supposedly have better run-time performance with more optimized code. All of this sounds pretty good. So why are people opposed to switching to a more modular approach to Java?
Voting no on JSR-376
It’s fairly unusual for members of Java Community Process Executive Committee to publicly announce their decisions ahead of a vote. It’s even more unusual for them to speak up so late in the game. After all, Project Jigsaw is at the Public Review ballot stage. That’s pretty far along into the development process. The finish line is almost in sight. So why would IBM and Red Hat make their disapproval known now?
Tim Ellison of IBM wrote,
“IBM is also voting “no” which reflects our position that the JSR is not ready at this time to move beyond the Public Review stage and proceed to Proposed Final Draft.
The JSR 376 Expert Group and the public have raised a number of reasonable issues and concerns with the current public review draft of the specification that warrant further discussion and resolution. …
IBM would like to see closer consensus amongst the entire Expert Group before this specification proceeds to the next step.”
Scott Stark of Red Hat was equally as blunt in a long post,
“The patterns introduced within Jigsaw are (in some cases) going to be extremely difficult to fix even in a later release, and will create backwards- and forwards-compatibility problems that will be very difficult to unwind. The result will be a weakened Java ecosystem at a time when rapid change is occurring in the server space with increasing use of languages like Go. These problems, which are outlined in detail this document, range from adoption issues, to changes to distribution models, to fragmentation of the ecosystem and more.”
IBM and Red Hat are just two members of the 25-member Java Community Process Executive Committee. This committee approves all the new Java standards, including major Java versions. These proposals require a 2/3 majority to be passed. Right now, IBM and Red Hat are alone in their public disagreement, but they’re probably not the only ones. Jigsaw’s proposed changes to the Java ecosystem are controversial, to say the least.
Jigsaw’s troubled development
Jigsaw has had something of a troubled adolescence. Initially planned as a part of Java 7, it was pushed off to Java 8 in 2011. Oracle decided to postpone Project Jigsaw yet again in 2012 due to “significant technical challenges”. More schedule slippage ensued. Five years later, Project Jigsaw is finally ready for the spotlight.
Unfortunately, in the intervening years, Jigsaw developed a kind of notoriety. Earlier this year, Scott Stark of Red Hat posted an open letter detailing objections to Project Jigsaw from both Red Hat and Maven developers. (Maven is not a member of the Executive Committee.)
The technical points of contention are numerous, from interoperability with already existing Java modules to a lack of a clean upgrade path for Maven-based projects. This could be a big problem for the Java community, as Maven is the dominant code packaging and distribution system in the Java world.
IBM and Red Hat have fired the opening salvo. They want more changes for Jigsaw before it can be released, something that will unavoidably cause more delays. Now, it’s a waiting game to see how Oracle or other members of the Executive Committee will respond. At the moment, Oracle is on a course that will see Jigsaw implemented despite the vocal disagreement of the Java community. Scott Stark’s prediction that Project Jigsaw would cause fragmentation in the Java community just might be right after all.