0017 号 巻頭言

日本 Ruby の会の設計と実装 1 : 名前のないコミュニティ

Rubyist Magazine 第 17 号をお届けする。

今号は、青木峰郎さんを迎えて、イタリアと賞味期限と Alpha の話のおまけつきの 「Rubyist Hotlinks」、 地味ではあるが必須の知識である文字コードと排他制御についての解説を行う 「Ruby ビギナーのための CGI 入門」、 怒涛の三連打で添削する 「あなたの Ruby コードを添削します」、 Rails などでもおなじみの ERB の細かい説明がうれしい 「標準添付ライブラリ紹介」、 Emacs でドキュメントを検索するためのツール langhelp の解説をする 「Emacs 上の調べ物は langhelp で!」、 RubyConf での異様な盛り上がりが未だに解せない Erlang を解説する 「Rubyist のための他言語探訪」、 細かいながらも効果が大きい (らしい) 特化命令について解説する 「YARV Maniacs」、 最近低レイヤ好きの間で好評な『Binary Hacks』を紹介する 「書籍紹介」、 去年よりも Rails 色が薄くなり、Mac 色が異様に増大した RubyConf2006 について触れた 「Ruby Conference 2006 レポート」、 さらに「RubyNews」に「RubyEventCheck」と、 いつものように盛りだくさんの内容になっている。


今回の巻頭言は少々わかりにく内容になってしまっているかもしれない。 そこで最初に要旨をまとめておく。

要旨:「日本 Ruby の会」というコミュニティよりも古くからあり、 重要度も高い Ruby のコミュニティがある。 しかし、そのコミュニティには名前がなく、実体もはっきりとはつかみきれない。 日本 Ruby の会の設立目的はそのコミュニティを維持しつつ、 しかしそのコミュニティに代わり、名を持つことにあった。


先日から、Ruby の会のメーリングリストなどで、 Ruby の会の法人化の話が続いている。 それについてこちらでも触れておきたい。 ……と思ったのだが、これからどうするかを書く前に、話の整理として、 現在の Ruby の会がなぜこのような形になっているのかを書き記してみる。

現在の日本 Ruby の会の活動は、多くの熱意ある方々の活躍によって成立している。 そのため、Ruby の会の活動の方向性は私一人では語れるものではない。 しかしながら、その組織としての設計方針や実装方法は、現在に至るまで、 私が設立当時に考えていた、そして現在考えていることが少なからず 反映されているはずである。 きわめて私的な見解も含むものの、参考までに記しておきたい。

日本 Ruby の会の設立は 2004 年。 Ruby の歴史からみれば、比較的最近の出来事である。 現在、日本 Ruby の会は「代表的な Ruby のコミュニティ」として扱われている。 そのため、Ruby の会が設立される以前には、Ruby にはコミュニティらしい コミュニティがなかったのではないか、と思われる方もいるかもしれない。 しかし、それは大きな間違いである。

Ruby の会が設立される以前から、Ruby のコミュニティは脈々と存在していた。 それは、Ruby の開発者とユーザからなる、ゆるやかなコミュニティである。 当初はまつもとさんとその知人、すなわち 「まつもと ゆきひろとゆかいな仲間たち」 のような構成だったと思われるが、やがて (ruby 0.95のリリースの後に) コミュニティの母体は ruby-list や ruby-dev、そして ruby-talk といったメーリングリスト (ML) に移行していき、 ここにおいて、コミュニティらしい体裁を持つようになった。

この時点では、Ruby の中心は開発者とユーザの明確な区別はなかった。 そもそも自力でコンパイルしたりパッチをあてたりしなければ 使い始められない、という事情もある一方で、 Ruby を使うということ自体が、Ruby という言語の設計に対する 利用の面からの検証とフィードバックとして理解されている向きもあった。 そして現在では標準添付されているようなライブラリを 利用者自身が自力で作成し、時にはそれを公開し、共有していた。

このコミュニティの範囲は ML に限定されるものではない。 例えばまつもとさんに ML 以外でメールを寄せ、まつもとさんと意見交換をし、 それが Ruby に反映されていく、という流れがあったとすれば、 そこには実質的には ML 上と大差のないコミュニケーションが成立していると言える。

さらに Web の普及にしたがって ML ではなく Web 上でのフィードバックも 一般的になった。 それはたとえばまつもとさんの日記 であったり、他のひとの日記などに書かれたものが、 Ruby の開発に影響を与える、といった具合いである。 こちらは ML のように一元管理されていないため、さらに動きが把握しづらい。 とはいえ、日本 Ruby の会が設立されるまで、このようなゆるやかな連携のつながりが Ruby にとって非常に重要なコミュニティであった(海外に目を向けるならば Ruby Central の動きを 踏まえる必要もあるが、ここではおいておく)。

しかし、このような形態のコミュニティしかない状況では、問題が生じることもあった。 例えば、何かしらイベントのようなことを行おうとした場合、 Ruby の外部の団体が率先して行うか、あるいは個人が行うことになるだろう。 具体例を挙げるならば、1999 年に開催された Ruby ワークショップ日本 UNIX ユーザ会 が主催したし、 また第 1 回の Ruby 温泉ミーティングは私が個人として 主催する形となった。 このような形態での運用も不可能ではないが、理想的な形ではないだろう。 やはり Ruby 内部でこういったイベントを企画・運営できる主体があった方がしっくりくる。

また、外部からのアプローチへの対応も問題になる。 内部的にはあいまいな合意に基づく意思決定で必要十分だとしても、 例えば「法人からの寄付」といった行為を含む「経済」という外部は、 Ruby のコミュニティに対し、より明確な意思決定と行動を求めるだろう。 しかし、それはゆるやかなつながりの中からは極めて生じにくい。

つまるところ、外部が求めるものは明確なインターフェースである。 内部の事情と構造を理解し、しかるべきときにしかるべき人に話が いくよう考慮して接触することができるのは、あくまで内部にいる者 だけである。コミュニティがあいまいであり、明確な名前を持たない 場合、外部からアプローチを試みるものはどこへ行くのか。 それは、Ruby の集まりの中でもっとも大きな名前を持つ存在である 「まつもと ゆきひろ」という個人に集中してしまうだろう。 しかし、開発を行うまつもとさんに余計な負荷をかけてしまうことは 避けたい。 解決策が必要である。

Ruby コミュニティの外部インターフェースとして、「顔」として振舞う こと。「Ruby のコミュニティ」を指し示す際の「名前」を持つこと。 それこそが、日本 Ruby の会に課せられた、何よりも重要な役割に 他ならない。

とはいえ、Ruby の会が存在することにより、 あいまいな開発者とユーザのコミュニティの重要性が減ることはない。 むしろ、現在に至るまでも、 この Ruby の開発・ユーザコミュニティこそが Ruby にとって もっとも重要なコミュニティであり、Ruby の会はいわば副次的なもの だと思っている。

正直に言うならば、「Ruby の代表的なコミュニティ」として 日本 Ruby の会が紹介されることには、未だに内心激しい抵抗がある。 「日本 Ruby の会」は、つまるところ外部に対する「名」を持つための かりそめのコミュニティであり、 本物の、まさに Ruby を生み出し、育み、享受しているコミュニティは こちらではなく、名もなきコミュニティに いる(んだか、いないんだかもよくわからない)ひとびとである、 と深く確信しているからだ。

念のため付け加えておくと、Ruby の会が ある意味で「かりそめのコミュニティ」であることには 何の卑下も含んでない。 Ruby の会を「かりそめ」ではなくする、ということは、 例えばまつもとさんを中心とする開発コミュニティに 再編を迫ることにもなりかねない。 現状の Ruby の開発に問題がないとは言わないが、 それを改善する動きは、まつもとさんをはじめとする コミッタや開発者や利用者から生まれるべき動きであるべきで (その意味で、 JRubyRubyCLR の動きを受けて Ruby の仕様整備が進んでいくという経緯は 理想的な流れだと思う)、 Ruby の会が率先して進めるべきところではないはずである。 あくまで Ruby の会が Ruby の開発に対して行うのは「支援」であり、 開発そのものではない。

このような事情にも関わらず(あるいはこのような事情ゆえに)、 日本 Ruby の会が Ruby コミュニティを代表してしまうように 評価されてしまうことは避けられない。 とはいえ、それこそが日本 Ruby の会の設立目的でもあるため、 決して避けるべきでもないことなのだ。

(るびま編集長 高橋征義)