読者です 読者をやめる 読者になる 読者になる

Rubyはどこへいくのだろう

FLOSSがメンテナンスされていく過程では、次のどちらかがかならず必要になる*1

  1. そのFLOSSの周囲に巨大なエコシステムが形成され、コミュニティが共同統治できていること- たとえば、Apache, Debian, Python
  2. そのFLOSSに強力なスポンサーがおり、メンテナンスされていること - たとえば、Java, Erlang,

このどちらかが成立していなければ、そのプロダクトは生き残れない。だから、わたしはRubyのことを心配している。
Ruby1.8のコミッタの卜部さんが書いたように、Rubyはその大規模なユーザーベースにも関わらずガバナンスが存在しない。しないといっては失礼だが、ここでの意味はApacheDebianPythonのようなレベルにまでコミュニティが成熟していないという意味だ。Rubyで生計を立てている人が沢山いてRubyというプロダクトの周辺には十分なエコシステムができているにも関わらず、である。

というわけで今すぐ出せとは言いませんから1.8の今後の方向性を決めましょう。個人的には1.8.8は出さずにこのままブランチごと放棄するというのも視野に入れています。1.8.8が出ないことにすれば1.8.7の最終バージョンに向けてもう、これ以上は新しいものは来ないという宣言ができるので、それはそれで方向性は定まっていいのではないかと思います。あと単純に枝が一本消えればそのぶんの作業量が減って開発者がハッピーというのもある。

卜部さんのように苦言を呈する人は貴重だが、わりとスルーされているようだ。それに追い打ちをかけるように、DebianのRubyパッケージのメンテナが一人抜けることになった。いろいろと理由が述べられていて、FLOSSコミュニティでは二番目に多い理由が挙げられている*2。ふつうは誰が抜けても、同じように誰かしらやってきてメンテナンスが継続されるものだが、Rubyに関してもきっと同様なのだろう。これに対するMatzの返答は、これも割と普通。うーん。

Debianみたいに憲法を定めろとはいわないけど、誰かがルールづくりに乗り出してもいいんじゃないかと思いました。日本人ってそういうの苦手なのかな。Rubyに限った話じゃないけど、日本初のOSSが世界中で使われていることを目指すならやり方を考えた方がよいかと思います。そうではなく、日本流のコミュニティ運営方法を確立することができたら、それはとても素晴らしいことだと思います。
f:id:kuenishi:20110103213608p:image
http://twitter.com/#!/kosaki55tea/status/21888567303213056

追記

まったくコミュニティに参加していない私がいうのもアレだけど、Pythonだって2.x系と3.x系を同時にメンテしている。同じようにRubyだって1.8系と1.9系がそのまま残っていくのだろうし、このままどこにも行かないというの選択肢が最も自然なのだろう。で、それが勿体ないなぁー、と思うです。個人的には、

  • 1.8系をdeprecated指定して、
  • クリティカルなバグフィックス以外な何もしない、
  • 日時を指定して「XX年YY月にメンテナンスも停止します。それまでにみんな頑張って移行してね」という

とするくらいが最もユーザーフレンドリーだと思うし、これくらいの意思決定はサクっとできてもいいんじゃないかな。古いものに対してこれ以上リソースを投入し続けるのは無駄だとはいわないが、とても勿体ない話だ。

*1:どちらも備えているのが、Linuxだったり

*2:一番多いのは「本業が忙しくなったから」