https://jugf.github.io/posts/die-graalvm-ist-ein-polyglotter-native-speaker-30-06-2021/
Die GraalVM ist eine - gar nicht mal so neue - Java VM, die Schritt für Schritt immer mehr Produktionsreife und Popularität bei Entwicklern und Architekten gewinnt. Graal macht vor allem zwei Aspekte anders als die altbekannte HotspotVM:
Die Zukunft der JVM ist polyglott! Das wurde bereits mit Java 7 verkündet. Mit der GraalVM gewinnt viele Jahre später eine neue Java VM an Popularität, die sich ebenfalls das Thema polyglotte Programmierung auf die Fahne geschrieben hat.
Sprachen müssen für die GraalVM nicht mehr zwingend in Bytecode übersetzt werden, sondern können auch mittels des neuen Interpreter-Frameworks Truffle implementiert werden. Auch die Interaktion zwischen Sprachen findet nicht mehr nur auf Bytecode-Ebene statt, sondern auch über eine neue Polyglott-API.
Rüdiger zeigt anhand einiger Beispiele, wie sich polyglotte Programmierung auf der GraalVM anfühlt, unter anderem, wie man Python und NumPy in Java eingebettet ausführt.
Darüber hinaus verspricht Graal auch viel bessere Performance mit der Möglichkeit, Native Images zu erstellen: Schneller Startup, geringer Speicherverbrauch durch die Möglichkeit, Java-Code “ahead-of-time” nach Native-Code zu kompilieren.
Wir kompilieren also unseren Sourcecode nicht mehr in guten alten Bytecode, stattdessen in rasend schnellen Maschinencode?
Martin zeigt, ob und wie gut die GraalVM diese Versprechen wirklich einlösen kann. Und welche Fallen zur Build- und zur Runtime lauern, wenn ein solches Native Image erstellt bzw. ausgeführt wird.