Kompakt zusammengefasst: Der derzeitige Stand beim Project Jigsaw

Ein von Mark Reinhold aufgesetzter Beitrag, der kontinuierlich aktualisiert werden soll, gibt Aufschluss über den Status quo der Modularisierung von Java, dem wichtigsten Feature des für Mitte 2017 geplanten Java 9.

In Pocket speichern vorlesen Druckansicht 6 Kommentare lesen
Kompakt zusammengefasst: Der derzeitige Stand beim Project Jigsaw
Lesezeit: 3 Min.
Von
  • Alexander Neumann

Mark Reinhold, der bei Oracle für die Java-Entwicklung verantwortliche Ingenieur, hat auf der Website des OpenJDK unter dem Artikel "Java Platform Module System: Issue Summary" eine Zusammenfassung der Fragen veröffentlich, die noch untersucht werden müssen, bevor das sich einem Modulsystem für Java annehmenden Project Jigsaw abgeschlossen ist.

Das Dokument soll fortwährend überarbeitet werden, sodass es sich als Anlauf dafür eignen mag, sich einen Überblick zur Entwicklung zu verschaffen. Auch kann es als Motivation dienen, bei der Entwicklung mitzuhelfen, sodass der derzeit anvisierte Termin für die Freigabe des JDK 9, dessen wichtigstes Feature im Project Jigsaw entwickelt wird, eingehalten werden kann.

Zurzeit gibt es 18 Proposals, die aktiv diskutiert werden, und 13 weitere, die "offen" sind. Einige der Aufgaben erscheinen eher trivial (etwa B. Modulnamen), andere wie Lazy Configuration, Instanziierung und reflektierender Zugriff auf nicht exportierte Typen zeigen, welch steiniger Weg dem Java 9-Team noch bevorsteht.

Die Modularisierung ist ein schon seit 2005 unter Java-Entwicklern diskutiertes Ziel. Durch Vorschläge der Betreiber des Industriestandards OSGi, mit dem sich seit deutlich mehr als zehn Jahren Java-Programme und ihre Dienste über ein Komponentenmodell modularisieren und verwalten lassen, war es lange Zeit auch ein politisch motiviertes Thema. Zeitweilig gab es sogar mehrere Spezifikationen innerhalb des Java Community Process (JCP) zur Modularisierung. Letztlich haben die Bemühungen ihre Heimat im Project Jigsaw gefunden, doch musste die tatsächliche Umsetzung schon für Java 7 und Java 8 verschoben werden. Dass wiederholt eine Verschiebung von Java 9 bekannt gegeben werden musste, zuletzt im September 2016, liegt vorrangig an den sich verzögernden Arbeiten bei Jigsaw.

Bei der Modularisierung von Java geht es vor allem darum, zukünftig die Java Standard Edition (Java SE) auch auf kleineren, leistungsschwachen Geräten einsetzen zu können, ohne dabei auf eine hinreichende Sicherheit und Performance verzichten zu müssen. Erreicht wird das durch abgespeckte, auf die jeweiligen Möglichkeiten des Zielgeräts angepasste Java-SE-Bundles.

Mit Jigsaw will Oracle nicht nur ein Modulsystem für Java-Anwendungen, sondern auch eine modulare Java-Plattform schaffen. Das modulare Java könnte nahezu beliebige Konfigurationen bereitstellen, die sowohl komplette Server als auch schlanke Hardware unterstützen. Neben der puren Größe von Java-Installern würde ein solches Konstrukt auch das modulare Laden notwendiger Bibliotheken ermöglichen und schließlich vermutlich die Laufzeitgeschwindigkeit erhöhen. Andere Programmierplattformen wie Perl, Node.js, .NET und Python sind beim Thema Modularisierung schon deutlich länger unterwegs. (ane)