- GraalVM JavaScript — это быстрый JS-движок, соответствующий стандартам, который работает на JVM.
- Java-приложения включают его, чтобы пользователи могли писать JavaScript, который вызывает хост-программу.
- Скрипты горячей перезагрузки, поэтому вы можете изменять поведение без перекомпиляции Java-кода.
- Хост решает, какие объекты и классы скрипт может затрагивать.
GraalVM JavaScript — это быстрый, соответствующий стандартам движок JavaScript, работающий на JVM, являющийся частью проекта GraalVM. Приложения Java используют его, чтобы пользователи могли писать JavaScript, который вызывает функции хост-программы и перезагружается на лету. В Java-приложении это означает добавление или изменение поведения в JavaScript без перекомпиляции Java-кода.
Где используется Opal
Скриптовый движок Opal работает на GraalVM JavaScript. Чтобы начать писать скрипты, обратитесь к руководству по скриптам.
GraalVM и GraalVM JavaScript
GraalVM — это высокопроизводительное окружение выполнения, которое может запускать несколько языков на JVM. Его JavaScript-движок достаточно современен, чтобы поддерживать последние возможности ECMAScript. Приложение поставляется с этим движком, передает скриптам набор объектов для работы и запускает их.
Почему приложения используют его
- Горячая перезагрузка: измените скрипт и увидите результат без перезапуска или пересборки.
- Безопасная среда: хост решает, какие именно объекты и классы Java скрипт может затрагивать.
- Взаимодействие с Java: скрипты могут вызывать код самого приложения через объекты, которые оно предоставляет.
Как это проявляется на стороне клиента
Программа, встраивающая движок, обычно предоставляет скриптам точку входа для регистрации, а затем небольшой набор "прокси"-объектов, которые связывают JavaScript с внутренними компонентами программы. Пользователи пишут скрипт, помещают его в папку со скриптами, и движок загружает его. Таким образом, клиент может позволить пользователям добавлять функции на JavaScript вместо компиляции мода.
Часто задаваемые вопросы
Нет. Оба выполняют JavaScript, но движок GraalVM предназначен для встраивания во внутреннее приложение JVM, в то время как Node.js — это автономная среда выполнения, построенная на базе V8.
Обычно нет. Вы пишете JavaScript, взаимодействуя с объектами, которые предоставляет основное приложение. Знание того, что эти объекты представляют, помогает при более продвинутом использовании.
Скорость итераций. Скрипт перезагружается мгновенно, а скомпилированный мод нужно пересобрать и перезапустить.