CodeGym /Java-Blog /Germany /Project Loom, Container und Jakarta EE: Was sind die Java...
Lucy Oleschuk
Level 31

Project Loom, Container und Jakarta EE: Was sind die Java-Trends im Jahr 2023?

Veröffentlicht in der Gruppe Germany
Wir haben bereits darüber gesprochen, was mit Java im Jahr 2022 passiert ist und was wir im Jahr 2023 von ihm erwarten können. Aber in diesem Artikel werden wir etwas tiefer in die Materie eintauchen und über das Java-Ökosystem und die Prognosen für die nahe Zukunft sprechen. Verschiedene Zusatzwerkzeuge und Verbesserungen werden die Produktivität, Stabilität, Sicherheit und Leistung von Java erhöhen. Project Loom, Container und Jakarta EE: Was sind die Java-Trends im Jahr 2023? - 1

Project Loom and Virtuelle Threads

Wir möchten mit den lang erwarteten virtuellen Threads(JEP 425) beginnen, die in Project Loom entwickelt wurden und endlich 2022 in der Version Java 19 erschienen sind, um die Einschränkungen des traditionellen Nebenläufigkeitsmodells zu beseitigen. Derzeit sind sie nur als Vorschau verfügbar. Wir gehen aber davon aus, dass sich dies mit der nächsten Version im Jahr 2023 ändern wird. Was ist Project Loom? Dabei handelt es sich um ein neues Projekt von Oracle, dessen Hauptziel es ist, den Aufwand für das Schreiben, Warten und Beobachten von nebenläufigen Anwendungen mit hohem Durchsatz erheblich zu reduzieren. Mit anderen Worten: Project Loom zielt darauf ab, ein leichtgewichtiges, durchsatzstarkes Nebenläufigkeitsmodell in Java zu unterstützen und voranzutreiben, da traditionelle OS-Threads (der Kern des Nebenläufigkeitsmodells von Java) einige Nachteile haben und ziemlich teuer hinsichtlich der Berechnung sind. Bei virtuellen Threads handelt es sich um wesentlich schlankere Threads, die nicht mit den Threads des Betriebssystems verknüpft sind (sie werden von der JVM verwaltet). Das bedeutet, dass virtuelle Threads ideal für die „Thread-per-Request“-Programmierung sind und tonnenweise virtuelle Threads erzeugen können, ohne den Durchsatz zu beeinträchtigen. Wir sehen also, dass die in Java 19 eingeführten virtuellen Threads ziemlich einfach zu benutzen sind. Sie ermöglichen Entwicklern die schnelle Fehlerbehebung, das Debugging und die Erstellung von Profilen für nebenläufige Anwendungen unter Verwendung vorhandener JDK-Tools und -Techniken. Die Einführung von Project Loom und virtuellen Threads ist nach Meinung von Experten wahrscheinlich eines der wichtigsten Ereignisse in der Geschichte von Java. Derzeit wird viel Aufhebens darum gemacht. Viele Entwickler warten bereits darauf, dass die virtuellen Threads vom „Vorschaustatus“ zum „Teil von Java 21 LTS“ werden (die Veröffentlichung wird für September 2023 erwartet). Wir gehen davon aus, dass die Verbreitung von virtuellen Threads als Frameworks weiter zunehmen wird und es Java-Entwicklern schließlich leichter machen wird, skalierbare Software zu schreiben, die Millionen gleichzeitiger Verbindungen benötigt. Cool, oder?

Jakarta EE

Jakarta EE ist schlicht der neue Name für Java EE (Java Enterprise Edition), das ursprünglich als Plattform für die Entwicklung unternehmenskritischer Software gedacht war. Die Plattform wurde umbenannt, nachdem das Projekt unter die Kontrolle der Eclipse Foundation gestellt worden war. Dies änderte jedoch nichts am Wesen der Plattform. Jakarta EE kommt zum Einsatz, wenn eine große Unternehmensanwendung betrieben wird, die skalierbar und sicher sein und eine große Menge an Informationen verarbeiten muss. Jakarta EE besteht aus einer Reihe von Softwarekomponenten, den APIs, für die Erstellung von Java-Unternehmensanwendungen. Und diese Komponenten werden oft als „Jakarta EE-Spezifikationen“ bezeichnet, die die Java SE-Versionen (Standard-Editionen) erweitern. Diese Spezifikationen sind für die Entwickler sehr hilfreich, da sie sie von der Notwendigkeit der Eigenprogrammierung befreien. So können sich die Entwickler auf die Geschäftslogik der Anwendung konzentrieren und müssen sich nicht mit kleineren infrastrukturellen Aufgaben beschäftigen. Und dabei geht es nicht nur darum, Zeit und Arbeit zu sparen. Es geht auch darum, ein effizienteres System für die Nutzer zu schaffen. Was geschah mit Jakarta EE im Jahr 2022? Die neue Version, Jakarta EE 10, ist seit dem 22. September für die Java-Community verfügbar. Und diese Version kann sich rühmen, 24 Spezifikationen aktualisiert zu haben (12 Spezifikationen mit größeren Updates und 12 Spezifikationen mit kleineren Updates) und ein neues Core Profile. Das Core Profile 10 stellt zweifellos einen Wendepunkt dar, da es sich nun auf Microservice- und Cloud-Entwicklungsumgebungen konzentriert. Weitere Änderungen betrafen die EJB Entity Beans und den Embeddable EJB Container, die aus den TCK-Anforderungen entfernt wurden. Sie sind in TCK weiterhin verfügbar. Ihre Implementierung ist jedoch für die Plattformkonformität nicht mehr erforderlich. Was die Erwartungen an Jakarta EE im Jahr 2023 angeht, glauben wir, dass es ein Mainstream-Framework werden wird, mit dem du deine Geschäftsanwendungen mit Leichtigkeit verbessern kannst. Für Projekte mit Microservices oder monolithischer Entwicklung ist es eine ideale Lösung. Du solltest jedoch bedenken, dass du das bald erscheinende Vaadin 24 (geplant für März 2023) verwenden musst, um App-Frameworks wie Spring Boot 3 oder Jakarta-EE-10-kompatible Anwendungsserver zu nutzen. Project Loom, Container und Jakarta EE: Was sind die Java-Trends im Jahr 2023? - 2

Container

Wenn du eine Java-Anwendung containerisierst, solltest du in der Regel zuerst überlegen, wie viel CPU-Zeit dem Container zur Verfügung stehen wird. Dann überlegst du dir, wie viel Arbeitsspeicher zur Verfügung stehen wird (sowohl die Gesamtmenge des Speichers als auch die Größe der JVM, der Java Virtual Machine). In containerisierten Umgebungen können Anwendungen auf alle Prozessoren zugreifen und somit mehrere Threads gleichzeitig ausführen. Heutzutage ist die Containerisierung von Java-Anwendungen auf dem Vormarsch und es sieht nicht so aus, als würde sich diese Tendenz so bald ändern. Und da immer mehr Java-Workloads in Containern laufen, wird nicht mehr nur darüber gesprochen, „wie“ man eine Java-Anwendung containerisiert, sondern „wie man sie besser“ containerisiert. Außerdem gibt es weitere Informationen und Leitlinien zu Best Practices für den Betrieb einer Anwendung in einem Container. Du könntest zum Beispiel an einem neuen Artikel von Microsoft mit Empfehlungen zur Speicherzuweisung und Garbage Collection interessiert sein.

Project Leyden

Trotzdem wird die Verbreitung von Native Java weiter zunehmen, da Project Leyden im Mai 2022 endlich wiederbelebt wurde. Wenn du noch nicht von Project Leyden gehört hast, solltest du wissen, dass das Hauptziel dieses Projekts darin besteht, die seit langem bestehenden Schwächen von Java zu beheben – die langsame Startzeit, die lange Zeitspanne bis zur Spitzenleistung und der große Speicherbedarf von Java-Anwendungen. Wie ist das möglich? Durch die Integration von statischen Laufzeit-Images in die Java-Plattform und das JDK. Mit statischen Images meinen wir eigenständige Programme, die von Anwendungen und einem JDK abgeleitet sind, das diese Anwendung ausführt. Ein statisches Image ist tatsächlich eine „geschlossene Welt“, was die Klassen angeht, die es laden kann (es lädt weder Klassen von außerhalb des Images noch erstellt es Klassen dynamisch). Wir möchten jedoch darauf hinweisen, dass Project Leyden nicht darauf abzielt, die Gesamtleistung von Java-Anwendungen zu verbessern. Es optimiert nur die Startphase und stützt sich auf das andere Projekt – GraalVM, das ständig verbessert und immer beliebter wird. Außerdem werden jetzt mehr Anwendungsfälle wie Spring-Apps unterstützt.

Fazit

Die Kombination aus Einfachheit, Sicherheit und Robustheit ist einer der Hauptgründe, warum Java die Liste der Top-Technologien anführt. Es wird erwartet, dass 2023 die Einführung von virtuellen Threads (im JDK 20, das im März veröffentlicht wird) weiter vorangetrieben wird, um ein schlankes Nebenläufigkeitskonstrukt in Java zu fördern. Der Schwerpunkt von virtuellen Threads liegt auf der Verbesserung der Skalierbarkeit, der Unterstützung virtueller Threads durch die Thread-API und der Vereinfachung von Debugging, Fehlersuche und Profiling. Es ist außerdem geplant, Teile des Java-Codes der GraalVM Community-Edition auf OpenJDK umzustellen, um die Entwicklung von GraalVM und Java-Technologien zu verbinden. Und Oracle hat bereits angekündigt, dass die Community-Editionen der GraalVM JIT- und AOT-Compiler im Jahr 2023 zu OpenJDK wechseln werden. Wie du siehst, sind die Änderungen im Java-Ökosystem bedeutend und zeigen, wie sich die Branche weiterentwickelt. Und was denkst du über die Java-Trends? Was erwartet uns im Jahr 2023?
Kommentare (1)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Anonymous #11312477 Level 0, Turki
11 März 2023
hello