Suche
Interview mit Christoph Engelbert zu Java 9

Java 9 Release: „Project Jigsaw war das Warten wert, allerdings nicht für Endnutzer“

Dominik Mohilo

Christoph Engelbert

Das Project Jigsaw, also das Modulsystem von Java 9, wird weiterhin sehr kontrovers betrachtet. Im Zuge der gestrigen Veröffentlichung der neuen Java-Version haben wir uns mit Christoph Engelbert über eben dieses Thema unterhalten. Im Gespräch erklärt er außerdem, welches in seinen Augen das wichtigste Feature von Java 9 ist und was er vom neuen Veröffentlichungsschema hält.

Wir sprechen mit Christoph Engelbert, der als Repräsentant des Unternehmens Hazelcast im Experten-Komitee des JCP vertreten ist, über Java 9, Project Jigsaw und die neue Releasepolitik für Java. Außerdem erklärt er, auf welches Feature zukünftiger Java-Versionen er sich besonders freut.

JAXenter: Welches Feature ist für dich das wichtigste in Java 9?

Christoph Engelbert: Viele kennen vermutlich die Antwort, aber nein, es ist nicht der JEP261, besser bekannt als Project Jigsaw, sondern das Stackwalking API. Dieses ermöglicht es, an jedem Punkt im Programmablauf einen Stacktrace zu generieren. „Alter Hut, lahmes Brot, kann man doch auch mit Exceptions machen!“, werden manche nun sagen. Kann man, muss man aber nicht. Das Stackwalking API kann dies nämlich lazy, ergo werden nicht mehr Stackframes erzeugt als notwendig. Tatsächlich ist die Erstellung eines vollen Stacktraces eine ganz schön kostspielige Angelegenheit, aber nicht der einzige Grund, wieso Exceptions als Flußkontrolle eine schlechte Idee sind.

Mein zweitliebstes Feature ist übrigens das neue HTTP2.0 API, welches in Java eingebettet ist. Leider derzeit noch auf im experimentellen Status, aber Java 18.03 steht ja schon fast vor der Tür 😉

JAXenter: Projekt Jigsaw bringt das Modulsystem für Java. War Jigsaw das lange Warten wert?

Christoph Engelbert: Mit obiger Antwort wird ein „ja“ hier sicher viele verwundern und trotzdem: ja, es war das Warten wert. Allerdings nicht für Enduser, sondern für das JDK selber.

Wer heute seine Anwendung modularisieren will, der kann OSGi nutzen oder baut sich sein eigenes Plug-in-system.

Die Aufteilung und – viel wichtiger – Aufspaltung in verschiedene, wartbare Module war extrem wichtig und lange überfällig. Trotzdem könnte man weiterhin darüber streiten, ob eine interne Angelegenheit echte Sprachänderungen mit sich ziehen sollte. Das JPMS oder Java Platform Module System, wie Project Jigsaw nun offiziell heißt, wird noch mindestens eine oder zwei Iterationen benötigen, bis es für den Einsatz durch Endnutzer sinnvoll ist.

Abgesehen davon, seien wir mal ehrlich: Wer heute seine Anwendung modularisieren will, der kann OSGi nutzen oder baut sich sein eigenes Plug-in-system. Das Internet ist voll von diesen Beispielen. Nur weil Jigsaw da ist, wird keiner mit einem Mal da stehen und sich vor Modularisierungsfreude kaum noch halten können.

Wirst du gleich mit Jigsaw durchstarten, oder siehst du die Modulsache eher skeptisch?

Christoph Engelbert: Wie gesagt, ich halte Project Jigsaw durchaus für sinnvoll, aber erstens nicht im aktuellen Stadium und zweitens nicht für Leute, die ihre Anwendung nicht heute auch schon modularisieren. Wieso sollte jetzt plötzlich jemand losrennen, wobei man bestehende Anwendung ohnehin nicht modularisieren sollte – siehe Beispiel das Beispiel Java 😉

Trotzdem hoffe ich, dass viele Firmen und Open-Source-Projekte schauen, das Modulsystem schnellstmöglich zu untersützen. Leider werden ehemals bezahlte, und oft teure, Legacy-Libraries immer wieder ein Problem werden. Besonders, wenn diese nicht mehr aktualisiert werden. Selbstverständlich arbeitet auch Hazelcast daran, die eigenen Produkte für Java 9 vorzubereiten, wenn auch erstmal nur im Hinblick auf die einfache Runtime-Unterstützung.

Ich halte Project Jigsaw für sinnvoll, aber erstens nicht im aktuellen Stadium und zweitens nicht für Leute, die ihre Anwendung nicht heute auch schon modularisieren.

JAXenter: Welche Features fehlen deiner Meinung nach?

Christoph Engelbert: Uff, schwere Frage. Ich freue mich auf viele Features, die sich derzeit in der Pipeline befinden. Ein Beispiel ist Project Panama, welches grundsätzlich JNI, also das Java Native Interface, ablösen soll. Darauf warte ich fast länger als auf die Java-Modularisierung. Dank der neuen Release-Regelung werden wir in Zukunft auf neue Features hoffentlich nicht mehr so lange warten müssen.

JAXenter: Da du es schon ansprichst, Java soll bald in regelmäßigen Abständen releast werden, eine gute Idee?

Christoph Engelbert: Absolut! Zwischen dem JCP EC, also dem Executive Committee des Java Community Process, und dem OpenJDK-Projekt gab es im Vorfeld lange Diskussionen darüber, wie der JCP und das OpenJDK diesen neuen Pfad sinnvoll und vor allem gemeinsam beschreiten können.

Wie bereits erwähnt heißt das für die User in erster Linie, dass neue Features schneller zur Verfügung stehen werden. Leider sind Early Access und Beta Releases halt doch immer noch nur für einen „gewissen“ Teil der Bevölkerung interessant, wenn es auch jetzt mehr sind als früher.

Lesen Sie auch: Java 9 Infografik: Project Jigsaw auf einen Blick

Was allerdings schwierig werden könnte, sind die LTS Versionen, die nur alle drei Jahre veröffentlicht werden sollen. Hier sehe ich für konservative Firmen echte Nachhänger-Qualitäten. Derzeit sind diese Firmen oft nur zwei Releases hinterher, diese Releases bringen aber zehn bis zwölf Jahre auf die Waage. Kommen LTS Releases alle drei Jahre, wären wir hier schon bei drei bis vier Releases. Aber mal schauen, was die Zukunft bringt. Vielleicht sorgen weniger Änderungen pro Release ja für mehr Sicherheit und Updatefreudigkeit. Ich würde es mir im Namen der vielen armen Entwickler wünschen, die noch Java 5 und Java 6 benutzen müssen – uns eingenommen.

JAXenter: Vielen Dank für dieses Gespräch!

Christoph Engelbert ist technischer Evangelist und Senior Solutions Architect bei Hazelcast. Er ist ein Apache Committer und Open Source Enthusiast und vertritt Hazelcast im Experten-Komitee des JCP. Vor allem interessiert er sich für Performance-Optimierungen und die Interna der JVM und des Garbage Collector.

Verwandte Themen:

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Schreibe einen Kommentar

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