Suche
10 Java-Influencer über Gegenwart und Zukunft der populärsten Programmiersprache der Welt

Expertencheck Java 9: Wie relevant ist Projekt Jigsaw wirklich?

Gabriela Motroc

© Shutterstock / Panda Vecto

Lange haben wir darauf gewartet – jetzt ist es endlich so weit: Mit Projekt Jigsaw wird in Java 9 ein Modulsystem Teil des JDK. Die Debatten um Fokus und Ausgestaltung von Jigsaw reichen weit zurück. Wie ist die Community mit dem in Java 9 zu erwartenden Resultat zufrieden? Wir haben 10 Experten der Szene dazu befragt.

(K)ein Schwanengesang auf Java – Teil 3: Wie relevant ist Jigsaw?

Was ist los in der Java-Welt? Jede Menge! Java 9 kommt im September, Java EE 8 steht in den Startlöchern und 10 Java-Experten geben uns wertvolle Einblicke in die Zukunft der Programmiersprache. In dieser Interviewserie besprechen wir, wo wir mit Java 9 stehen, welchen Weg Java 10 einschlagen wird und welche Technologien Javas Führungsposition gefährden könnten.

Haben wir uns in Teil 1 mit der Konkurrenzsituation zwischen Java und JavaScript beschäftigt, in Teil 2 die Gründe für die Verschiebung von Java 9 erörtert, geht es in Teil 3 um eine Beurteilung des Hauptfeatures von Java 9: das Modulsystem Jigsaw.

10 Java Influencer im Gespräch

JAXenter: Georges Saab, Vorsitzender des OpenJDK Governing Board und Vice President of Development der Java-Plattform-Gruppe bei Oracle, hat in einem JAXenter-Interview gesagt, dass wahrscheinlich viele Entwickler das JDK 9 zunächst ohne Module nutzen werden. Was denkst du über das modulare Ökosystem?

Die Java Influencer

Markus Eisele ist Head of Developer Advocacy bei Lightbend und Java Champion.

Marcus Biel ist Software Craftsman, JCP-Mitglied und CleanCode Evangelist.

Lukas Eder ist Gründer der Data Geekery GmbH, Erfinder von jOOQ und Java Champion.

Trisha Gee ist Developer Advocate bei JetBrains, Mitglied der London Java Community und Java Champion.

Vlad Mihalcea ist CEO bei Hypersistence und Autor des Buches High-Performance Java Persistence.

Jake Wharton ist Android-Entwickler bei Square Inc.

Thorsten Heller ist CEO des Unternehmens greenbird Integration Technology.

Baruch Sadogursky ist Developer Advocate bei JFrog.

Quentin Adam ist CEO von Clever Cloud.

Bruno Borges ist Principal Product Manager bei Oracle und verantwortlich für das Developer Engagement der Oracle Cloud Platform und Java-Technologien.

Markus Eisele: Genau das wird passieren. Niemand nutzt etwas, das einem keine Vorteile und nur Nachteile einbringt. Die Möglichkeit, das Modulsystem auszuschalten, wird Unternehmen zumindest dazu bewegen, die neuesten JVM-Versionen zu nutzen, in denen hoffentlich alle Fehler und Sicherheitslücken behoben wurden. Man stelle sich nun aber vor, Oracle bringt gemäß der EOL-Bedingungen keine Java-8-Updates mehr heraus, und niemand arbeitet mit Java 9.

Die Bemühungen zur Modularisierung kommen zu spät.

Ich persönlich denke, dass die Bemühungen zur Modularisierung zu spät kommen und zu wenig Wertschöpfung für Entwickler nach sich ziehen. Auf der anderen Seite werden vielleicht tatsächlich spezialisierte JVMs für kleinere und oder spezialisierte Devices entstehen. Es könnte auch optimierte Versionen für Container geben. Drücken wir also die Daumen, dass vieles von diesem Wissen auch ins OpenJDK und nicht nur in Oracle-Produkte fließen wird.

Marcus Biel: Jigsaw ist eine große Chance. Die Migration dahin bedeutet allerdings viel Arbeit, und die Mehrheit der Unternehmen wird das erst mit einiger Verzögerung angehen. Die meisten Unternehmen werden eine Umstellung auf Java 9 noch viele Jahre lang als großes Risiko betrachten und eine Migration so lang wie möglich hinauszögern, ohne die großartigen Vorteile zu sehen, die eine Modularisirung mit sich bringt. Leider!

Wenn man nun noch bedenkt, dass die meisten Unternehmen immer noch Java 7 im Einsatz haben und nur wenige Unternehmen wirklich Java 8 nutzen, dann kommt man zu dem Schluss, dass uns das Thema Migration sicherlich noch die nächsten 5-10 Jahre beschäftigen wird.

Lukas Eder: Ich bin mir sicher, dass Georges Recht hat. Ich verstehe sehr gut, dass Jigsaw und die Modularität wichtig für die Weiterentwicklung des JDK sind. Doch die Community hat bereits eigene Lösungen für das Modularitätsproblem gefunden, die für sie funktionieren, etwa mit Werkzeugen wie Maven, OSGi und anderen. Die Community wird sich also wahrscheinlich nicht sofort auf die neuen Modul-Features in Java 9 stürzen.

Aber verstehe mich nicht falsch. Es ist wichtig für Java, über ein Modulsystem zu verfügen. Aber ich glaube nicht, dass die Implementierung von Jigsaw in Java 9 die meisten von uns wirklich begeistert. Das bedeutet nicht, dass zukünftige Java-Versionen hier nicht Verbesserungen bringen können.

Trisha Gee: Ich habe viel über Jigsaw gelesen und auch selbst ein wenig damit gearbeitet, indem ich eine meiner Microservices-Anwendungen auf JPMS migriert habe. Ich denke, Module zu einem der wichtigsten Features in der Sprache zu machen, war eine gute Sache. Es hat mich als Entwicklerin dazu gebracht, gute Design-Praktiken wie Kapselung und Separation of Concerns viel sorgfältiger anzuwenden. Allerdings hat das bisherige Fehlen von Modularität in Java auf Sprachniveau dazu geführt, dass andere Parteien ihre eigenen Lösungen dafür entwickelt haben – z.B. werden in dem Projekt, das ich gerade erwähnt habe, Gradle Sub-Projekte verwendet. Die Modularität in Java 9 soll diese Lösungen nun zwar nicht ersetzen, aber sie muss gut mit ihnen zusammen funktionieren. Und genau das ist der Punkt, an dem die Experten viel Arbeit investieren müssen.

Die meisten existierenden Codebasen werden nicht migrieren.

Meine allgemeine Meinung über die Java-9-Modularität ist, dass neue Projekte wahrscheinlich offen sein werden, um zu überprüfen, ob JPMS ihnen etwas bringt. Die meisten existierenden großen Codebasen werden indes nicht migrieren – tatsächlich werden sie keine Vorteile davon haben, es sei denn, sie sind bereits auf dem Weg, ihre Architektur in kleinere Teile zu zerlegen, beispielsweise im Zuge einer  Migration eines Monolithen hin zu Microservices.

Schwerer haben es meiner Meinung nach die Autoren von Libraries, dessen Open-Source-JAR-Dateien wir ja alle täglich nutzen. Einige Anwendungsentwickler werden die verwendeten Libraries als echte modulare JAR-Files nutzen wollen – und nicht als automatisch generierte Module. Das setzt Library-Autoren unter Druck, ihren Code zu migrieren. Es ist sicherlich von Vorteil, das zu tun, beispielsweise um Implementierungsdetails und interne APIs zu verstecken – gemäß dem Prinzip, nach dem Jigsaw entworfen wurde. Aber das zu tun, ist in vielen Fällen nicht trivial. Der Nutzen muss hier erst einmal die Kosten wieder aufwiegen.

Vlad Mihalcea: Ich interessiere mich persönlich nicht so sehr für Modularität. Ich denke, Module sind  wichtiger für Frameworks als für Enduser-Anwendungen.

Jake Wharton: Modularität ist aus vielen Gründen ein Konzept, das langfristig wichtig ist. Als Library-Entwickler ist die verbesserte Kapselung extrem willkommen. Aber es wird viele Jahre dauern, bis das Modulsystem wirklich weitläufig eingesetzt werden wird. Jigsaw ist ein maßgebendes Werkzeug, um spezialisierte, kleine JVMs zu bauen, auf denen man seine Anwendungen betreiben kann. In Zeiten der steigenden Container-Nutzung bedeutet die Reduzierung der JVM-Ressourcen, die nötig sind, um eine Anwendung laufen zu lassen, dichtere Deployments und reduzierte Infrastruktur-Kosten.

Thorsten Heller: Um ehrlich zu sein, bin ich immer noch hin und her gerissen bzgl. des Java-9-Modulsystems und darüber, wie es mit OSGi zusammenarbeitet. Ich hätte kein wirkliches Problem damit, das ganze Modulsystem in Java 9 fallen zu lassen, um sich mit anderen Aspekten zu befassen.

Baruch Sadogursky: Was Georges Saab sagt, ist völlig in Ordnung. Die meisten Entwickler werden keine Modularität benötigen. Und Jigsaw in seiner alten Form hat neue Komplexitäten und Einschränkungen eingeführt, ohne wirklich substantielle Vorteile zu bringen. Jigsaw ist zweifellos ein extrem wichtiger Schritt für das JDK – Jigsaw ist also eine gute Sache. Es aber im ersten Schritt weitgehend in der Plattform zu verstecken, ist eine gute Entscheidung gewesen.

Quentin Adam: Modularität innerhalb des JDK ist unablässig für die Zukunft der JVM als Plattform. Der erste Schritt besteht darin, Modularität in das JDK einzuführen und die Nutzung von Modulen zu ermöglichen. Bis die Massen Jigsaw nutzen werden, wird es einige Zeit brauchen – auch bis die Frameworks und Tools vollständig kompatibel sein werden. Genauso wird es Zeit brauchen, um Entwicklern und Architekten die Pros und Contras des modularen Systems nahezubringen.

Vielleicht werden die Leute bis Java 10 warten, um Module in ihren alltäglichen Projekten einzusetzen.

Vielleicht werden die Leute bis Java 10 warten, um Module in ihren alltäglichen Projekten einzusetzen. Aber die Grundlagen werden dann gelegt sein. Erfahrungsberichte und War Stories werden verfügbar sein, und der Weg für die weitere Verbreitung offen stehen. Auch als Generics in Java eingeführt wurden, hat es einige Jahre gedauert, bis diese breitflächig eingesetzt wurden. Ich glaube nicht, dass das ganze Java-Ökosystem sich im November plötzlich auf die Module stürzen wird. Java 9 ist letztlich eine Gelegenheit für die Community und die JUGs, effizient ihre Arbeit zu tun, neue Leute zu treffen und Vorträge zu halten. Denn die Entwickler werden wieder etwas dazulernen müssen und sich nach Neuigkeiten umhören. Diese Art von Releases hat einen großen Einfluss auf die Community und wird dazu führen, dass das durchschnittliche Wissen um die Plattform einen deutlichen Schub nach vorne erhalten wird.

Bruno Borges: Ich habe mir vor ungefähr einer Woche das erste Mal ein JDK 9 Early Access Release  angeschaut. Und ich kann nur alle Java-Entwickler dazu ermuntern, dasselbe zu tun und zu testen, ob ihre Anwendungen noch einwandfrei damit funktionieren. Und weißt du was? Meine Anwendungen liefen alle stabil weiter. Und das, obwohl ich keine einzige Änderung vornehmen musste. Ich stimme Georges also völlig zu: Viele Entwickler werden einfach auf Java 9 updaten und sich überhaupt keine Gedanken um Module machen müssen.

Im nächsten Teil der Serie wenden wir uns den typischen Fehlinterpretationen bzgl. Java 9 zu. Außerdem wagen die Experten einen Ausblick auf Java 10 und kommentieren, welche neuen Features sie gerne in Java 10 sehen würden.

Verwandte Themen:

Geschrieben von
Gabriela Motroc
Gabriela Motroc
Gabriela Motroc ist Online-Redakteurin für JAXenter.com. Vor S&S Media studierte Sie International Communication Management an der The Hague University of Applied Sciences.
Kommentare

Schreibe einen Kommentar

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