Learn · concepts

Cosa sono gli script JavaScript di GraalVM?

GraalVM JavaScript è un motore JS veloce che funziona sulla JVM. Permette alle app Java di incorporare JavaScript, consentendo agli utenti di scriptare funzionalità e ricaricarle istantaneamente.

TRtrolPublished 3 min read

Cos'è GraalVM JavaScript?

GraalVM JavaScript è un motore JavaScript veloce e conforme agli standard che funziona sulla JVM, parte del progetto GraalVM. Le applicazioni Java lo integrano per consentire agli utenti di scrivere JavaScript che richiama il programma host e si ricarica al volo. In un'applicazione Java, ciò significa aggiungere o modificare il comportamento in JavaScript senza ricompilare il codice Java.

Immaginatelo come una sandbox per aggiungere funzionalità. L'applicazione espone determinati oggetti e metodi a uno script, e lo script chiama tali metodi per svolgere il lavoro all'interno dell'app. Quando si modifica lo script e lo si salva, il motore lo ricarica immediatamente, senza riavvio richiesto

Perché le app integrano motori di scripting

Applicazioni come i client di Minecraft integrano motori JavaScript per diverse ragioni pratiche:

  • Hot reload: modifica uno script e osserva l'effetto senza riavviare o ricostruire.
  • Un ambiente sicuro: l'host decide esattamente quali oggetti e classi Java uno script può raggiungere.
  • Iterazione rapida: testa nuovi comportamenti in secondi invece che in minuti di tempo di compilazione.
  • Personalizzazione da parte dell'utente: consenti ai giocatori di scrivere le proprie funzionalità in un linguaggio familiare

Come si manifesta in un cliente

Un cliente che integra GraalVM JavaScript di solito fornisce agli script un punto di ingresso per la registrazione, quindi un piccolo set di oggetti proxy che fungono da ponte tra JavaScript e gli interni del programma. Gli utenti scrivono uno script, lo inseriscono in una cartella di script e il motore lo carica. In questo modo, un cliente può consentire agli utenti di aggiungere funzionalità in JavaScript invece di compilare una mod.

GraalVM JavaScript vs Node.js

AspettoGraalVM JavaScriptNode.js
RuntimeEsegue sulla JVMRuntime autonomo basato su V8
Caso d'usoIncorporato in applicazioni JavaJavaScript lato server o strumenti CLI
AvvioParte del processo hostProcesso separato
AccessoL'host espone oggetti specificiAccesso completo al sistema operativo
PerformanceCompilato JIT, molto veloceAnch'esso molto veloce, compromessi diversi

Entrambi sono eccellenti nell'esecuzione di JavaScript; sono semplicemente progettati per contesti diversi. GraalVM è la scelta giusta quando si desidera che un'applicazione Java consenta agli utenti di scrivere script in JavaScript.

FAQ