Learn · concepts
Qu'est-ce que le scripting JavaScript GraalVM ?
GraalVM JavaScript est un moteur JS rapide qui fonctionne sur la JVM. Il permet aux applications Java d'intégrer JavaScript afin que les utilisateurs puissent programmer des fonctionnalités et les recharger instantanément.
Qu'est-ce que GraalVM JavaScript ?
GraalVM JavaScript est un moteur JavaScript rapide et conforme aux normes qui s'exécute sur la JVM, faisant partie du projet GraalVM. Les applications Java l'intègrent afin de permettre aux utilisateurs d'écrire du JavaScript qui appelle le programme hôte et se recharge à la volée. Dans une application Java, cela signifie ajouter ou modifier le comportement en JavaScript sans avoir à recompiler le code Java.
Considérez-le comme un bac à sable pour ajouter des fonctionnalités. L'application expose certains objets et méthodes à un script, et le script appelle ces méthodes pour effectuer des tâches à l'intérieur de l'application. Lorsque vous modifiez le script et l'enregistrez, le moteur le recharge immédiatement, sans redémarrage requis
Pourquoi les applications intègrent-elles des moteurs de script
Des applications comme les clients Minecraft intègrent des moteurs JavaScript pour quelques raisons pratiques :
- Rechargement à chaud : modifiez un script et observez l'effet sans redémarrer ni reconstruire.
- Un environnement sécurisé : l'hôte décide précisément quels objets et classes Java un script peut manipuler.
- Itérations rapides : testez de nouveaux comportements en quelques secondes au lieu de minutes de temps de compilation.
- Personnalisation par l'utilisateur : permettez aux joueurs d'écrire leurs propres fonctionnalités dans un langage familier
Comment cela se manifeste chez un client
Un client intégrant GraalVM JavaScript fournit généralement aux scripts un point d'entrée pour s'enregistrer, puis un petit ensemble d'objets proxy qui permettent de relier JavaScript aux entrailles du programme. Les utilisateurs écrivent un script, le déposent dans un dossier de scripts, et le moteur le charge. C'est ainsi qu'un client peut permettre aux utilisateurs d'ajouter des fonctionnalités en JavaScript au lieu de compiler un mod.
GraalVM JavaScript vs Node.js
| Aspect | GraalVM JavaScript | Node.js |
|---|---|---|
| Runtime | S'exécute sur la JVM | Environnement d'exécution V8 autonome |
| Cas d'utilisation | Intégré aux applications Java | JavaScript côté serveur ou outils CLI |
| Démarrage | Partie du processus hôte | Processus distinct |
| Accès | L'hôte expose des objets spécifiques | Accès complet au système d'exploitation |
| Performance | Compilé JIT, très rapide | Également très rapide, compromis différents |
Les deux sont excellents pour exécuter JavaScript ; ils sont juste conçus pour des contextes différents. GraalVM est le choix idéal lorsque vous souhaitez qu'une application Java permette aux utilisateurs de programmer en JavaScript.
FAQ
Non. Les deux exécutent JavaScript, mais le moteur de GraalVM est conçu pour être intégré à une application JVM, tandis que Node.js est un environnement d'exécution autonome basé sur V8.
Pas habituellement. Vous écrivez du JavaScript en ciblant les objets que l'application hôte expose. Connaître la correspondance de ces objets est utile pour un usage avancé, mais les scripts basiques n'ont besoin que de JavaScript.
Rapidité d'itération. Un script se recharge instantanément, tandis qu'un mod compilé doit être reconstruit et relancé. Pour les tests de fonctionnalités rapides ou l'automatisation personnelle, le scripting est bien plus rapide.
Oui, l'application hôte décide précisément quels objets et classes un script peut manipuler. Un client peut exposer l'état du jeu, les données du joueur et d'autres éléments internes via ces objets proxy.