昨年4月、Scott GuthrieがMIX07でIronRubyを発表した。以来、絶え間なく開発が続いており、今年の後半には最初のリリースが予定されている。
IronRubyは、.NET Framework上で動作するRuby 1.8.xの完全実装版であり、Rubyアプリケーションを.NETライブラリと.NETインフラにシームレスに統合させる。IronRubyはマイクロソフトのDLR(Dynamic Language Runtime)(source)を活用するもので、両方ともMicrosoft Permissive License(source)の条件の下、フルソースコードでリリースされる。このレベルの統合が実現すれば、Silverlightと.NETフレームワークの全能力を活用する強力なアプリケーションが作成できる。
InfoQは、John Lam氏と話す機会を得た。氏は独創的なRubyCLRの開発者であり、IronRubyを世に出すためにマイクロソフトが雇い入れた。Johnの正式な肩書きはDynamic Language Runtimeチームのプログラムマネジャーである。
Rob Bazinet (RB): 「本番環境向け準備が整った[GLOVA1]」最初のリリースが出るまでを考えると、開発チームは現在どの辺りまできているのでしょうか。
John Lam (JL): 今年の後半に狙いを定めています。まだやるべきことがたくさん残っており、コミュニティがどれほど手助けしてくれるか、今の早い段階で判断するのは難しいのです(これまではとても助けてもらっています)。ですから、コミュニティから得られる協力度合いによって、スケジュールに多少の変更が生じるでしょう。
RB: Silverlight 2.0のScott Guthrieが最近語った最新情報によると、来たるべき2008年第1四半期のベータ版でIronRubyがサポートされるということですが、そのSilverlightリリースでは、IronRubyインプリメンテーションをどの程度サポートする計画なのでしょうか?
JL: Silverlightのそのリリースと一緒に世に出すつもりです。そうは言っても、Silverlightは動く標的です。 私たちのチームの開発者の一人(John Messerly)が、Silverlightの木とIronRubyの木が同調性を失わないように、多くの時間を費やしています。DLRホスティング・インタフェースにも現在大規模な変更を加えているところで、Silverlightリリース時にはこの変更を完了しているはずです。
RB: IronRubyの開発者リストに注目しているのですが、リストに入っているメンバーは実際どの程度IronRubyの開発に携わっているのでしょうか?
JL: ライブラリへの協力を積極的に求めており、Curt HagenlocherとPeter Bacon Darwin、Terence Lewis、Seo Sanghyeonにはすでにすばらしい貢献をしてもらっています。ライブラリはインプリメンテーションの一部であり、並行開発が最も適しています。コンパイラ側では、言語を高品位にインプリメントするに必要なすべての協力をすでに手に入れたと確信しています。
RB: Charles Nutterが活動中であることがリストから見て取れますが、Nutterの経験はIronRubyの開発にどのように価値をもたらしたのでしょうか?
JL: Charlieの素晴らしいところは、あらゆるRubyインプリメンテーションのために積極的に改善を試みているところです。JRuby の互換性[GLOVA2]問題に取り組んだCharlieの経験(Fixnum対Bignumのインプリメンテーション特定動作や、ObjectSpaceの処理方法など)は、私たちが同様の問題に取り組む上で、道案内の役割を果たしました。
Charles Nutter(source)を知らない読者のために申し上げますが、CharlesはSunでJRuby(source)プロジェクトのリーダーを務めています。Sunは2006年にJRubyプロジェクトを獲得したのですが、その時からCharles NutterなどがSunで働くようになったわけです。CharlesはJRubyと利害関係があるにもかかわらず、自分のJRubyの経験に基づいてIronRubyの方向性についてたくさんのアドバイスとフィードバックをくれます。
RB: 協力者から実際に得ているものと、あなたが期待していたものという点に関して、IronRubyプロジェクトの「オープンソース」部分をどのように評価しますか? 私の3番目の質問に対してあなたは、これまでに役立つ協力もしてもらえたと答えていますが、それはあなたの期待と比べてどうかということをお訊きしたいと思います。
JL: コミュニティの質の高い貢献には本当に満足しています。私たちの言語インプリメンテーションとDLR がどのように動作するのかを理解するのに、長い時間を費やしている方々が存在するのです。
RB: プロジェクトのオープンソース側で、完了させる必要のあるものは残っていますか? 目標は1.8.6完全版のインプリメンテーションということでよろしいのでしょうか?
JL: はい。同時に実装可能な1.9の機能も楽しみにしています。一例がMutableStringの実装ですが、その理由は、1.9のセマンティクスを実装して1.8.xの互換性を有効化するスイッチの追加には、余分な作業がそれほどたくさん発生しないからです。
RB: IronRubyには、Visual Studio 2008でUIを開発するツールセットがあるのでしょうか? VS 2008に一体化するIronRubyの公式リリースという可能性はあるでしょうか?
JL: 今のところ、VSでIronRuby UIツールの計画はありません。とは言っても、SapphireSteelのHuwと DermotがVSでデザイナ向けのサポートを提供する上で、現在素晴らしい仕事をしています: http://www.sapphiresteel.com/IronRuby-Visual-Designer (英語)
RB: IronRubyのUIツールに存在する可能性のあるギャップを埋めているHuwやその他の人たちと、IronRubyチームは積極的に協力しているのでしょうか。それとも、彼らが独自に行っている周知の取り組みであり、正式の協力ではないのでしょうか?
JL: UIツールには現在たくさんのギャップが存在します。そうは言っても、今のところ正式な協力関係はありません。時折Huwたちから質問されれば答えており、また、Huwたちは現在どういった状態にあるかを定期的に知らせてくれます。
RB: 皆が知りたがっていることですが、IronRubyではRuby on Railsのサポートは目標になっているのでしょうか。IronRubyチームがRuby on Railsのサポートにコミットしているかどうか、教えていただけますか?
JL: ええ、「1.0」を宣言する上でRailsは重要な終了基準になっています。
RB: IronRubyの将来について、あなたのビジョンを教えてください。
JL: 私たちの目標に変更はありません。つまり、おそらく2008年後半にRuby言語の高品質なインプリメンテーションをリリースするということです。現時点からその時期までに発生するリリースは、「カンファレンス開催時期に合わせた」開発スケジュールに従います。今のところ、MIX 08、RailsConf、Tech Ed、OSCON への参加を予定しています。
RB: あなたがプロジェクトに着手して現在に至ったわけですが、プロジェクトの現在の進行状況ついて個人的にどのように感じますか? このプロジェクトを始めてから、あなたの期待にはどのような揺れがあったのでしょうか?
JL: コミュニティとマイクロソフトのチームが、非常にうまく一体化して作業にあたってきたので、本当に嬉しく思っています。とても素晴らしい開発者とテスターのグループです。米国への転居を決めたことについて、私は少しも後悔していません。
RB: お忙しい中、時間を作ってインタビューに答えていただき、ありがとうございました。
IronRubyプロジェクトの詳細についてはRubyForgeサイト(サイト・英語)を、John Lamのその後についてはJohnのブログ(source)をご覧ください。
原文はこちらです:http://www.infoq.com/articles/state-of-ironruby
このArticleは2008年1月17日に原文が掲載されました)