Waidmannsheil

JEP 372: Entfernen der JavaScript-Engine Nashorn
Keine Kommentare

Mit JEP 355 wurde die JavaScript-Engine Nashorn zum Abschuss freigegeben, nun soll sie endgültig in die ewigen Jagdgründe eingehen. JEP 372 könnte bereits an Bord von Java 15 sein und den Siegeszug der GraalVM endgültig besiegeln. Wie ist der Status Quo von JavaScript im JDK? Wir haben es uns angesehen…

Auf der Jagd nach dem heiligen Gra(a)l gab es so manchen Schwund. Ein solcher könnte die JavaScript-Engine Nashorn nun sein, wie JEP 372 – Remove the Nashorn JavaScript Engine von Jim Laskey nun vorschlägt. Bereits 2018 wurde der Grundstein für den Ausbau der Nashorn-Engine, der entsprechenden APIs und der JJS Tools gelegt, in Java 11 wurden sie als deprecated markiert. Damit hatte die ursprünglich in JDK 8 via JEP 174 eingeführte Script-Engine keine besonders lange Halbwertszeit, auch wenn sie damals die eher antiquierte Rhino-Engine ersetzte.

Der Teufel liegt bei der Intention, das Nashorn loszuwerden, natürlich in der Zeit: JavaScript und der ECMA-Standard entwickeln sich rapide weiter und die Engine im JDK auf Stand zu halten ist gelinde gesagt herausfordernd, wie das Nashorn-Team im JEP schreibt. Da sich wohl auch die breitere Community nicht wirklich bewegt hat, um das Nashorn zu pflegen, bleibt nun nur der Schritt nach vorne, also die JavaScript-Engine in den verdienten Ruhestand zu schicken. Keinen Einfluss hat dieses JEP übrigens auf das API javax.script, dieses soll unverändert bleiben.

Entfernt werden allerdings die Module jdk.scripting.nashorn und jdk.scripting.nashorn.shell, wie Jim Laskey schreibt. Ersteres enthält die Packages jdk.nashorn.api.scripting und jdk.nashorn.api.tree, Letzteres die JJS Tools.

GraalVM to the rescue

Überraschend kommt dieser Schritt, wie man sieht, nicht. Seit JDK 11 wurden die Nutzer von Nashorn immer wieder darauf aufmerksam gemacht, dass das Projekt bald aufgegeben werden würde. Stattdessen wurden die User angehalten, sich nach Alternativen umzuschauen, wobei sie dafür nicht lange suchen mussten: Immerhin stellt die GraalVM eine entsprechende Funktionalität in modernem Umfang zur Verfügung. Es wurden sogar bereits Stimmen laut, die vorschlagen, GraalJS als Engine in OpenJDK zu implementieren, etwa von Vincent Privat auf Twitter:

Weitere Informationen zum JEP gibt es auf der Homepage des OpenJDK und natürlich kann auf der Mailing-Liste darüber diskutiert werden. Stand jetzt heißt es in Java 15 wohl „Bye bye, Nashorn“.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -