日本のRubyコミュニティ最大のイベント「日本Ruby会議」が2008年6月20日から22日までの3日間、茨城県つくば市のつくば国際会議場で500人近くを集めて開催された。
多様化するRubyコミュニティ
今年で3回目の開催となる当会議は、国内のRuby開発者・関係者が一同に介するだけでなく、海外からもJRuby開発者による講演など多数の参加者があった。これまでの「一つのRuby、一つのRubyコミュニティ」という思想(趣意書)から「多様性」を全体テーマに掲げた今回のカンファレンスは、まさにRubyとRubyコミュニティの多様性をうかがわせるものとなった。
天候はあいにくの雨模様だったものの、つくば国際会議場の中は3日間にわたってRubyコミュニティの熱意と前向きさであふれていた。それは最終日の閉会宣言のさらにあとまで続き、会場の撤収作業と同時に行われた「リジェクト会議」にもホールいっぱいの参加者が居残って、2トラック平行して計29本のライトニングトークを堪能した。
すべての大トリとなった発表は、角谷信太郎氏によるRejectKaigi基調講演「Regional RubyKaigiのご提案」で、年々大きくなるRuby会議だけに集中させるのではなく、地域ごとのユーザーコミュニティ主体で「地域Ruby会議」を開催してみようという提案。そして角谷氏自身がその第1回を主催する計画(開催予定地は東京)を発表し、会場は賛同の拍手に包まれた。
このような地域化/分散化が最後に提案されたこともそのひとつだが、今回のRuby会議2008は「多様化」という全体テーマにふさわしいカンファレンスとなった。1日目の午前中からまず多様なRuby実装を集めたセッションが用意され、Ruby 1.9に正式導入されるYARV(Yet Another RubyVM)、エンタープライズ分野からの注目が集まるJRuby、Smalltalk指向のRubiniusという3種類の実装が続けて紹介され、また2日目にもMacRubyに関係する発表が行われた。
コア部分での多様性がある一方で、全面的にRuby on Railsを採用して開発されたiKnow!や食べログといった大規模ウェブサービスの事例紹介があったり、教育分野での活用についてのセッションやコミュニティ活動に関係するセッションがあり、ユーザーの関心も実に多岐にわたっている。
しかし多様化も、進みすぎればコミュニティの分裂をまねきかねない。やはりどこかで「一つのRuby」の思想のもとで、多様化し、多彩なプレイヤーが腕を競い合う環境がもとめられるところだろう。そういった意味で、まつもとゆきひろ氏による「プログラミング梁山泊(Programming Sanctuary)」と題された基調講演は、Rubyの現在と未来を比喩的に表現した、示唆に富んだものとなった。
プログラミングの梁山泊
「梁山泊」とは、108人の勇士が活躍する中国の古典小説『水滸伝』の舞台となったところ。転じて、優れた人物が集まるところを意味する。まつもと氏は、プログラミングパラダイムの発展においていくつかの「プログラミング梁山泊」が存在したとし、そして2000年代においてはRubyコミュニティもそのひとつであることを示した。
まず1960~70年代の歴史的なプログラミング梁山泊として、まつもと氏はMITの「Lisp梁山泊」をその原点として、ほかにAT&Tベル研の「UNIX梁山泊」と、XEROX PARC(パロアルト研究所)の「Smalltalk梁山泊」を挙げる。これらは、同時代のFORTRANやCOBOLといったほかのプログラム言語が主に仕事の道具としてとらえられ、プログラミングにかかわる技術よりもその結果が重視されたこととは対照的である。
これらの古典的な梁山泊に共通する特徴として、優れた「技術者が集まる」こと、集まった技術者によって「新しい技術」が生まれること、そうして生まれた新しい技術によって「世界が変わる」ことの3点を挙げる。たとえばLispならば、ガベージコレクションや例外処理、メタプログラミングといったLispに導入された概念は、登場して数十年経ったいまでも十分に新しいプログラミング技術である。同様にSmalltalkでも、オブジェクト指向や仮想マシン(VM)などの新しい技術が生み出され、これらは現代のプログラミング言語に影響を与え続けている。
UNIX梁山泊はこれら2者とは若干傾向を異にしている(そもそもUNIXはプログラミング言語ではない)。UNIXが新しかったのは「小さなOS」という発想の転換であり、ときには「ベストなテクノロジー」よりも「便利である」ことがとても重要だという考え方。そして、テキストストリームベースのファイルシステムという発想が、それを処理するsedやyaccといったコマンドを生み、やがて「Perlのような化け物」に成長した。
まつもと氏が4つ目に挙げた梁山泊は、かなり時代が下って1990年代のJavaコミュニティである。Javaはビジネスに役立つエンタープライズな開発言語でありつつ、Smalltalkの仮想マシンやLispのガベージコレクションや例外処理といった技術を、普通の人が使うプログラミング言語に持ち込むという「温故知新」を行い、いろいろな技術を吸収していった。
Ruby梁山泊
そしていまRubyコミュニティにも人が集まり、面白い新しい技術が生まれつつあるのではないか、まつもと氏はそう考えている。ひとつには過去の継承であり、メタプログラミングやオブジェクト指向を、現代のエンタープライズ環境の中で生かしていく技術。「感性」を重視し「楽しさ」に注目するコミュニティのあり方。そして複数のRuby VM実装が進行していることからわかるように、多様性は善だとする考え方があるという。
今後のRubyについては、その複数の実装が競争と協調を行っていくことで基本性能がアップすることを期待する。JavaもHotJavaのころは遅かったがそれから10年経っていまJavaが遅いという人はあまりいない。同じようにRubyも10年後には誰も遅いといわないようになっていてほしいとまつもと氏は語った。そのほかm17nなどの機能強化、ウェブアプリケーションでの生産性とスケーラビリティを向上させる技術。楽天と共同研究する「ROMA」や「fairy」などが考えられている。
また完全な未来へのアイディアとしては、より良いプロファイラ、イメージベースIDE、アクター・モデル・プログラミングなどが挙げられた。Ruby梁山泊から、そういう新しい分野に挑戦していく勇士が登場するのだろう。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です