Learn · concepts

Czym jest skryptowanie JavaScript w GraalVM?

GraalVM JavaScript to szybki silnik JS, który działa na JVM. Umożliwia aplikacjom Java osadzanie JavaScripta, dzięki czemu użytkownicy mogą skryptywać funkcje i natychmiast je przeładowywać.

TRtrolPublished 3 min read

Czym jest GraalVM JavaScript?

GraalVM JavaScript to szybki, zgodny ze standardami silnik JavaScript, który działa na JVM, będący częścią projektu GraalVM. Aplikacje Java go osadzają, aby użytkownicy mogli pisać skrypty JavaScript, które wywołują funkcje w programie hosta i przeładowują się na bieżąco. W aplikacji Java oznacza to dodawanie lub zmienianie zachowania w JavaScript bez rekompilacji kodu Java.

Wyobraź sobie to jako piaskownicę do dodawania funkcji. Aplikacja udostępnia pewne obiekty i metody skryptowi, a skrypt wywołuje te metody, aby wykonywać pracę wewnątrz aplikacji. Gdy zmienisz skrypt i zapiszesz go, silnik natychmiast go przeładuje, bez konieczności ponownego uruchamiania

Dlaczego aplikacje osadzają silniki skryptowe

Aplikacje takie jak klienty Minecrafta osadzają silniki JavaScript z kilku praktycznych powodów:

  • Szybkie przeładowywanie: zmień skrypt i zobacz efekt bez konieczności ponownego uruchamiania lub przebudowy.
  • Bezpieczna przestrzeń: host decyduje dokładnie, które obiekty i klasy Java skrypt może dotykać.
  • Szybka iteracja: testuj nowe zachowania w kilka sekund zamiast minut czasu kompilacji.
  • Personalizacja przez użytkownika: pozwól graczom pisać własne funkcje w znanym języku

Jak to się objawia u klienta

Klient integrujący GraalVM JavaScript zazwyczaj udostępnia skryptom punkt wejścia do rejestracji, a następnie niewielki zestaw obiektów proxy, które łączą JavaScript z wewnętrznymi mechanizmami programu. Użytkownicy piszą skrypt, umieszczają go w folderze skryptów, a silnik go ładuje. W ten sposób klient może pozwolić użytkownikom na dodawanie funkcji w JavaScript zamiast kompilowania moda.

GraalVM JavaScript vs Node.js

AspektGraalVM JavaScriptNode.js
Środowisko uruchomienioweDziała na JVMSamodzielne środowisko oparte na V8
ZastosowanieOsadzone w aplikacjach JavaJavaScript po stronie serwera lub narzędzia CLI
UruchomienieCzęść procesu hostaOddzielny proces
DostępHost udostępnia określone obiektyPełny dostęp do systemu operacyjnego
WydajnośćKompilowane JIT, bardzo szybkieRównież bardzo szybkie, inne kompromisy

Oba doskonale nadają się do uruchamiania JavaScriptu; po prostu zostały zaprojektowane do różnych zastosowań. GraalVM jest odpowiedni, gdy chcesz, aby aplikacja Java umożliwiała użytkownikom skryptowanie w JavaScript.

FAQ