Programiranje

Oracle: Zdaj preklopite z mehanizma JavaScript Nashorn na GraalVM

Z načrti za opustitev motorja Nashorn JavaScript v prihajajočem Java Development Kit (JDK) 11 Oracle spodbuja razvijalce, naj raje pogledajo navidezni stroj GraalVM. Oracle pravi, da je sposobnejši od Nashorna in je določil migracijsko pot iz Nashorna v GraalVM. Oracle namerava Nashorna nekaj let podpirati, da bo zagotovil čas za selitev.

Tako kot Nashorn tudi GraalVM podpira JavaScript na JVM. Toda GraalVM je neodvisen od same Java.

Oracle je navedel številne prednosti, ki jih ima GraalVM pred Nashornom:

  • Popolnejša uporaba standardov JavaScript s podporo za izdaji ECMAScript 2016 in ECMAScript 2017 ter nekaj podpore za ECMAScript 2018.
  • Popolna podpora za platformo JavaScript na strani strežnika Node.js, ki je združljiva s skoraj vsemi moduli Node.js.
  • Sposobnost izvajanja dodatnih jezikov, vključno s Python, R in Ruby.
  • Boljša zmogljivost kot obstoječi motorji, ki temeljijo na JVM, in sposobnost uporabe naprednih optimizacij prevajalnika GraalVM.

Za pomoč razvijalcem pri selitvi z Nashorna na GraalVM je Oracle Labs dodal zastavo združljivosti (—Nashorn-compat), ki odpravlja potrebo po dolgočasnih prepisovanjih za premik aplikacije Nashorn v GraalVM.

Skupni poliglotni API v GraalVM zagotavlja interoperabilnost s podprtimi jeziki. Vrednosti se lahko prenašajo iz enega jezika v drugega. Kopiranje ali ranžiranje ni potrebno.

GraalVM lahko deluje v okviru namestitve GraalVM na osnovi JDK 8 ali standardne namestitve JDK, začenši z JDK 11, ki prispe septembra. Čeprav GraalVM ne bo vključen v JDK, lahko deluje na standardni namestitvi JDK 11, tako da ga doda na pot modula. GraalVM je mogoče vdelati tudi kot del platform, kot sta OpenJDK ali Node.js, pa tudi znotraj baze podatkov.

Kje prenesti GraalVM

GraalVM lahko prenesete s spletne strani GraalVM, ki povezuje GitHub za brezplačno različico Community Edition in Oracle Technology Network za plačljivo različico Enterprise Edition.

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