Programování

Oracle: Přepněte nyní z nashornského JavaScriptu na GraalVM

S plány na podporu podpory JavaScriptového motoru Nashorn v připravované sadě Java Development Kit (JDK) 11 podporuje společnost Oracle vývojáře, aby se místo toho podívali na virtuální stroj GraalVM. Oracle říká, že je schopnější než Nashorn, a stanovil cestu migrace z Nashornu do GraalVM. Společnost Oracle plánuje na několik let podporovat Nashorn, aby poskytla čas na migraci.

Stejně jako Nashorn, GraalVM podporuje JavaScript na JVM. GraalVM je ale nezávislý na samotné Javě.

Společnost Oracle uvedla několik výhod, které má GraalVM oproti Nashornu:

  • Kompletnější implementace standardů JavaScriptu s podporou edic ECMAScript 2016 a ECMAScript 2017 a s určitou podporou ECMAScript 2018.
  • Plná podpora pro platformu JavaScriptu na straně serveru Node.js, která je kompatibilní s téměř všemi moduly Node.js.
  • Schopnost spouštět další jazyky včetně Pythonu, R a Ruby.
  • Lepší výkon než stávající motory založené na JVM a schopnost používat pokročilé optimalizace kompilátoru GraalVM.

Aby vývojářům pomohla migrovat z Nashornu na GraalVM, přidala společnost Oracle Labs příznak kompatibility (—Nashorn-compat), která odstraňuje nutnost zdlouhavých přepisů pro přesun aplikace Nashorn na GraalVM.

Společné rozhraní polyglot API v GraalVM poskytuje interoperabilitu s podporovanými jazyky. Hodnoty lze předávat z jednoho jazyka do druhého. Není nutné žádné kopírování ani zařazování.

GraalVM lze spustit buď v kontextu instalace GraalVM založené na JDK 8, nebo standardní instalace JDK počínaje JDK 11, která dorazí v září. Ačkoli GraalVM nebude součástí JDK, může běžet na standardní instalaci JDK 11 přidáním do cesty modulu. GraalVM lze také vložit jako součást platforem, jako je OpenJDK nebo Node.js, a také do databáze.

Kde stáhnout GraalVM

GraalVM si můžete stáhnout z webové stránky GraalVM, která odkazuje na GitHub pro bezplatnou verzi Community Edition a na Oracle Technology Network pro placenou verzi Enterprise Edition.

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