A proposal for unifying Java modularisation
Eminent Java developers Richard Hall, BJ Hargrave and Peter Kriens have formulated a new proposal for a simple module system for Java, which could be developed as part of Java Specification Request (JSR) 294 'Improved Modularity Support in the Java Programming Language'. The authors hope their proposal will bring the different ideas on modularisation into some sort of harmony.
Few issues are subject to such heated discussion in the Java community as that of modularisation. The three JSRs, 277, 291 and 294, introduced into the Java Community Process (JCP) – the central body for Java standardisation – have prompted many irate blog postings and verbal attacks. On one side stands Sun Microsystems, which, as the major company involved in Java development, wishes to have its say on the matter. Sun has put forward Jigsaw, which was developed as part of OpenJDK. On the other side stand representatives of the OSGi architecture, an industry standard, widely distributed in particular through Eclipse development.
The authors would like to see their proposal, which they describe as a "subset of Jigsaw and OSGi", replace the existing proposal. Their proposal defines a specific and simple module system with a fully specified syntax, a concrete module model for compilation and clear rules for component dependencies. The proposal aims to do away with the "black hole" created by the previous proposal, in which source files could only be understood with the assistance of a specific module system.
In an eWeek interview in May (as well as expressing similar sentiments in his keynote speech at Java conference Jazoon in June), Java creator James Gosling disparagingly suggested that OSGi had come "from a different universe that's being used for modularity" and that Java needed something much more lightweight.
Kriens, one of the major developers in the OSGi environment, counts 27 classes in the OSGi core API, covering areas such as module, life cycle and service layers, security, exceptions, rights management and interfaces. According to Kriens, in Jigsaw, the module layer alone contains more classes, and Sun did not have a problem with launching the Jigsaw project. Kriens also points out that in recent years Sun's policy on modularity in Java has cost a lot of money and caused a lot of hassle, leaving programmers facing the dilemma of deciding whether they should use OSGi or Jigsaw.
- Open Letter from Peter Kriens to James Gosling, from Peter Kriens OSGi blog.
- Sun's Gosling: Java Is Open Source and Doing Just Fine (eWeek, 14.05.09).