Java: JDK 13 ist in der Rampdown-Phase, Features stehen fest
Mit dem Eintritt in die "Rampdown Phase One" wurde die Feature-Liste des JDK 13 eingefroren. Erscheinen soll die neue Version am 17. September.
- Björn Bohn
Version 13 des Java Development Kit (JDK) hat die erste Rampdown-Phase erreicht. Dies ist insofern ein wichtiger Schritt für das nächste Java-Release, als damit ein sogenannter Feature Freeze eintritt – die geplanten Neuerungen für das wohl am 17. September erscheinende JDK 13 stehen somit fest, keine weiteren Funktionen stehen auf der To-Do-Liste der Entwickler. Insgesamt fünf Java Enhancement Proposals (JEP) sollen den Sprung in Java 13 schaffen, zwei davon als Preview:
- JEP 350: Dynamic CDS Archives
- JEP 351: ZGC: Uncommit Unused Memory
- JEP 353: Reimplement the Legacy Socket API
- JEP 354: Switch Expressions (Preview)
- JEP 355: Text Blocks (Preview)
Switch Expressions wieder als Preview
Wer sich die Features des im März erschienen JDK 12 in den Sinn ruft, wird vermutlich über den erneuten Preview-Status der Switch Expressions stolpern. Damals handelte es sich noch um das JEP 325. Laut den Informationen im neuen Proposal sollte das JEP 325 vor allem Feedback zum Einsatz der switch-Ausdrücke (Expressions) und den erweiterten switch-Anweisungen (Statements) einholen. Im neuen Proposal ist dadurch eine einzelne Änderung entstanden.
Um einen Wert aus einem switch-Ausdruck zu erhalten, verfügt das JDK 13 über eine neue yield-Anweisung. Das JEP 325 schlug hingegen ein break-Statement mit einem Wert vor. Die Änderung soll eine einfachere Unterscheidung zwischen switch-Ausdrücken und Anweisungen ermöglichen, da nur letztere Ziel einer BREAK[/I]-Anweisung sein kann. [i]switch soll auf das im JEP 305 vorgeschlagene Pattern Matching vorbereiten.
Die restlichen Features kurz zusammengefasst
Das JEP 350 soll das Class-Data Sharing (CDS) von Applikationen erweitern, um das dynamische Archivieren von Klassen beim Ende der Ausführung einer Java-Applikation zu ermöglichen. Die archivierten Klassen sollen alle geladenen Applikations- und Bibliotheksklassen beinhalten, die nicht sowieso standardmäßig im DCS-Archiv enthalten sind.
Darüber hinaus soll der Z Garbage Collector (ZGC) mit dem JEP 351 ungenutzten Heap-Speicher an das Betriebssystem zurückgeben. Das sei bislang nicht der Fall und wäre beispielsweise in solchen Fällen suboptimal, in denen Nutzer beispielsweise in einer Container-Umgebungen die Ressourcen pro Nutzung bezahlen müssten.
Dahingegen hat sich das JEP 353 zum Ziel gesetzt, die den APIs java.net.Socket und java.net.ServerSocket zugrundeliegende Implementierung durch eine simplere und zeitgemäßere zu ersetzen, die in Zukunft einfacher zu debuggen und zu warten ist. Sie soll wohl außerdem auf das Zusammenspiel mit User-Mode Threads adaptiert werden können, die das Projekt Loom gerade testet.
Zu guter Letzt ist mit dem JEP 355 ein weiteres Preview-Feature geplant, das Textblöcke (Text Blocks) zur Programmiersprache bringen soll. Dabei handelt es sich um literale, mehrzeilige Zeichenketten, die den Einsatz der meisten Escape-Sequenzen vermeiden und außerdem für eine automatische und einheitliche Formatierung des String sorgen soll.
Ein vollständiger Überblick über den weiteren Zeitplan des JDK 13 findet sich auf der OpenJDK-Seite. Das Release ist für den 17. September geplant, es handelt sich dabei nicht um ein Long-Term Support Release (LTS). (bbo)