« Google WaveはWikiをもっと学ぶべき、だった──『Google Wave入門』と『パターン、Wiki、XP』から考える | Main | Androidは、単なるJavaクローンではない »

RubyKaigi2010を前に、「RubyKaigi2009で見たRubyコミュニティの悩み、価値観、変化」を記す

Rubyコミュニティのイベント「RubyKaigi2010」が、今週末に開催となる。

ちょうど1年前のRubyKaigi2009に関する未発表原稿があるので、予習の意味を兼ねて読み返してみた。その結果、今の時点で掲載する意味があるのではないかと考え、ここに発表する。

このイベントでは、さまざまな技術的なトピックの発表があったのだが、一番印象に残った部分は「コミュニティの悩み」、「価値観」、そして「変化」だった。この原稿では、そのことだけを書いている。なお、技術的なトピックスに関するレポートとして、 「Rubyは変化を恐れない」---RubyKaigi 2009 レポート(ITpro) RubyKaigi2009 スペシャルレポート(gihyo.jp) などがある。

RubyKaigi2009で見たRubyコミュニティの悩み、価値観、変化

Rubyコミュニティは、悩み、変わりつつある。どのように変わるのかは、当事者にもまだ分からないようだ。しかし、Rubyコミュニティは変化に備えて必要となる価値観の共有には非常に熱心だし、それには成功しつつあるように思われる。2009年7月17日〜19日にかけて、「Change」という統一テーマを掲げ、約700名の参加者を集めて都内で開催された日本Ruby会議2009(RubyKaigi2009)に参加して、筆者はそのように感じた。

Rubyは、当初はオブジェクト指向スクリプト言語、つまりスクリプティング(ちょっとした小規模プログラムを迅速に開発する言語)のための言語という位置づけのもと登場した。2004年に登場したWebアプリケーション・フレームワークRuby on Railsの成功に伴い、多くのWeb企業のインフラとしてRubyは使われるようになった。それに伴い、Rubyへの期待も高まり、要求も高まっている。

外部から観察可能な限りにおいて、Rubyコミュニティの抱えている問題は、大きくは2つある。Rubyの開発のためのリソースの問題。そして、(自己矛盾のように聞こえるかも知れないが)RubyKaigi開催のためのリソースの問題である。

そして、Rubyコミュニティに関して感心するのは、自分たちが抱えている問題を、不利な材料も含めて率直に語ることである。その一方で、Rubyの良さに関する宣伝活動はあまり上手ではない。この記事では、Rubyコミュニティの問題点を主に取り上げているが、その背景にあるものがRubyの成功であることは、まず強調しておかなければならない。

リソース不足に悩むRubyコア・チーム

まず、Ruby開発のためのリソースの問題がある。Rubyへの注目の大きさに比べ、Rubyコア・チームの開発リソースは潤沢とはいえない。Ruby言語の設計者であるまつもとゆきひろ氏は、「バグレポートが届く速度が、バグを直す速度より速く、溜まってしまっている」とぼやく。Ruby1.9メンテナのYugui氏は「コアチームの人手が足りていません」と訴える。Rubyの責任が重くなっている中、Rubyコア・チームのリソースは決して豊かではない。

今、Ruby1.8系統からRuby1.9系統への移行期にあることが、リソース不足の原因の一つだ。RubyKaigi2009の時点での説明では、Ruby1.8系統は、Ruby1.8.6、Ruby1.8.7、Ruby1.8.8の3種類、Ruby1.9系統は1.9.1のブランチがそれぞれ保守されており、さらにtrunkには最新の実装を取り入れている。この複数のブランチに、潤沢とはいえない開発者リソースを分散して配置しなければならない。

最新のRubyは、1.9系統である。より高速な仮想マシン(YARV)の搭載、文字列の多国語対応など、数々の改良を加えたバージョンだ。RubyKaigi2009会期中、Ruby1.9系統の最新のブランチである1.9.2のPreview Release1の公開を発表、会場は拍手で答えた。このRuby1.9.2での変更は、「Socket APIの改善、Timeの改善など。はっきりいって地味です。この地味さから、Ruby1.9.2が安定していることを感じ取って下さい」(Yugui氏)。完成度に関しては、スクリプティング用途であれば1.9系統を推奨するものの、(Ruby on Railsなどで開発した)アプリケーション向けにはいぜん1.8系統を推奨するという。このあたりを正直に語ってしまうところが、Rubyコミュニティの特徴だ。

実際、Ruby on Railsアプリケーションの動作環境としてはいぜんRuby1.8が主に使われている。特に、1.8.6の人気がいぜん根強い。Ruby1.8.8の登場により保守の中止が予定されていたRuby1.8.6のメンテナとして、Ruby on Railsを推進する企業Engine Yardの社員であるKirk Haines氏が手を挙げたことの背景には、こうした事情がある。

一方、Ruby設計者のまつもとゆきひろ氏は、最新のRubyに情熱を注いでいる。まつもとゆきひろ氏が担当するtrunkでは、「複素数リテラル」の導入をめぐって議論が進められている。まつもと氏の手元には、Rubyの新機能の実装(パッチ)が、「複素数リテラル」を含め20種類以上あるという。まつもとゆきひろ氏のRubyKaigi2009の基調講演の後半部分は、この新機能群の説明に費やされていた。

Rubyコア・チームのリソース不足に関連して、「Ruby処理系の開発作業に貢献することの敷居が高い」との指摘がある。例えば開発者メーリングリストに参加し、パッチを送る、という作業の敷居が高い。そこで、Yugui氏は、「分散リポジトリ「Git」の導入を進めていきたい」と語っている。Gitは、LinuxやRuby on Railsの開発チームでも採用しているリポジトリである(参考記事:「“Railsという現象”とコミュニティの性質)。

Rubyコミュニティの価値観は「真実から眼を背けない」「正論が通る」

そして、Rubyコミュニティのもう一つの悩みが、Rubyの良さや利用技術を伝えるための活動のリソースが限られるということだ。例えば、有志によるRubyリファレンス・マニュアルの整備が進められているが、その進捗は今ひとつだ(注:RubyKaigi2009時点)。日本各地では「地域Ruby会議」の開催が進められている。こうした中から、次の世代のRubyコミュニティを支える人材が出てくるかもしれない。

興味深いのは、Rubyコミュニティは、自らの「価値観」に関する言及が多いことである。Ruby言語設計者のまつもとゆきひろ氏は、基調講演の場で「Rubyコミュニティとして推奨される態度は何か」、と語りかけ、「感謝」という言葉、そして「酸っぱいブドウ」の例えを出して、「Rubyコミュニティはモヒカンであるべき」と語る。「酸っぱいブドウ」は、「真実から目を背けること」という意味の例え話。「モヒカン」は、日本の技術者コミュニティのジャーゴンで、権威より事実を重んじる流儀を示す言葉だ。

Ruby言語の設計者であり、いわば最高の権威であるはずのまつもとゆきひろ氏でも、ヘマをして「コミット権を取り上げるよ!」と言われたことがあるという。そして、まつもとゆきひろ氏は「そのようなコミュニティでありたい」と希望を述べるのである。「Rubyにも欠点はあり、それは素直に認める。時間はかかるかもしれないけれど、いつかは直す」。

一方、Yugui氏は、セッション後の質疑応答の中で「Rubyコミュニティは正論が通るコミュニティ。Ruby処理系に何か問題があれば、解決するパッチと『Rubyはこう動くべき』という正当な理由をメーリングリストに送れば、それは受け付けられる」と語る。

最後のセッションでは、日本Rubyの会会長である高橋征義氏が「(会長である)私の最重要課題は、私を捨てられる形を作ること」「私の知らない世代が、私がさほど面白いとも思わないような事を、嬉々としてやってほしい。これが(私が考える)たのしい未来」と、新しい世代に期待するメッセージを語る。

こうした価値観が、Rubyコア・チームの価値観であり、Rubyコミュニティの価値観として共有されている。Rubyも、Rubyコミュニティも、自分たちの不完全さをよく知っているが、そのことを含めて価値観を共有しようとしている。このような価値観を持ち続ける限り、変化に対応してRubyコミュニティはしぶとく生き延びていくだろう。

|

« Google WaveはWikiをもっと学ぶべき、だった──『Google Wave入門』と『パターン、Wiki、XP』から考える | Main | Androidは、単なるJavaクローンではない »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference RubyKaigi2010を前に、「RubyKaigi2009で見たRubyコミュニティの悩み、価値観、変化」を記す:

« Google WaveはWikiをもっと学ぶべき、だった──『Google Wave入門』と『パターン、Wiki、XP』から考える | Main | Androidは、単なるJavaクローンではない »