Learn · concepts

GraalVM JavaScript スクリプティングとは??

GraalVM JavaScript は、JVM 上で動作する高速な JS エンジンです。Java アプリケーションに JavaScript を埋め込むことができ、ユーザーは機能をスクリプト化し、即座にリロードできます.

TRtrolPublished 1 min read

GraalVM JavaScriptとは何ですか??

GraalVM JavaScriptは、JVM上で動作する、標準に準拠した高速なJavaScriptエンジンであり、GraalVMプロジェクトの一部です。Javaアプリケーションはこれに組み込まれ、ユーザーはJavaScriptでホストプログラムを呼び出し、その場でリロードすることができます。Javaアプリケーションにおいては、Javaコードを再コンパイルすることなく、JavaScriptで動作を追加したり変更したりすることを意味します。

機能を追加するためのサンドボックスと考えると良いでしょう。アプリケーションは、特定のオブジェクトとメソッドをスクリプトに公開し、スクリプトはそれらのメソッドを呼び出してアプリ内で作業を行います。スクリプトを変更して保存すると、エンジンはすぐにそれをリロードし、再起動は不要です

アプリがスクリプティングエンジンを組み込む理由

Minecraftのようなクライアントアプリケーションには、いくつかの実用的な理由からJavaScriptエンジンが組み込まれています。

  • ホットリロード: スクリプトを変更し、再起動や再ビルドなしにその効果を確認できます。
  • 安全な環境: ホスト側がスクリプトがアクセスできるオブジェクトやJavaクラスを正確に決定します。
  • 高速な反復: 変更した動作を、コンパイル時間数分ではなく、数秒でテストできます。
  • ユーザーによるカスタマイズ: プレイヤーが使い慣れた言語で独自の機能を作成できるようにします

クライアントにどのように現れるか

GraalVM JavaScript を埋め込むクライアントは、通常、スクリプトが自身を登録するためのエントリポイントと、JavaScript とプログラムの内部を接続する小さなプロキシオブジェクト群を提供します。ユーザーはスクリプトを作成し、スクリプトフォルダに配置するだけで、エンジンがそれをロードします。これにより、クライアントはユーザーがモッドをコンパイルする代わりに、JavaScript で機能を追加できるようにすることができます.

GraalVM JavaScript vs Node.js

側面GraalVM JavaScriptNode.js
実行環境JVM上で動作スタンドアロンのV8ベースの実行環境
ユースケースJavaアプリに組み込みサーバーサイドJavaScriptまたはCLIツール
起動ホストプロセスの部品として独立したプロセス
アクセスホストが特定のオブジェクトを公開フルOSアクセス
パフォーマンスJITコンパイル、非常に高速同様に非常に高速、異なるトレードオフ

どちらもJavaScriptを実行することに優れています。用途が異なるだけです。GraalVMは、JavaアプリでユーザーがJavaScriptでスクリプトを実行したい場合に適しています。

よくある質問