Miguel de Icaza氏、バージョン2.0のリリースを機にMonoの過去と未来を語る

 Monoほど、さまざまな反響を巻き起こしてきたフリーおよびオープンソースソフトウェアのプロジェクトも少ないだろう。理由の1つは、Microsoftの.NETを実装したMonoが、(Microsoftと提携関係にある)Novellの資金援助と管理の下にあり、特許の問題でMicrosoftが暴挙に出た場合、火種になる可能性が高いことにある。その一方でMonoは、Second Lifeのような大規模プロジェクトでプラットフォームとして採用されている。Monoを利用することでサーバの利用効率が向上するからだ。Monoのバージョン2.0リリースに伴い、Linux.comは今週、プロジェクトの創設者でメンテナであるMiguel de Icaza氏へのインタビューを実施し、プロジェクトの経緯、Monoの利用先、Monoに対する批判、今後の展開について聞いた。

 Mono 2.0のリリースは、プロジェクトにとって大きな節目だった。その理由をNovellの製品マネージャJoseph Hill氏は、「.NET 2.0のAPIとの互換性実現を本格的に公表することになるからだ」と説明する。ただし、Hill氏によると、Monoプロジェクトはすでに.NET 3.0および3.5との互換性についてもかなりの作業を終えているという。「(そのため、Mono 2.0は).NET 3.5からいくつかの主要ライブラリを除いたものに近い。具体的には、Communication Foundation(WCF)やWindows Presentation Foundationなど、.NET 3.0で追加されたライブラリのうちで我々が取り込みを進めていないものが除かれている」

 de Icaza氏にしてみれば、「Monoが.NETの代替実装として人々に認めてもらえる」ところまで到達したことを示す今回のリリースの意味はさらに大きい。その重みがわかる例として、彼はF#コンパイラの開発者の取り組みを挙げている。「彼らは、リリース前にMonoでテストを行うだけでなく、Linux用のインストールスクリプトまで用意している。今やMonoは、ただの趣味的なプロジェクトではなく、重要なプロジェクトとして注目されているからだ」

認められるまでの苦心

 de Icaza氏にとっては、長い道のりだった。「2000年に.NETが現れたときには、少し妬ましく感じた。それがすばらしいものに思えて、自分が取り残されてしまったような気がした。Windows派の開発者たちが、複数言語のサポート、ネイティブライブラリの利用、言語のすばらしさという点で非常に興味深いこのテクノロジを手にしていくのを、私は傍観するだけだった。Linuxには.NETに相当するものがなかったので、我々はこれをLinuxでサポートするものを作り始めることにした」。彼は、この決断についてこう述べている。「すべては開発者に喜んでもらうためだった。フラストレーションを一掃し、プログラミングを楽しめるものにし、苦しいところをできるだけなくそうと考えた」

 それ以降のことをde Icaza氏は「いくつもの波を乗り越えてきた」と表現している。「Mono 1.0に到達するまでの最初の波では、開発の現状を改善することに注力し、また.NETにおける高いパフォーマンスと厳格な言語の組み合わせ、そしてマネージドランタイムの利点をLinux開発者に提供することによって、プログラミングの楽しさを彼らに伝えようとした」

 「Windowsプラットフォームで使われていたAPIの実装を検討し始めた頃が、2番目の波だ。.NETのAPIを実装すれば、Windowsで使われていた多くのライブラリやコンポーネントがLinuxでも使えるようになるはずだった。Windowsではコンポーネントベンダの強大な開発力が.NETテクノロジを支えており、それらをすべてLinuxで利用したいと考えたのだ」(de Icaza氏)

 だがMonoプロジェクトは、Mono 1.2でようやく.NET 1.0の実装を完了させた段になって、大きな痛手を受ける。.NET 2.0がリリースされたのだ。「コア機能は完成していたが、APIの面では開発に遅れが出た」とde Icaza氏は話す。しかしその後、彼が追い求めてきたクロスプラットフォームのサポートが開始される。

 「現在、出回っているオープンソースの.NETルーチンのほとんどは、Monoでのテストが行われている。1.2をリリースした頃は、まだMonoがあまり知られていなかった。しかし今では、リリースの前にMonoでテストを行うことが、かなり一般的なルールになっている」

 その結果、開発にMonoを利用するという考え方が広まった。Monoを利用している組織やWebプロジェクトは、NovellやMindTouch、Wikipediaなど、数十に及ぶ。また、GNOMEデスクトップについて、de Icaza氏はこう話している。「GNOMEに付属する優れたアプリケーションの一部は、Monoを利用して開発されている。写真管理ツールF-SpotやメディアプレーヤーBansheeのほか、TasqueやGNOME Doのような新しいソフトウェアがそうだ」

 とても意外なのは、Monoがゲーム開発のコミュニティで利用されていることだろう。「Second Lifeは現在、Mono上で独自のスクリプトを使用する体制に移行している。その結果、パフォーマンスは350倍になったという。つまり、彼らのスクリプトでできることが増え、従来と同じようなコードでずっと奥深い効果が得られるようになったということだ」(de Icaza氏)。「また、Unity(Technologies)というデンマークの会社との連携も進めている。ゲーム向けのIDE(統合開発環境)を開発している会社で、現在Monoの利用が特に顕著なWeb上のミニゲームも手がけている。だが、かなり期待できそうなのは(家庭用ゲーム機の)Wiiだ。すでにMonoはWii上で動作しており、より優れたゲームの開発に役立つものだといえる」

 de Icaza氏によれば、「ゲーム会社からはMonoのライセンシングを求める声が数多く届いている」という。MonoはGNU LGPL(Lesser General Public License)の下で公開されているため、フリーとプロプライエタリのどちらの形でも利用できる。「具体的な名前は出せないが、コンソール版を用意するために我々に連絡を取ってくるところは、非常に多くのキャラクタが画面に登場したり、画面のあちこちで多くのことが同時に起こったりするゲームのメーカーが多い」

絶えざる批判

 こうした成功には、必ず批判がつきまとう。その激しさゆえに、多くのフリーソフトウェアコミュニティでは、Monoの成功よりも批判のほうが目につきやすい。「ご存じのとおり、反対の声は最初からあった。目立ちすぎると何かと批判を浴びやすい。だからMicrosoftに反対する人は多い。Monoが最初から批判の的になったのは、そのAPIがMicrosoftによって作られたものであり、Microsoftが(フリーソフトウェアコミュニティから)毛嫌いされているからだ」

 多くの批判には何らかのダブルスタンダードが伴う、とde Icaza氏は述べる。たとえば、最初からフリーソフトウェアでクロスプラットフォームだったMonoを批判している人々も、かつてはプロプライエタリでSun Microsystemsがサポートを決めたプラットフォームでしか実行できなかったJavaに対してはずっと寛容だった、と彼は指摘する。

 さらにde Icaza氏は、Monoプロジェクトが批判によってある程度の傷を負ったことを告白している。「だれもがMonoに賛同してくれていれば、もっと多くの開発者を集めることができただろう。実際は、資金援助を受けていても慢性的なリソース不足に悩むプロジェクトが存在し、貢献者を集めるのに苦労している。Monoがだれからも愛されるプロジェクトであれば、こうした苦しみはなかっただろう。だが、批判から逃れるのは容易ではない」

 とはいえ、de Icaza氏はできるだけ、批判については考え込まないようにしている。その考え方は、彼が認識している批判の内容とは対照的だ。「私のチームは、優れたツールがLinuxに人々を呼び込むという考え方を具現化するものでありたいと思っている。まるで自己啓発本に書いてありそうな考え方だが、我々は前向きであろうと努め、好ましい足跡をこの業界に残そうとしている」

さらにde Icaza氏は、Monoに対する批判はやがて消えていくか、少なくともごく一部のコミュニティからしか聞かれなくなるものと確信している。「ほとんどの人々は、互いに争わずにうまくやっていけるようになったと思う。こうして他者の成果をすべて手に入れ、重要な顧客を獲得して人々の手間とデータセンタの負荷の削減に貢献できたら、我々は活動を止めるべきなのだろうか。また、よくわからないのだが、我々のやっていることは間違いだと述べている記事もなかにはある」

今後の展望

 de Icaza氏は、常に同等性(parity)を求めて苦闘しているMonoの現状を認めている。「Microsoftからは、我々が手に入れたいと思うAPIが絶えず出てくる。しかし、その点については、ほかの人々も同じだろう。欲しいAPIはいつまでたっても尽きない」。しかし、彼はそうした同等性には両方の面があり、MonoがD-Busのようなプロジェクトを支えている点を考慮すると「我々のほうがMicrosoftよりも先行している部分はたくさんある」と指摘しつつも「ちょっと言いすぎかもしれないが」と付け足している。

 直近の優先項目としては、WCFなど、Monoがまだサポートしていない.NET 3.0および3.5のAPIの実装がある。そしてもう1つ、Mac OS Xサポートの改善もある。また、JITコンパイラのエンジンのリライトといった改良は2か月前に済んでいるが、テストに時間がかかるので、まだMono 2.0には含まれていない。

 de Icaza氏は、GNOMEでのMonoの利用が増えることを期待している。ただし、彼はGNOMEを多言語プロジェクトと捉えており、GNOMEでは「Pythonの人気が非常に高くなっている」とも述べている。

 GNOMEでのMonoの利用から生じる論争を回避するための取り組みだと多くの人が捉えているValaの台頭さえ、de Icaza氏はそれほど意に介していない。1つの言語を成功させるまでに必要なサポートの展開に何年もかかることを懸念し、Valaの進展をもう少し見守りたいとする一方で、彼は次のように話している。「(Valaの)アイデアには興味深いものがある。(GNOMEの)人々がValaを使いたいというなら、何の異存もない」

 もちろん、de Icaza氏としてはMonoを採用してもらいたいはずだ。しかし、彼はこう語る。「私にとっては、Linuxのアプリケーションを増やすことが最終的な目的であり、人々が何を使うかはたいした問題ではない。我々が図らずも.NETの開発者をWindowsからLinuxに取り込みたいと思ったのは、彼らが大きな影響力を持っているからだ。だが、人々がほかのものを使いたがるなら、そちらに力を注ぐだろう」

Bruce Byfieldは、Linux.comに定期的に寄稿しているコンピュータ分野のジャーナリスト。

Linux.com 原文(2008年10月08日)