私は、多くのオブジェクトとデータを処理するプログラムに取り組んでいます。アプリケーションにある種の「API」を持たせることで、操作を注入できるようになります。アプリケーション自体がオブジェクトの管理などを行っているため、これをどのように実装できるのだろうか。たとえば、Unity3D および Panda3D エンジンでは、スクリプト用の ECMA や Python など、さまざまな言語を使用できます。私は「ゲーム用」のスクリプト言語を探しているわけではありませんが、さまざまなスクリプト言語をサポートする方法についての指針を探しています。
議論のために、私のプログラムにクラス Cube のオブジェクトがあるとしましょう。立方体には、回転、移動、変換などのクラス メソッドと、色、中心、サイズなどのプロパティがあります。ここで、ユーザーが JavaScript などを使用してオブジェクトを操作できるようにしたいと考えています。しかし、私の「コア」プログラムは Ruby で書かれています。
- ユーザー コードとその構文 (独自のバージョンの JavaScript を実装するため) を評価するパッケージ全体をゼロから作成する必要がありますか? または、既存のパッケージ、スケルトン、フレームワーク、gem などはありますか?
- 操作が許可されているクラス (たとえば、クラスを「操作可能」とマークする属性) にのみスクリプト言語を提供するセキュリティを実装するにはどうすればよいでしょうか。
エンタープライズ アプリケーションがどのようにこのトリックを行ったのか (そしてゲーム エンジンも...) 常に疑問に思っていたので、ヘルプとフィードバックに感謝します。