最初の公式アナウンスから3年、ついにIronRuby 1.0がリリースされた。
IronRuby 1.0はRuby 1.8.6と互換性がある。現在の計画によると、IronRuby 1.0が1.8.xをサポートする最後のバージョンとなり、1.1以降はRuby 1.9.xをターゲットにするようだ。
IronRuby 1.0とRubyにはどれほど互換性があるのだろうか? 最新のテスト実行結果がironruby.infoにある。この大きな疑問に対する回答は「イエス(互換性はある)」だ。例えば、IronRubyはversion 2.3.5までのRailsを動かせる。
今のところ、ひとつ問題なのは、1.8.6しかサポートしていないことだ。つまり、Rails 3は動かない。Rails 3はRuby 1.8.7かRuby 1.9を必要とするためだ。Rails 3の最終リリースまであと数か月はあるので、今すぐ大きな問題にはならないはずだ。それに、まもなくIronRuby 1.xストリームにRuby 1.9の機能が加わるだろう。
IronRubyを使う新しい方法として、今度のMicrosoft Windows Phone 7プラットフォームが加わった。このプラットフォームはSilverlightを使ってプログラムされている。Tomas Matousek氏は、Windows Phone 7におけるIronRubyの使い方を紹介するとともに、いくつかの制限についても説明している。ひとつ問題になるのは、Windows Phone 7版のSilverlightにはReflection.Emit
がないことだ。つまり、IronRubyはRubyコードにJITが使えない。IronRubyプログラムを実行する唯一の方法は、常にインタープリタ上で動かすことだ。そのため、最高のパフォーマンスは得られないだろう。この問題はAndroid上のJRubyでも同様で、Android上ではインタープリタのみのモードで実行する必要がある。
提案されているRuby Summer of CodeのIronRubyプロジェクトを見ると、IronRuby自体やそのライブラリ、ツールのサポートなど、改善を必要としている領域がわかる。
IronRubyの詳細について、まずはIronRubyチームメンバであるJimmy Schementi氏のブログとInfoQのIronRubyタグを見るとよいだろう。
InfoQ ホームページ ニュース IronRuby 1.0 リリース