(K)ein Schwanengesang auf Java - Teil 4

Expertencheck: Das sind die häufigsten Missverständnisse über Java 9

Gabriela Motroc

© Shutterstock / ivector

 

Java 9 wird bald das Licht der Welt erblicken – sind Sie schon darauf vorbereitet? Im vierten Teil unserer Interview-Serie mit Java-Experten decken wir die häufigsten Vorurteile und Missverständnisse über Java 9 auf.

Was ist los in der Java-Welt? Jede Menge! Java 9 kommt im September, Java EE 8 steht in den Startlöchern und 11 Java-Experten geben uns  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.

Top 20 Java Influencers

Gefragt haben wir führende Experten der Szene, die auf Twitter besonders aktiv sind. Auf der Basis der Social-Authority-Metriken MozRank and Klout ergibt sich folgende Top 20 der Social Influencer in Java 2017:

 

Komplette Liste unter: www.jaxlondon.com/blog

(K)ein Schwanengesang auf Java

Die Java Influencer

Markus Eisele ist Head of Developer Advocacy bei Lightbend.

Mario Fusco ist Senior Software Engineer bei Red Hat.

Marcus Biel ist Software Craftsman und JCP-Mitglied.

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

Trisha Gee ist Developer Advocate bei JetBrains.

Vlad Mihalcea ist CEO bei Hypersistence.

Jake Wharton ist Android-Entwickler bei Square Inc.

Thorsten Heller ist CEO bei 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.

Haben wir uns im ersten Teil der Serie damit beschäftigt, ob JavaScript die Führungsposition von Java gefährden könnte, ging es im zweiten Teil um die Verschiebung von Java 9. Zudem haben die Experten in Teil 3 die Relevanz des Projektes Jigsaw für die Java-Community bewertet.

Damit ist die Bahn frei für den vierten Teil der Serie, in dem wir die geläufigsten Missverständnisse bzgl. Java 9 aufdecken.

11 Antworten: Was sind die größten Missverständnisse über Java 9?

Markus Eisele: Meine zwei liebsten Missverständnisse bezüglich Java 9 sind die Folgenden: erstens die Integration der Reactive-Streams-Spezifikation. Ich habe schon die ersten Blogposts darüber gelesen, wie man Reactive Streams in eigenen Anwendungen einsetzen kann. Man sollte die Spezifikation aber nicht direkt nutzen, sondern mittels einer Referenzimplementierung wie beispielsweise Akka Streams. Hier ist einer der besseren Blogposts, der eine Einführung in Akka Streams gibt.

Mit Jigsaw enden wir schlimmstenfalls in einer „Modulhölle.“

Das zweite Missverständnis bezieht sich auf Jigsaw, oder besser gesagt auf das Java Platform Module System (JPMS). Es gibt darin viele Aspekte, die, gelinde ausgedrückt, für Verwirrung sorgen werden. Schlimmstenfalls enden wir gar in einer „Modulhölle“.

Stephen Colebourne hat drei gute Artikel geschrieben, in denen er versucht, die Verwirrung etwas aufzulösen: Er spricht dabei über module namingautomatic modules und darüber, warum Module keine Artefakte sind.X

Marcus Biel:  Wie bei allen Veränderungen besteht ein Vorurteil darin, dass eine Migration auf Java 9 bzw. Jigsaw teurer und riskanter ist als keine. Es stimmt zwar, dass jedes Upgrade mit einem Risiko verbunden ist. Aber früher oder später wird man ohnehin updaten müssen.

Je früher man migriert, desto schneller kann man die Vorteile der neuen Version genießen. Im Fall von Jigsaw wird man von der sauberen Kapselung auf Modulebene profitieren. Jigsaw erlaubt es, modulare Systeme mit einer viel klareren, präziseren Struktur zu bauen, die viel schneller auch von neuen Entwicklern oder Business-Leuten verstanden wird.X

Trisha Gee: Viele sind sich noch nicht dessen bewusst, dass man Java 9 und all die darin enthaltenen schönen neuen Features auch ohne Jigsaw nutzen kann. Das bedeutet, dass man Java 9 verwenden kann, ohne irgendeine Codebasis migrieren zu müssen.

Es gibt einige Dinge, die sich in Java 9 geändert haben – beispielsweise das Verstecken interner APIs. Aber theoretisch sollte eine Anwendung, die von Beginn an alles richtig gemacht hat, problemlos auch mit Java 9 kompilieren und laufen.X

Vlad Mihalcea: Das größte Missverständnis? Jigsaw natürlich.X

Jake Wharton: Wenn man sich die Kommentare zur Modularität in Java 9 anhört, klingt das manchmal so, als bringe man Verderben über Autoren von Tools. Aber die Migration vom Klassenpfad zum Modulpfad muss ja nicht von einem Tag auf den anderen erfolgen.

Es gibt genügend Flags und Optionen, die eine die Migration in einer Geschwindigkeit erlauben, die für das jeweilige Unternehmen angemessen ist. Bis ins Unendliche sollte man die Migration allerdings auch nicht aufschieben.

Wenn man sich die Kommentare zur Modularität in Java 9 anhört, klingt das manchmal so, als bringe man Verderben über Autoren von Tools.

Ich hoffe, dass die potenziellen Vorteile genügend Anreiz bieten, um Migrationen zu motivieren. Zumindest bis in Java 10 dann diese Flags und Optionen verschwinden werden.  X

Thorsten Heller: Für mich gibt es zwei große Missverständnisse: erstens die Maven-Diskussion, in der man oft hört, dass Maven nicht mehr funktionieren würde, und zweitens die falsche Annahme, den gesamten Code einer Anwendung ins neue Modulsystem übertragen zu müssen.X

Baruch Sadogursky:  Der größte Irrglaube ist, dass die Industrie sich massiv gegen Jigsaw gestellt hätte und es deshalb nicht wirklich in Java 9 umgesetzt worden sei. Richtig ist, dass die Industrie einen Dialog erzwungen hat, der in einen guten Kompromiss gemündet ist und der es erlaubt hat, Jigsaw in Java 9 auf eine für Entwickler bessere Art und Weise umzusetzen.X

Ein echtes Missverständnis ist, dass Entwickler ihre Pakete jetzt als Module umorganisieren müssten.

Quentin Adam: Ich denke, dass java.lang.reflect faktisch deprecated wurde, ist ein Fehler, weil es zu vielen Error-Meldungen und Frustrationen führen wird. Viele Entwickler nutzen java.lang.reflect indirekt in Frameworks und wissen nicht, wie genau es funktioniert. Es wird also etwas Aufklärungsarbeit zu leisten sein. Ich bin gespannt, wie gut das angenommen wird.X

Bruno Borges: Ein echtes Missverständnis ist wohl, dass Entwickler ihre Programme umschreiben und ihre Pakete jetzt als Module umorganisieren müssten. Aber niemand wird gezwungen, solche Veränderungen vorzunehmen!

So geht’s weiter

Im letzten Teil der Serie blicken wir nach vorne auf Java 10. Welche neuen Features stehen in der Pipeline und welche Neuerungen wünschen sich die Java-Experten?

Die Serie:
Teil 1: Heißt Javas Schicksal JavaScript?

Teil 2: Ist die Verschiebung von Java 9 gerechtfertigt?

Teil 3: Wie relevant ist Projekt Jigsaw wirklich?

Teil 4: Das sind die häufigsten Missverständnisse zu Java 9

W-JAX
Mike Wiesner

Data- und Event-driven Microservices mit Apache Kafka

mit Mike Wiesner (MHP – A Porsche Company)

Niko Köbler

Digitization Solutions – a new Breed of Software

with Uwe Friedrichsen (codecentric AG)

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.