Oliver B. Fischer E-Post Development GmbH

„Zusammen mit der Möglichkeit, sie auf Grundlage des Truffle Frameworks als Plattform für Projekte mit den bereits mehrfach genannten Sprachen zu nutzen, selbst domainspezifische Sprachen mit vergleichsweise geringem Aufwand implementieren und polyglotte Anwendungen entwickeln zu können, stellt die GraalVM einen Durchbruch dar, dessen Auswirkung auf die Softwareentwicklung im Moment noch nicht abschätzbar ist.“

Die HotSpot Java VM ist nun gut zwei Jahrzehnte alt. Seitdem hat sich die Welt der Softwareentwicklung stark verändert. Zeit also, HotSpot in Rente zu schicken? Seit Längerem arbeiten die Oracle Labs an einem neuen Compiler für die JVM, der polyglott und hochperformant sein soll.

Seit einigen Monaten stellt Oracle der Allgemeinheit die ersten Release Candidates der GraalVM, einer neuen virtuellen Maschine, zur Verfügung (zum Zeitpunkt der Niederschrift des Artikels ist RC10 aktuell). Wenn eine Software mit ihrem Namen Bezug auf den heiligen Gral nimmt, legt das die Messlatte gleich um einige Zentimeter höher. Erinnern wir uns: Der heilige Gral verspricht seinem Besitzer nicht weniger als Lebenskraft, Jugend, Nahrung in Hülle und Fülle sowie Glückseligkeit und damit alles in allem quasi die Unsterblichkeit. Entsprechend lang ist auch die Featureliste der GraalVM, die aus einer Reihe von Forschungsprojekten am Institut für Softwaresysteme der Linzer Johannes-Kepler-Universität in enger Zusammenarbeit mit den Oracle Labs hervorgegangen ist.

Nicht ohne Grund ist im Namen nur die Abkürzung VM enthalten und nicht JVM, denn auf einer anderen Architektur kann sie nicht nur Java-Bytecode ausführen, sondern ist eine echte polyglotte virtuelle Maschine, auf der prinzipiell jede Programmiersprache ausgeführt werden kann. Damit stellt die GraalVM etwas Neues dar. Denn auch wenn schon seit Langem der Begriff polyglott für die JVM in Bezug auf Sprachen wie Groovy, Kotlin oder auch JRuby verwendet wird, ist die JVM selbst nicht polyglott: Sie selbst kann nur Bytecode ausführen. Dass es Compiler gibt, die für eine bestimmte Sprache Bytecode für die JVM erzeugen können, hat nichts mit der JVM zu tun, sondern erlaubt es uns Entwicklern nur, mit anderen Sprachen für die JVM entwickeln zu können. Die GraalVM hingegen lässt solche Grenzen hinter sich und ist als universelle Virtual Machine ausgelegt. So unterstützt sie alle Sprachen, für die es einen Bytecode-erzeugenden Compiler gibt, sprich, wer mit Java, Scala, Clojure und Co. arbeitet, kann jetzt schon die GraalVM nutzen. Derzeit unterstützt die sie Java bis Version 8; Java 11 und höher sollen später folgen. Neben diesen Sprachen für die JVM können auch Programme in der Statistiksprache R, Python, Ruby, JavaScript sowie LLVM-Bitcode durch die GraalVM ausgeführt werden.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Java Magazin 5.19 - "Java 12"

Alle Infos zum Heft
579886728Einführung in GraalVM: Oracles neue Virtual Machine
X
- Gib Deinen Standort ein -
- or -