Java-Modularisierung, die nächste

Ein jetzt von Oracle vorgestellter Entwurf zu den Anforderungen eines Java-Modulsystems könnte der Auftakt zu einer Spezifikation werden, die im Rahmen von Java SE 8 ausgearbeitet wird. Doch nicht jeder Experte beim Thema ist mit dem Ansatz zufrieden.

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

Mark Reinhold, Chefarchitekt der Java Platform Group bei Oracle und schon zu Sun-Zeiten verantwortlicher Ingenieur der Java-Entwicklung, hat einen offenbar seit Anfang des Jahres diskutierten Entwurf zu den möglichen Anforderungen für ein modulares Java veröffentlicht. Das Dokument hat seinen Ausgangspunkt im Modularity Summit, als sich Vertreter von Oracle, IBM, Eclipse Foundation, der Open Services Gateway initiative (OSGi) sowie der Expertengruppen zur Java Standard Edition (Java SE) und Java Enterprise Edition (Java EE) zum Thema trafen.

Ziel des informellen Treffens war es, ein eindeutiges Verständnis der Anforderungen eines Java-Modulsystems zu erarbeiten, und zwar ohne Bezug auf eine bereits bestehende Idee zur Modularisierung. Aus dem Konzept könnte nun eine Spezifikation werden, die dann im Rahmen von Java SE 8 ausgearbeitet wird. Das übernächste Java will Oracle Ende 2012 fertigstellen.

Unter den Anforderungen finden sich die Interoperabilität von OSGi-Bundles mit den zukünftigen Java-Modulen, das Einbinden von Maven-Artefakten und das Nachladen von Modulen aus dem Internet. Auch geht es darum, ob die Informationen zu den Modulen als kompilierter Java-Code (Project Jigsaw) oder mit einer deklarativen Bibliothek (der sogenannten Manifest-Datei) extern mitgegeben werden sollen. Letzteres geschieht in der OSGi-Architektur, einem vor allem über die Eclipse-Entwicklung weit verbreiteten Industriestandard, mit dem sich Java-Programme und ihre Dienste über ein Komponentenmodell modularisieren und verwalten lassen. OSGi ist seit mehr als einem Jahrzehnt ein in der Java-Industrie anerkanntes Konzept.

Kaum ein Thema wird in der Java-Community schon so lange diskutiert wie das der Modularisierung in Java. Um die drei hierzu in den Java Community Process (JCP), dem zentralen Java-Standardisierungsorgan, eingebrachten und zum Teil gescheiterten Java Specification Requests (JSRs) 277, 291 und 294 gab es immer wieder heftige Blog-Postings und Verbalangriffe. Auf der einen Seite trifft man auf Oracles beziehungsweise zuvor Suns Vertreter, die das Thema Modularisierung innerhalb des im Rahmen des OpenJDK entwickelten Project Jigsaw angehen. Auf der anderen Seite stehen die OSGi-Vertreter; diesen wir von den anderen zumeist vorgeworfen, dass Java etwas brauche, das viel "leichtgewichtiger" als OSGi sei.

Dass die Diskussionen kein Ende nehmen will, wird nun auch durch die Veröffentlichung von Reinholds Entwurf deutlich. Beispielsweise zeigt sich JRuby-Chefentwickler Charles Nutter in einem Kommentar zur Ankündigung darüber ernüchtert, dass das Konzept, die Modulinformationen in kompiliertem Java-Code zur Verfügung zu stellen, auf der Java Virtual Machine laufende Sprachen wie JRuby, JavaScript, Smalltalk und Python ausschließe oder die Entwicklung mit ihnen erschwere.

Auch ist Peter Kriens, der der OSGi Alliance vorsteht und beim Summit anwesend war, unglücklich darüber, dass nicht zwischen den Abhängigkeiten zur Build- und zur Laufzeit unterschieden werde. Auch sieht er den von ihm als Jigsaw-Modell bezeichneten Entwurf eher als ein Deployment- als ein Sprachmodulsystem, da es auf dem Build-Werkzeug Maven basiere. (ane)