Jigsaw versus OSGi

Beenden wir Jigsaw – und veröffentlichen wir Java 9!

Hartmut Schlosser

(c)  Shutterstock /  Zern Liew

Jigsaw ist ein „Shibboleth“, schreibt OSGi-Entwickler Neil Bartlett in einem Kommentar. Was er damit meint, ist ein Programm, das nie fertig wird. Und dabei wäre es doch so einfach, die Jigsaw-Mission als erfolgreich abgeschlossen zu deklarieren…

Sie haben es sicherlich gehört: Weil für das Projekt Jigsaw wohl noch Diskussionsbedarf besteht, hat Java-Plattform-Chef Mark Reinhold vorgeschlagen, Java 9 um sechs Monate zu verschieben – auf März 2017. Jigsaw ist also immer noch noch nicht fertig – dabei kann das Projekt auf eine stolze Geschichte zurückblicken…

Never ending story

Das 2005 mit dem JSR 277 begonnene Projekt, ein Modulsystem für Java bereit zu stellen, war zwischenzeitlich für Java 7 vorgesehen, dann auf Java 8 verschoben und erneut auf Java 9 gelegt worden. Und jetzt sorgt es für (mindestens) 6 weitere Monate Verzögerung. Das klingt in der Tat nach einer Geschichte ohne Ende.

Doch schaut man genau hin, so ist Jigsaw – anders als die Jahre zuvor – bereits zu einem großen Teil fertig: Die Zerlegung des JDK in unabhängige Module, inklusive der Standard-Bibliotheken, steht, und auch Bartlett erkennt an, dass das eine große Leistung ist, die für viele extrem wertvoll sein dürfte. Etwa kann man mit dem Tool jdeps, das im Rahmen von Java 8 veröffentlicht wurde, herausfinden, welche Plattform-Module tatsächlich gebraucht werden und welche nicht, um dann eine minimale Plattform-Variante auszuliefern, die keinen unnötigen Ballast mit sich führt – performant und ideal für Mobile- und IoT-Szenarien.

Kontroverse

Soweit herrscht wohl allgemeiner Konsens. Doch Diskussionen gibt es zum zweiten Unterfangen des Projektes Jigsaw: Zusätzlich zur JDK-Modularisierung soll nämlich auch ein Modulsystem für beliebige Java-Anwendungen bereit gestellt werden. Und da gehen die Meinungen zur konkreten Umsetzung auseinander!

Bartlett meint, Jigsaw sei diesem Ziel auch heute noch keinen Schritt näher gekommen. Ob Jigsaws mangelnde Flexibilität jemals mit den unterschiedlichen Bedürfnissen von Java EE, Spring, CDI, Hibernate oder dynamischen Sprachen wie Groovy und JavaScript in Einklang zu bringen seien, sieht Bartlett kritisch. Und dass Oracle die Veröffentlichung eines modularisierten JDK zurückhält, nur weil ein völlig anderes Problem – die Modularisierung von Java-Anwendungen – noch nicht gelöst ist, frustriert Bartlett. Vor allem, weil es für dieses Problem aus seiner Sicht schon eine bewährte Lösung gibt: OSGi.

Jigsaw und OSGi

Ja, die alte Debatte Jigsaw versus OSGi. Doch argumentiert man heute nicht mehr so, dass OSGi an die Stelle von Jigsaw treten soll. Vielmehr will Bartlett darauf hinaus, dass beides koexistieren bzw. sich ergänzen kann: Jigsaw in Form eines modularisierten JDK, OSGi als der allgemeine Standard zur Modularisierung von Java-Anwendungen. Dass das technisch funktioniert, hatte Bartlett bereits vor einigen Wochen in einem Proof of Concept unter Beweis gestellt.

Und was ist mit dem gängigen Vorwurf, OSGi sei zu komplex für den Mainstream? Bartlett kontert: OSGi ist gerade so komplex, wie eine ausgereifte Modularisierungslösung eben sein muss. Überdies sei Jigsaw ebenfalls nicht trivial – und wolle es zu einem allgemeinen Modularisierungsstandard werden, würde Jigsaw schnell ein mindestens ebenso hohes Niveau an Komplexität erreichen.

Weshalb also nicht das Erreichte festhalten? Weshalb nicht Jigsaw auf die JDK-Modularisierung beschränken, zum geplanten Release-Datum im September 2016 veröffentlichen – und die Anwendungsmodularisierung OSGi überlassen? Genau das schlägt Bartlett vor:

I think that the Java community would be better served by releasing Java 9 on time, including the modularised JDK provided by Jigsaw.

Bartlett argumentiert weiter: Java stehe heute im Wettbewerb mit vielen anderen Sprachen und Plattformen, die schneller zu nutzen, cooler und einfacher sind. Java könne relevant bleiben, indem es leichtgewichtiger und mit nützlichen neuen Features ausgestattet werde – nicht aber, indem es sich an „schlechten Neuimplementierungen“ versuche.

[Java] can stay relevant by slimming down, speeding up and implementing more useful features – not reimplementing poor replicas of features already developed years ago by the community.

Und so hört man tatsächlich aus dem Mund eines OSGi-Befürworters das größte Lob für Jigsaw (Teil 1):

Jigsaw is great. It’s time to declare victory, release it, and move on.

Was meinen Sie? Sollen wir es dabei belassen und Jigsaw auf das Modularisieren des JDK beschränken? Oder hat Jigsaw auch als allgemeiner Standard zur Modularisierung von Java-Anwendungen eine Zukunft jenseits des Shibboleths?

Aufmacherbild: A chainsaw with blood spatters von Shutterstock / Urheberrecht: Zern Liew

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

1 Kommentar auf "Beenden wir Jigsaw – und veröffentlichen wir Java 9!"

avatar
4000
  Subscribe  
Benachrichtige mich zu:
Neil Bartlett
Gast

Thanks for the article!

What I mean by a shibboleth is as follows: a custom, principle, or belief distinguishing a particular class or group of people, especially a long-standing one regarded as outmoded or no longer important“.