Ein Einigungsvorschlag zur Java-Modularisierung

Ein neuer Vorschlag zur Java-Modularisierung könnte Ausgangspunkt dafür sein, dass die bisherigen Kontroversen zum Thema in einen Konsens münden.

In Pocket speichern vorlesen Druckansicht 95 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Alexander Neumann

Die bekannten Java-Entwickler Richard Hall, BJ Hargrave und Peter Kriens haben einen neuen Vorschlag für ein einfaches Modulsystem für Java formuliert, der im Rahmen des Java Specification Request (JSR) 294 – Improved Modularity Support in the Java Programming Language – entwickelt werden könnte. Die Autoren beabsichtigen mit dem Schreiben, die unterschiedlichen Ideen zur Java-Modularisierung in Einklang zu bringen.

Kaum ein Thema wird in der Java-Community so heftig diskutiert wie das der Modularisierung in Java. Um die drei hierzu in den Java Community Process (JCP), dem zentralen Java-Standardisierungsorgan, eingebrachten JSRs 277, 291 und 294 hat es immer wieder heftige Blog-Postings und Verbalangriffe gegeben. Auf der einen Seite findet man Sun, das als maßgebliches Unternehmen für die Java-Entwicklung ein entscheidendes Wörtchen mitreden möchte. Sun hat hier das im Rahmen des OpenJDK entwickelte Project Jigsaw ins Spiel gebracht. Auf der anderen Seite stehen die Vertreter der OSGi-Architektur, eines vor allem über die Eclipse-Entwicklung weit verbreiteten Industriestandards.

Die Autoren würden ihr "Proposal", das sie als "subset of Jigsaw and OSGi" bezeichnen, gerne gegen das bisherige ausgetauscht sehen. Das Schreiben definiert ein konkretes und einfaches Modulsystem mit einer eindeutigen Syntax, ein eindeutiges Modulmodell für die Kompilierung und klare Regeln für die Abhängigkeiten der Komponenten. Es richtet sich gegen die sogenannten "schwarzen Löcher" des bisherigen Vorschlags, wodurch die Source-Dateien nur zu verstehen waren, wenn man ein spezifisches Modulsystem hinzugezogen hat.

Java-Schöpfer James Gosling hatte sich im Mai in einem eWeek-Interview und vergleichbar während seiner Keynote auf der Java-Konferenz Jazoon Ende Juni despektierlich geäußert, dass OSGi aus "einer anderen Welt gekommen" sei und sich der Modularität annehme, allerdings Java etwas brauche, das viel leichtgewichtiger sei. Kriens, einer der maßgeblichen Entwickler im OSGi-Umfeld, hingegen zählt in der OSGi-Kern-API 27 Klassen, die unter anderem Sicherheit, Modul-, Lifecycle- und Service-Schicht, Ausnahmen, Rechtekontrolle und Interfaces abdecken.

Allein die Modul-Schicht in Jigsaw habe mehr Klassen, meint Kriens, und Sun habe auch kein Problem damit gehabt, das Jigsaw-Projekt zu starten. Suns Politik zur Modularität in Java habe in den vergangenen Jahren eine Menge Geld gekostet und viel Ärger bereitet. Der Programmierer stehe schließlich vor dem Dilemma, eine Wahl zu treffen, ob er OSGi oder Jigsaw nehmen soll.

Siehe dazu auch:

(ane)