Java: Oracle bietet Migrationspfad zur GraalVM

Nashorn, die JavaScript-Engine des JDK, hat keine Zukunft mehr. Entwickler sollten sich deshalb mit der GraalVM auseinandersetzen.

In Pocket speichern vorlesen Druckansicht 32 Kommentare lesen
Java: Oracle bietet Migrationspfad zur GraalVM
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Allem Anschein nach wird die JavaScript-Engine Nashorn im für September 2018 angekündigten JDK 11 (Java Development Kit) als "deprecated" (veraltet) markiert sein. Über kurz oder lang soll sie demnach aus dem JDK entfernt werden. Deswegen empfiehlt Oracle Entwicklern, sich mit der neuen GraalVM (Virtual Machine) vertraut zu machen, die im April dieses Jahres Version 1.0 erreicht hatte. Diese sei leistungsfähiger als die bisherige JavaScript-Engine und besser im Umgang mit den jüngsten Änderungen des ECMAScript-Standards.

Um Entwicklern den Einstieg mit GraalVM zu vereinfachen, hat Oracle nun einen Migrationspfad erstellt. Hier dient ein Kompatibilitäts-Flag (--nashorn-compat oder -Dpolyglot.js.nashorn-compat=true MyApplication), das Umschreibbefehle zum Verschieben einer Nashorn-Anwendung auf GraalVM überflüssig machen soll. Außerdem will man Nashorn für einige Zeit weiter unterstützen, damit Nutzer der Engine genügend Spielraum für die Migration bekommen. Obwohl GraalVM nicht im JDK 11 enthalten sein wird, lässt sie sich auf einer Standard-JDK-Installation ausführen, indem Entwickler die virtuelle Maschine dem Modulpfad hinzufügen.

Als Grund für das Entfernen von Nashorn aus dem JDK hatte das Entwickler-Team die rasante Entwicklung von ECMAScript angegeben. Dadurch sei die JavaScript-Engine schwierig auf dem aktuellen Stand zu halten. Sie war als Ersatz für den immer noch unterstützten Vorläufer Rhino als Teil des 2014 erschienenen JDK 8 integriert worden. Mit Nashorn können Entwickler Java-Code von JavaScript aus aufrufen, aber auch JavaScript-Funktionen aus Java-Code.

Für die GraalVM spricht außerdem, dass Entwickler neben Programmen in JVM-Sprachen wie Java, Scala, Kotlin oder Groovy und eben JavaScript (einschließlich Node.js) auch LLVM-Bitcode, der beispielsweise von in C, C++ oder Rust geschriebenen Programmen stammt, in der virtuellen Maschinen laufen lassen können. Die Einbindung anderer Sprachen wie Ruby, R und Python war zumindest bei Erscheinen der Version 1.0 als experimentell zu bewerten. GraalVM lässt sich sowohl "standalone" als auch eingebettet als Teil von Plattformen wie OpenJDK oder Node.js einsetzen. Auch in Datenbanken wie MySQL oder Oracles RDBMS kann die virtuelle Maschine eingebettet laufen.

Mehr Informationen zur GraalVM gibt es auf der Projekt-Website. Hier findet man auch Verlinkungen zur kostenlosen Community Edition auf GitHub und die kostenpflichtige Enterprise Edition im Oracle Technology Network. (ane)