Ready for Take-off

GraalVM 19: Oracles neue virtuelle Maschine ist bereit für den Einsatz in der Produktion

Dominik Mohilo

© Shutterstock / Esteban De Armas

GraalVM ist Oracles Antwort auf die sich ständig verändernde Landschaft der Software-Entwicklung. Mit Version 19 der virtuellen Maschine für polyglotte Anwendungen ist nach vielen Release-Candidate-Iterationen nun erstmals ein produktionsreifer Build erschienen. GraalVM 19 bringt zudem ein neues Versionierungsschema und ist in zwei unterschiedlichen Editionen verfügbar.

Auch wenn die grundlegenden Technologien von Oracles neuer Virtual Machine GraalVM bereits vor Jahren entwickelt wurden, ist das erste „greifbare“ Release der virtuellen Maschine erst ziemlich genau ein Jahr her. Projektleiter Thomas Wuerthinger kündigte GraalVM damals als eine universelle virtuelle Maschine an, die für eine polyglotte Welt erschaffen wurde.

Die Vorsicht beim Einsatz in der Produktion kann nun (hoffentlich) ad acta gelegt werden – das aktuelle Release (GraalVM 19) verspricht, produktionsreif zu sein. Dank der Hilfe vieler Partner, unter anderem von Red Hat, Alibaba oder Pivotal, konnte die erste „fertige“ Version der neuen Virtual Machine realisiert werden.

GraalVM 19: Das ist drin

Natürlich ist das Herzstück eine virtuelle Maschine für Java, die mit Java 8 SE kompatibel ist. Hinzu kommt natives Node.js (basierend auf Node.js v10.15.2), wodurch man Java- oder Scala-Bibliotheken auf Node.js nutzen kann – allerdings kann man auch Node.js-Module in Java-Anwendungen nutzen. Die native JavaScript Engine macht Nashorn oder Rhino (beides Auslaufmodelle) überflüssig. Zu guter Letzt ist noch eine Runtime für das Ausführen von LLVM 6.0.0 Bitcode an Bord: Damit lassen sich auch Sprachen wie C, C++, Ruby, R oder Python nutzen.

Die Erweiterbarkeit der GraalVM wurde ebenfalls großgeschrieben. Daher gibt es die Funktion gu, mit der man den GraalVM Updater auf den Plan ruft. So lassen sich neue Komponenten für die virtuelle Maschine hinzufügen, etwa die Sprachkomponenten für Python, Ruby oder R – so wird der polyglotte Traum eines jeden Entwicklers Realität.

Man sollte allerdings beachten, dass die Sprachkomponenten sich noch immer im experimentellen Status befinden, genau wie ein weiteres Feature, nämlich die GraalVM Native Images. Durch die sehr flotte Startgeschwindigkeit eignen sich die Images besonders zum Einsatz in Cloud-nativen Szenarien, Projekte wie Quarkus, Micronaut und Helidon setzen auf sie bereits als Plattform für Artefakte und Workloads.

API Summit 2019
Thilo Frotscher

API-Design – Tipps und Tricks aus der Praxis

mit Thilo Frotscher (Freiberufler)

Golo Roden

Skalierbare Web-APIs mit Node.js entwickeln

mit Golo Roden (the native web)

Zwei Editionen, ein Versionierungsschema

Versionierug / Veröffentlichung

Nein, Oracle hat nicht 18 Versionen zwischen GraalVM 1 und GraalVM 19 ausgelassen oder übersprungen. Die 19 steht – wenig überraschend – für das Jahr der Veröffentlichung. Das neue Veröffentlichungs- und Versionierungsschema sieht vor, einmal im Jahr ein Major Release (also GraalVM 20 im nächsten Jahr) herauszubringen, in dem neue Features hinzugefügt werden.

Für dieses Major Release (aktuell eben GraalVM 19) gibt es kontinuierlich Updates, in denen es um das Fixen von Bugs, das Sicherstellen der Stabilität und die Verbesserung der Performance gehen wird. Diese Updates sollen mindestens einmal pro Quartal als GraalVM 19.x veröffentlicht werden. Gleichzeitig wird es monatliche Beta-Releases unter dem Namen GraalVM 20.0-betaN geben, in denen neue Features etc. bereits getestet werden können und die dann im nächsten Major Release enthalten sein werden.

Community Edition vs. Enterprise Edition

Die GraalVM kommt in zwei unterschiedlichen Versionen: GraalVM 19.0 Community Edition und GraalVM 19.0 Enterprise Edition. Während die Community Edition und die Enterprise Edition sich in Sachen Funktionalität nicht unterscheiden, bekommt die GraalVM EE (kein offizielles Kürzel) kommerziellen Support.

Außerdem soll die Bezahlversion in Sachen Performance noch einmal eine Schippe drauflegen und entsprechend schneller arbeiten. Die Renaissance Suite, eine Benchmark Suite für den Vergleich der Geschwindigkeit moderner Workloads auf der JVM, GraalVM CE und GraalVM EE, zeigt entsprechende Ergebnisse.

GraalVM Benchmarks

Benchmarks der der JVM im Vgl. zu den GraalVM-Versionen / Quelle: Renaissance Suite

Ausblick

Mit der GraalVM hat sich Oracle zur Aufgabe gemacht, die führende virtuelle Maschine und Laufzeit für polyglotte Anwendungsentwicklung bereitzustellen. Da Aktualität hierfür eine zentrale Rolle spielt, wird zum Beispiel bereits jetzt an neuen Versionen gearbeitet, die Node.js 12 und das JDK 11 unterstützen.

Weitere Informationen zu GraalVM 19 gibt es im Blog-Beitrag von Oleg Šelajev auf Medium, herunterladen kann man sich die beiden GraalVM-Versionen auf der offiziellen Homepage. Wer sich gerne an der Entwicklung der virtuellen Maschine beteiligen möchte, sollte auf der Mailing-Liste des Projekts vorbeischauen.

Mehr zum Thema

GraalVM 1.0: Die virtuelle Maschine der polyglotten Zukunft

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: