Programmiersprache: Im Herbst kommt Java 17 – ein Ausblick
Im September steht das Release des JDK 17 mit Long-term Support bevor. Eine einheitliche API und neue Rendering-Pipeline für macOS sollen an Bord sein.
- Silke Hahn
Java 17 steht zwar erst im Herbst vor der Tür, aber die nächste Ausgabe des JDK (Java Development Kit) mit Long-term Support (LTS) gewinnt bereits Konturen: Bei mehreren Features zeichnet sich in den Enhancement Proposals zum JDK (kurz: JEP) ab, dass sie ab September 2021 Teil der Programmiersprache sein werden.
Fest steht, dass Java 17 als erste LTS-Version seit den 2014 und 2018 erschienenen Versionen 8 und 11 an den Start geht. Mitte März erscheint zuvor noch Java 16. Java 17 soll die seit der letzten LTS-Version entwickelten Features von Java 12 bis 16 umfassen. Die nun angekündigten Funktionalitäten werden in Java 16 noch nicht enthalten sein und stellen einen ersten Ausblick auf neue Features der kommenden LTS-Version dar.
Neue Rendering-Pipeline für macOS
Java-Entwickler haben die Proposals zu zwei neuen Features Ende Februar eingereicht, und zwar für eine Rendering-Pipeline für macOS (JEP 382) sowie für erweiterte Pseudo-Random Number Generators (PRNG, JEP 356). Als Alternative zur bestehenden Pipeline soll die neue auf die Apple Metal API zugreifen. Die Alternative scheint geboten vor dem Hintergrund, dass die bestehende Pipeline eine veraltete OpenGL API verwendet, die Apple in einer der künftigen Ausgaben aus macOS entfernen wird.
Die in JEP 382 vorgeschlagene neue Pipeline soll zur Java-2D-API passen, die das Metal-Framework von macOS nutzt. Vom Funktionsumfang her soll die neue Pipeline der bisherigen entsprechen, zusätzlich aber eine mindestens ebenso gute oder bessere Performance bieten. An einer klaren Architektur arbeiten die Entwickler laut Proposal nun, damit die neue Pipeline parallel zur alten OpenGL API nutzbar ist, bis die alte API wegfällt. Weitere neue Java- oder JDK-APIs sind offenbar nicht geplant.
Java: Coole Features und Testing reloaded – zwei Workshops von Heise
- Am 22. und 23. März heißt es Hands-on-Java: Besserer Code von Java 9 bis 16 sowie JUnit 5 stehen im Zentrum der beiden Praxis-Workshops.
Einheitliche API für Pseudo-Random Number Generators
Die Pseudo-Random Number Generators würden neue Interface-Typen ermöglichen, ihre Implementierung soll überspringbare PRNG sowie eine zusätzliche Klasse an aufsplitbaren PRNG-Algorithmen namens LXM einführen. Die neue Schnittstelle RandomGenerator
soll dem Proposal zufolge eine einheitliche API für alle bislang schon vorhandenen und die neu hinzutretenden PRNG sein. Flankierend umfasst die Neuerung auch vier speziellere RandomGenerator
-Schnittstellen. Die Proposal-Verfasser sehen laut eigenen Angaben eine Reihe von Einsatzmöglichkeiten zur Verbesserung von Java durch Pseudo-Random Number Generators. Laut Ankündigung müssen Entwickler dann keine zusätzlichen PRNG-Algorithmen mehr implementieren. Drei Algorithmen, die bereits in anderen Entwicklungsumgebungen weit verbreitet sind, fanden dem Proposal zufolge schon Aufnahme.
Das in JEP 356 beschriebene Vorhaben soll es Java-Entwicklern möglich machen, verschiedene untereinander austauschbare PRNG-Algorithmen in Anwendungen einzusetzen. Das neue Feature würde Stream-basiertes Programmieren unterstützen und somit auch das Streamen von PRNG-Objekten. Doppelungen von Code aus bestehenden PRNG-Klassen würden obsolet, und das Verhalten der Klasse java.util.Random
soll planmäßig erhalten bleiben.
25 Jahre: Silbernen Glückwunsch, Java!
- Vor 25 Jahren wurde die Programmiersprache Java der Weltöffentlichkeit vorgestellt. Eine Würdigung zum Jubiläum von Michael Wiedeking.
Migration zu GitHub und Lebenszyklen
Bis zum Long-term Release ist es noch ein Weilchen, zuvor soll am 16. März 2021 noch Java 16 an den Start gehen, das seit dem 18. Februar als Final Release Candidate in der Pipeline sitzt. Mit Java 16 migriert das JDK von Mercurial zu Git (JEP 357) und zu GitHub (JEP 369), unter anderem soll es die Sprachfeatures von C++14 unterstützen (JEP 347) und standardmäßig JDK-Internals (abgesehen von wesentlichen internen APIs) stark einkapseln (JEP 396). Eine vollständige Liste der Features von Java 16 ist bei OpenJDK einsehbar (Specification Request: JSR 391). Zuletzt war im September 2020 Java 15 mit neuen versteckten und versiegelten Klassen erschienen.
Oracle unterstützt die Standard Edition (SE) von Java 8 noch bis März 2022, im erweiterten Support sogar bis Dezember 2030. Java 11 erhält bis September 2023 normalen Support, erweiterten bis September 2026 – Java 8 bietet somit längere Unterstützung für Kunden, die sich auf den kommerziellen Support einlassen. Das Supportmodell und die Releasezyklen hatte Oracle 2018 geändert. Neugierige, die schon einen Blick in JDK 17 werfen möchten, können das bei OpenJDK in den Early-Access Builds tun.
[Update-Hinweis vom 28.02.: Informationen zu Java 16 und den Releasezyklen ergänzt.]
(sih)