Programmering

Oracle: Bytt nå fra Nashorn JavaScript-motor til GraalVM

Med planer om å avskaffe Nashorn JavaScript-motoren i det kommende Java Development Kit (JDK) 11, oppfordrer Oracle utviklere til å ta en titt på GraalVM virtuell maskin i stedet. Oracle sier at det er mer i stand enn Nashorn, og det har lagt ut en migrasjonssti fra Nashorn til GraalVM. Oracle planlegger å støtte Nashorn i noen år for å gi tid til å migrere.

I likhet med Nashorn støtter GraalVM JavaScript på JVM. Men GraalVM er uavhengig av Java selv.

Oracle siterte flere fordeler GraalVM har fremfor Nashorn:

  • En mer fullstendig implementering av JavaScript-standarder, med støtte for ECMAScript 2016 og ECMAScript 2017-utgavene og litt støtte for ECMAScript 2018.
  • Full støtte for Node.js-server-side JavaScript-plattformen, som er kompatibel med nesten alle Node.js-moduler.
  • Evnen til å utføre flere språk, inkludert Python, R og Ruby.
  • Bedre ytelse enn eksisterende JVM-baserte motorer og evne til å bruke GraalVM-kompilatorens avanserte optimaliseringer.

For å hjelpe utviklere med å migrere fra Nashorn til GraalVM, har Oracle Labs lagt til et kompatibilitetsflagg (—Nashorn-kompatibel) som fjerner behovet for kjedelige omskrivinger for å flytte en Nashorn-applikasjon til GraalVM.

En vanlig polyglot API i GraalVM gir interoperabilitet med støttede språk. Verdier kan overføres fra ett språk til et annet. Ingen kopiering eller samordning er nødvendig.

GraalVM kan kjøres enten i sammenheng med den JDK 8-baserte GraalVM-installasjonen eller standard JDK-installasjonen som starter med JDK 11, som ankommer i september. Selv om GraalVM ikke blir inkludert i JDK, kan den kjøre på en standard JDK 11-installasjon ved å legge den til modulbanen. GraalVM kan også være innebygd som en del av plattformer som OpenJDK eller Node.js, så vel som i en database.

Hvor laster du ned GraalVM

Du kan laste ned GraalVM fra GraalVM-websiden, som lenker til GitHub for den gratis Community Edition-versjonen og til Oracle Technology Network for den betalte Enterprise Edition-versjonen.

$config[zx-auto] not found$config[zx-overlay] not found