Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

Frühlingsgefühle à la Java

Chedredakteur Michael Stal beleuchtet in seinem Editorial die stabile Lage der Java-Entwicklungslandschaft und hebt einige der wichtigsten Neuerungen des jüngst erschienenen JDK 22 hervor.

Author Image
Michael Stal

Chefredakteur von JavaSPEKTRUM


  • 22.03.2024
  • Lesezeit: 5 Minuten
  • 242 Views

Auch die Java-Entwickler bekommen im März Frühlingsgefühle. Nicht nur wegen – Sie wissen schon –, sondern auch angesichts der Version 22 des Java JDK. Denke ich an die Anfänge von Java vor gut 28 Jahren zurück, überkommt mich Wehmut, weil damals alles so einfach, übersichtlich und bescheiden begonnen hat. Allerdings galt dies in jener Zeit auch für die mit Java adressierten Anwendungsgebiete, also einfache Applikationen und Applets. (Anm. d. Red.: Für die nicht ganz so alten Jahrgänge: Letzteres hat nichts mit Apple zu tun, sondern mit den auf der Browser-JVM ablaufenden Minianwendungen).

Je mehr sich allerdings die Einsatzgebiete von Java änderten, desto mehr Renovierungsbedarf entstand. Und trotz der langen Evolution von Sprache und JDK wirkt das Java-Ökosystem immer noch frisch und lebendig, geradezu jugendlich. Natürlich gab und gibt es auch diverse Herausforderungen zu meistern, etwa die Suche nach den diversen Heiligen Grals, die sich im Laufe der Zeit herauskristallisierten: Was ist das beste UI-Framework? Welche Technologien eignen sich für Geschäftsanwendungen? Wie lassen sich idealerweise polyglotte Anwendungen erstellen? Diese Probleme hatte allerdings auch das mit dem Java-Ökosystem konkurrierende .NET, wahrscheinlich sogar in noch intensiverer Weise.

Der Prozess für Java-Erweiterungen scheint heute gut eingeschwungen und ermöglicht eine schrittweise Erweiterung des gesamten Ökosystems. In jeder neuen Version winken pragmatische Ergänzungen, die das Leben der Entwickler leichter machen. Und daher überwiegt auch bei der jüngsten Version die Freude gegenüber der Gewissheit, Neues hinzulernen zu müssen.

››Damals hat Java so einfach, übersichtlich und bescheiden begonnen‹‹

Die generelle Verfügbarkeit von Java JDK 22 ist für den 19. März anberaumt, nachdem das Entwicklungsteam die festehenden Features bereits am 7. Dezember 2023 eingefroren hatte. Wie üblich unterstützt Oracle diese Version für sechs Monate, im September 2023 folgt dann die nächste LTS-Version (Long Time Support).

Wer das frische JDK-22-Geschenkpaket öffnet, findet dort einige Neuerungen vor. Hier ein Ausschnitt:

Die Foreign Function & Memory API versucht das leidige Problem bei der Einbindung von Nicht-JVM-Programmcode zu lösen. Bislang waren Entwickler dafür auf JNI angewiesen, was sich als ziemlich aufwendig, fehlerträchtig und umständlich erwiesen hat. Der neue Ansatz erlaubt eine wesentlich einfachere Integration nativer Funktionen (foreign functions) inklusive Zugriff auf Speicherinhalte (foreign memory).

Mit String Templates erfolgt eine Erweiterung von Java. Statt einfacher Zeichenfolgen und Textblöcke lassen sich mithilfe der API nun auch Texte mit eingebetteten Anweisungen definieren, deren Umsetzung sogenannte Template-Prozessoren verantworten. Die Sprachänderungen plus API liegen als Preview-Version vor.

Anweisungen vor super() als Sprach-Preview dürfen die zu kreierende Instanz nicht referenzieren. Ihre Abarbeitung geschieht vor einem expliziten Konstruktoraufruf, was Entwicklern mehr Kontrolle gibt.

Unnamed Variables & Patterns bezieht sich auf Variablendeklarationen und verschachtelte Patterns, die zwar notwendig, aber anschließend nicht mehr im Einsatz sind. Beispielsweise kann die Entwicklerin als gewünschte Eigenschaft angeben, dass ein Bindungs- oder Lambda-Parameter keine Verwendung findet. Oder sie möchte innerhalb einer Select-Anweisung für einen bestimmten Fall mehrere Patterns verwenden.

Hinter dem siebten Inkubator, der Vector API, versteckt sich eine Programmierschnittstelle, um Vektorberechnungen zu spezifizieren. Deren Kompilierung in optimale Vektorinstruktionen erfolgt zur Laufzeit. Die API unterstützt ausgewählte Prozessoren und verspricht eine wesentlich bessere Laufzeit als beim Verwenden skalarer Operationen.

››Am 19. März erscheint das frische JDK-22-Geschenkpaket‹‹

Structured Concurrency umfasst strukturierte Nebenläufigkeit für Gruppen von miteinander in Beziehung stehenden Tasks. Sie laufen in diversen Threads, wirken aber wie eine singuläre Arbeitseinheit. Dabei verbessert das Konzept Fehlerbehandlung, Abbrüche, Zuverlässigkeit und Beobachtbarkeit. Diese API erscheint als Preview-Version.

Scoped Values erlauben das sichere und effiziente Teilen unveränderbarer Daten innerhalb und zwischen Threads. Sie haben Präferenz vor Thread-lokalen Daten.

Als Vorabversion fungieren auch Stream Gatherers, die selbstdefinierte Zwischenoperationen beim Streaming unterstützen. Dadurch sind Streaming-Kanäle in der Lage, Datentransformationen auszuführen, die mit den fest eingebauten Zwischenoperationen nicht möglich sind.

Dazu kommen noch Class File API, Launch Multi-File Source Code Programs, Region Pinning for G1, Implicitly Declared Classes und Main Functions.

Die Evolution von Java bleibt also weiterhin spannend. Sie orientiert sich dabei an den tatsächlichen praxisnahen Anforderungen von Entwicklern. Dank Feedback der Entwickler bei Preview-Versionen und Inkubatoren kann Oracle Spracherweiterungen vorsichtig einführen und sie schrittweise anpassen. Java ist also wie Wein, der mit der Zeit reift.

In diesem Sinne wünsche ich Ihnen viel Spaß beim Lesen der Artikel dieser Ausgabe

Artikel der JavaSPEKTRUM 2/2024

Ihr Prof. Dr. Michael Stal

. . .

Author Image

Michael Stal

Chefredakteur von JavaSPEKTRUM
Zu Inhalten

Prof. Dr. Michael Stal beschäftigt sich bei der Corporate Technology der Siemens AG mit Software- und Systemarchitekturen, Digitalisierung und KI. An der University of Groningen hält er Vorlesungen und betreut Doktoranden. Außerdem ist er Chefredakteur von JavaSPEKTRUM.


Artikel teilen