Suche
Interview mit Guido Oelmann

„Eine weitere Verschiebung von Java 9 würde das Vertrauen in Jigsaw untergraben“

Hartmut Schlosser

Das Exekutiv-Komitee des JCP stimmt momentan über die Annahme des Modulsystems Jigsaw in Java 9 ab. Sollte es hier zu einer Ablehnung des Public Drafts kommen, wird der geplante Release-Termin für Java 9 (27. Juli 2017) nur schwer zu halten sein. Wir haben uns mit JAX-Speaker Guido Oelmann, der Jigsaw gut aus der Praxis der Anwendungsentwicklung kennt, über die Kritik am Modulsystem und die möglichen Konsequenzen einer Verschiebung von Java 9 unterhalten.

JAXenter: Momentan gibt es ja einige Kritikpunkte an Jigsaw, die von RedHat, IBM, Maven und anderen vorgetragen wurden. Kannst du diese Punkte nachvollziehen?

Bei aller berechtigten Kritik muss man auch schauen, ob nicht das ein oder andere Gesagte politisch motiviert ist.

Guido Oelmann: Die einzelnen Punkte kann ich inhaltlich grundsätzlich nachvollziehen, und es sind durchaus berechtigte Einwände dabei (z.B. split packages oder isolated package namespaces erlauben). Aber alle aufgeführten Punkte lassen sich kontrovers diskutieren, und ich selber sehe auch nicht alles als Nachteil an, z.B. die nicht vorhandene Versionierung von Artefakten.

Viel schwerer wiegen für mich die Vorwürfe, dass das Modulsystem eine Erfindung vom Reißbrett wäre. Das sehe ich nicht so und mir würde auch die ein oder andere Java-Spezifikation einfallen, der ich begründet den selben Vorwurf machen könnte.

Bei aller berechtigten Kritik muss man auch schauen, ob nicht das ein oder andere Gesagte sich aus einem eher politisch motivierten Antrieb heraus speist, und ich denke hier nicht nur an die OSGi-Vertreter. Ich kann verstehen, dass ein OSGi-Anhänger Jigsaw mit OSGi vergleicht und die vielen Vorzüge von OSGi dabei herausstellt. Aber Jigsaw ist nicht OSGi, und OSGi hatte viele Jahre Zeit, sich flächendeckend in den Unternehmen auszubreiten, was es aber nicht tat.

Lesen Sie auch: Java 9 vor der Entscheidung: „Es werden noch einige JCP Executive Member gegen Jigsaw stimmen“ – Interview mit Christoph Engelbert

Und dass mit Jigsaw im Bereich der Anwendungsentwicklung eine Design-Philosophie aufoktroyiert würde, ist für mich eine unnötige Dramatisierung.

Ohnehin kann keiner in die Zukunft schauen. Vor 20 Jahren haben wir Software anders entwickelt als heute, und in weiteren 20 Jahren werden wir es wahrscheinlich wieder anders machen. Was uns heute besonders sinnvoll erscheint, mag in naher Zukunft vielleicht schon wieder überholt sein.

Ich sehe das Ganze pragmatisch und keinesfalls dogmatisch. Modularisierung, in welcher Form auch immer, ist aus heutiger Sicht der Softwaretechnik ein grundlegendes Prinzip, das in modernen Softwaresystemen gewinnbringend angewendet wird. Und wenn die Java-Plattform dem gerecht wird und mir ein Modulsystem zur Verfügung stellt, dann werde ich dieses gerne verwenden. Und wenn wir uns in 10 Jahren fragen, was uns da geritten hat, dann machen wir es halt wieder anders.

JAXenter: Würdest du eine Verschiebung von Java 9 in Erwägung ziehen, um die genannten Kritikpunkte zu beheben?

Guido Oelmann: Dazu ein definitives Nein von mir. Eine weitere Verschiebung würde die Verantwortlichen zunehmend unglaubwürdiger erscheinen lassen und dadurch bedingt auch das Vertrauen der Entwicklergemeinde in Jigsaw untergraben, so dass die spätere Akzeptanz erheblich leiden könnte. Die Diskussionen der letzten Jahren zeigen zudem, dass sich der Zeitpunkt, wo alle zufrieden sind, ohnehin nicht erreichen lässt.

Jigsaw hat aktuell einen qualitativ guten Zustand erreicht und sollte jetzt verabschiedet werden. Ein begonnenes Projekt – und das gilt für alle Projekte – muss auch irgendwann mutig an den Start gebracht werden, sonst hätte man es auch ganz bleiben lassen können.

Jigsaw – wo liegen die Vorteile?

JAXenter: Wo liegt für dich der größte Vorteil der Modularisierung eines Projektes mit Java 9 bzw. Jigsaw?

Die mit dem Architekturentwurf modellierten Module lassen sich nun direkt auf Java-Module abbilden.

Guido Oelmann: Der größte Vorteil innerhalb eines Projektes ist für mich, dass ich die mit dem Architekturentwurf modellierten Module nun direkt auf Java-Module abbilden kann. Zudem bieten diese Java-Module eine starke Kapselung, die von außen nicht unterlaufen werden kann. Neben den eindeutigen Schnittstellen habe ich so eine sehr gute Übersicht über die Abhängigkeiten.

Nicht zu unterschätzen ist aber auch der Vorteil, dass die Verwendung von Java-Modulen für ein Projektteam die Erfordernis mit sich bringt, dass alle Entwickler den Fokus stärker auf die Modularität setzen, was sich positiv auf die Entwicklung im Sinne des Erhalts der Wartbarkeit auswirken dürfte.

JAXenter: Kannst du einmal ein Beispiel aus deiner persönlichen Praxis geben?

Guido Oelmann: Im Umfeld des Internets der Dinge haben wir es meist mit kleinen performancebegrenzten Geräten zu tun, auf denen die Anwendung läuft. Hier liegt der größte Vorteil im modularisierten JDK selber, das den Anforderungen der Anwendung entsprechend angepasst werden kann, so dass nur kleine Runtime-Images installiert werden müssen.

Gleiches gilt für Softwaresysteme, die sich über mehrere Container erstrecken. Hier ist es vor allem hilfreich, die deploybaren Containergrößen durch die angepassten Runtime-Images erheblich zu vermindern.

In meiner persönlichen Praxis haben wir einen größeren Test mit einem mehrere Container umfassenden System durchgeführt, wo individuelle Runtime-Images eingesetzt und auch vom Modulsystem Gebrauch gemacht wurde. Da Java 9 noch nicht final ist, kann dies sicherlich noch nicht abschließend beurteilt werden, aber Performance, Startgeschwindigkeit usw. machten einen vielversprechenden Eindruck.

JAXenter: Auf der JAX hältst du auch einen Talk über dieses Thema: „Die Welt ist modular.“ Was ist dabei deine Kernaussage?

Guido Oelmann: Modularisierung ist ein hervorragendes Instrument, um wartbare, langlebige Softwaresysteme zu bauen und sollte daher auch auf höheren Abstraktionsebenen eingesetzt werden. Das Java-Modulsystem unterstützt uns bei dem Bau von Modulen oberhalb der Paketebene, bietet starke Kapselung, hilft Abhängigkeiten besser im Auge zu behalten und ermöglicht uns die Flucht aus der JAR-Hölle.

JAXenter: Vielen Dank für dieses Interview!

Diplom-Informatiker Guido Oelmann studierte an der RWTH in Aachen und arbeitet als freiberuflicher Softwarearchitekt, Berater und Trainer. Zu seinen Schwerpunkten gehört neben agilen Entwicklungsmethoden und Softwarearchitekturen der Einsatz von Java-/Java-EE-Technologien in verteilten Systemen. Er unterstützt Unternehmen durch die Mitarbeit in Entwicklungsprojekten und verfügt über viele Jahre Erfahrung beim Entwurf und der Entwicklung großer IT-Systeme in unterschiedlichen Branchen.
Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Hartmut Schlosser ist Redakteur und Online-Koordinator bei Software & Support Media. Seine Spezialgebiete liegen bei Java-Enterprise-Technologien, JavaFX, Eclipse und DevOps. Vor seiner Tätigkeit bei S & S Media studierte er Musik, Informatik, französische Philologie und Ethnologie.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.