Oracle kommentiert die Java-9-Verschiebung

„Es gibt kein Java 9 ohne Jigsaw“ – Interview mit Georges Saab

Gabriela Motroc
Georges Saab

Der Release-Termin von Java 9 wird wohl auf den 21. September 2017 verschoben. Was heißt das für Jigsaw? Was bedeutet es für Java-Entwickler? Wir haben mit Georges Saab, Chairperson im OpenJDK Governing Board und Vice President of Development der Java Platform Group bei Oracle, über die Gründe der Verschiebung gesprochen. Außerdem verrät uns Saab Details zur Roadmap für Java 10.

Wir haben es alle gehört: Das Release von Java 9 soll laut Mark Reinhold auf den 21. September 2017 verschoben werden. In einer Mitteilung an die OpenJDK-Mailingliste schlägt Reinhold vor, zwar weiter auf das ursprüngliche Ziel eines initialen Release Candidate Builds zum 22. Juni hinzuarbeiten. Doch das Datum für die General Availability von Java 9 soll um 8 Wochen nach hinten verschoben werden.

Wir haben Georges Saab, Chairperson im OpenJDK Governing Board und Vice President of Development der Java Platform Group bei Oracle, gebeten, die aktuelle Situation um Java 9 zu kommentieren.

„Es gibt kein Java 9 ohne Jigsaw“

JAXenter: Einige Features von Java 9 werden definitiv eine Herausforderung für Entwickler darstellen. Ist Jigsaw eines davon?

Georges Saab: Das größte Problem, das wir in der Vergangenheit bei der Einführung neuer Java-Versionen gesehen haben, trat dann auf, wenn ein Teil des Codes das Public API eines anderen Codeteils ignorierte und stattdessen etwas aufgerufen hat, das als internes Detail der Implementierung gedacht war. Das bedeutet, dass eine Änderung an der internen Implementierung dazu führte, dass der aufrufende Code nicht mehr funktionierte.

Mit Jigsaw wird die schnelle Weiterentwicklung des gesamten Java-Ökosystems leichter werden.

Im Laufe der Jahre haben wir viel Aufwand betrieben, um diese Art von internen Änderungen zu vermeiden – doch wenn man das weiter auf die Spitze treibt, kann es zu einem Stillstand der Weiterentwicklung führen. Das ist einer der wichtigsten Gründe für die Einführung des Modulsystems in Java 9 gewesen. Durch Jigsaw wird die Kapselung interner Implementierungsdetails möglich. Andere Module werden auf den Aufruf des öffentlichen APIs beschränkt. Sobald das funktioniert, wird die schnelle Weiterentwicklung des gesamten Ökosystems um einiges leichter werden.

Damit die Migration auf Java 9 schrittweise erfolgen kann, haben wir kürzlich vorgeschlagen, dass die erzwungene Kapselung nach und nach eingeführt wird. Es ist also nicht das Modulsystem an sich, sondern die striktere Kapselung, mit der der meiste bereits existierende Code kollidieren wird.

Es ist natürlich möglich, Java 9 ohne Module zum Laufen zu bringen; der Class Path funktioniert weiterhin. So werden wahrscheinlich die meisten Entwickler in die Arbeit mit Java 9 einsteigen.

Aber es gibt noch einige weitere Neuerungen, über die Entwickler stolpern könnten; dazu gehören die Änderung im Format des Version-Strings (JEP 223) sowie die Veränderung am Packaging des JDK selbst (beispielsweise, dass es kein rt.jar mehr gibt).

JAXenter: Nun sieht es so aus, als würde sich Java 9 erneut verzögern. Dieses Mal aus einem anderen Grund, obwohl es ja noch immer um Jigsaw geht. Was bedeutet diese Verzögerung für Jigsaw?

Die Verzögerung von Java 9 bedeutet nicht, dass Jigsaw nochmals grundlegend verändert wird.

Georges Saab: Jigsaw ist das zentrale Element und der eigentliche Treiber für Java 9. Insofern kann es kein Java 9 ohne Jigsaw geben. Die Verzögerung heißt aber auch nicht, dass Jigsaw an sich nochmals grundlegend verändert werden wird.

JAXenter: Jigsaw sollte ja bereits ein Major Feature von Java 8 sein. Warum wurde es auf Java 9 verschoben? Wird es auch für Java 10 eine zentrale Rolle spielen?

Georges Saab: Jigsaw wurde auf Java 9 verschoben, damit wir uns in Java 8 auf die Kernfunktionen konzentrieren konnten. Jigsaw wird aber auch in Zukunft eine zentrale Rolle spielen, weil es die Basis für eine schnellere Weiterentwicklung der Plattform legt, aber zugleich auch die exzellente Kompatibilität sichert, für die Java bekannt ist.

JAXenter: Rechnest du mit einer schnellen Adoption von Java 9?

Georges Saab: JDK 8 wurde schneller adoptiert als jedes Major Release zuvor. Ich gehe davon aus, dass das bei JDK 9 langsamer passieren wird als bei 8, aber doch im gleichen Tempo wie bei früheren Major Releases. In der weiteren Entwicklung des modularen Ökosystems rechne ich damit, dass die Adoption neuer Releases viel schneller erfolgen wird als in der Vergangenheit.

JAXenter: Gibt es Features, die in Java 9 hätten enthalten sein sollen, es dann aber doch nicht geschafft haben? Werden wir diese Features in Java 10 sehen?

Georges Saab: Es gibt Dutzende von Projekten neben Jigsaw, die es in JDK 9 geschafft haben. Natürlich sind da noch viele mehr, an denen wir für die Zukunft arbeiten und einige, bei denen wir das Gefühl hatten, dass ihnen mehr Zeit und Feedback von den Nutzern gut tun würde. Das ist auch einer der Gründe dafür, dass wir das Konzept der „Incubator Modules“ in JDK 9 eingeführt haben (siehe JEP 11). Ein Beispiel dafür ist JEP 110 – das HTTP/2 Client API ist ein Incubator Module in JDK 9.

Java 10 und darüber hinaus: „Features werden nicht im Voraus einem Release zugeordnet“

JAXenter: Was steht auf der Roadmap für Java 10?

Georges Saab: In der Vergangenheit waren Major Features an bestimmte Releases gebunden. Daraus resultierte dann, dass das Release aufgeschoben werden musste, wenn das Feature mehr Zeit brauchte als eingeplant.

Künftig werden wir keine Features mehr im Voraus an ein Release binden – stattdessen sollen Releases regelmäßig zu festen Zeitpunkten stattfinden. Features werden dann auf ein Release ausgerichtet, sobald sie im Wesentlichen fertig sind. Zusätzlich gibt es nun einen neuen Weg, um bestimmte Arten neuer Features zu testen.

JAXenter: Du hast auf der JAX 2013 gesagt, dass JavaFX für dich eine Herzensangelegenheit ist. Seitdem wurde JavaFX oft auf die Abschussliste gesetzt; es ist aber immer noch da. Womit sollte man in Zukunft rechnen?

Georges Saab: In JDK 9 wurde eine Reihe von Dingen an JavaFX getan, inklusive eines Updates für die Modularität (JEP 253) und der Hinzufügung eines Supports für GTK3 auf Linux (JEP 283).

Ich erwarte, dass die leidenschaftliche Community in der Zukunft viele weitere spannende Dinge herausbringen wird.

Vielen Dank für das Gespräch!

Georges Saab
Georges Saab is the chairperson of the OpenJDK governing board and vice president of development for the Java Platform group at Oracle.
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.