Ruby プログラムを .NET Framework 2.0 上で動作する DLL/EXE に変換する
Ruby.NET Compiler ソフトウェアがあります。気になったのでちょっと調べてみました。
本記事は、Gardens Point Ruby.NET Compiler Beta Release(February 2007)に対応しています。
■ 知りたいこと
・ 既存の Ruby ライブラリが使えるか
・ 既存の .NET ライブラリが使えるか
・ 既存のアプリケーションに組み込めるか
・ ライセンスは使いやすいか
・ 安定度はどれくらいか
・ 開発は活発か
■ 調査結果
・ 既存の Ruby ライブラリが使えるか
実装していないようです。実装予定があるかどうかも不明です。
・ 既存の .NET ライブラリが使えるか
次のリリースで対応する(したい)ようです。
・ 既存のアプリに組み込めるか
ちゃんとコードは追っていませんが、高い頻度で動的に書き換えるのはパフォーマンス的にネックになりそう(※)ですが、それほどでなければ大丈夫そうです。
※ コンパイラであるためです。ただ、IronPython もコンパイル可能でわりと動的に書き換えてもそれほどパフォーマンスでネックにはならないので、このツールもこなれてくれば大丈夫ではないかなと楽観しています。IronPython を組み込む際は、ランタイムのロード時間のほうが問題になりました(IronPython というよりは .NET 系全般の問題)。ゲームとかリアルタイム性が必要なアプリの場合は、ランタイムを呼び出すタイミングをコントロールする必要があります。
(IronPython では、WinXP/P4 2.8GHz/1GB の PC で秒間 50 フレームで HelloWorld をパースさせたら CPU 使用率が 100% になった <- あたりまえ^^;)
コンパイラなので、既存のアプリに組み込むことは想定に入っていないのか、プログラミングインタフェースは、まだ整理されていないように見えました。IronPython のように 1 行で組み込むというわけにはいかないという印象を受けました。
・ ライセンスは使いやすいか
BSD ライセンスに近い印象を受けました。
このページの Licensing という箇所を参照してください。以下の内容が書かれています。というわけで結構使いやすいのではないかと思っています。
Copyright 2007 Queensland University of Technology (QUT). All rights reserved.
以下の条件の下で、修正の有無にかかわらずソースコードおよびバイナリの再配布および使用が許可されます。
1. ソースコード形式を再配布する場合は、上記の著作権情報と下記の免責事項を維持しなくてはならない
2. バイナリ形式で再配布する場合は、ドキュメントもしくはそのほかのマテリアルに著作権情報を記述しなくてはならない
(以下、お定まりの免責事項)
・ 安定度はどれくらいか
一度ハンドルされていない例外で落ちました。ただ、Ruby 1.8.2 のテストはそこそこ通しているようです。これからに期待ですかね。
・ 開発は活発か
文面からは活発にリリースしたい雰囲気を感じます。ただ、大きなリリースは半年に一度くらいのようですが・・・。
■ まとめ
今はまだ使うのは難しそうですが、次のリリース、もしくはその次位には期待できそうです。後は開発がとまらないことを祈るばかりです。