ひがやすを技術ブログ

電通国際情報サービスのプログラマ

進化し続けることはオープンソースにとって必須なわけではない

「毎日毎日動きを続けていると、適切な大きさの問題がつぎからつぎに生まれる」
「それさえ生まれれば、インターネット上にはそれを解決する人が現れる。新聞にクロスワードパズルが載っていたらそれを解く人がいるように、それをみんなが解いていく」
それがオープンソースなんだと。

出展はこちら。
http://www.1101.com/umeda_iwata/2008-11-18.html
もともとは、Matzともっちーの対談から生まれたものですね。見たことある人も多いでしょう。目からうろこが落ちた人は少ないかもしれないけど。


Rubyについていえば、上記のことは正しいと思います。Rubyが成功しているのが一番の証拠。ただし、それがオープンソースのすべてなわけではない。オープンソースは、そんな一言で語れるものではない。


別に俺が正解を知っているわけじゃないけど、機能が足りないうちは、いろんな人にその問題を解いてもらうというのは有効だと思う。でも、ある程度機能が足りた後でも、適切な大きさの問題を提供するということは、常に機能を追加していく(もしかしたらバグも追加されるかもしれない)ということだから、コミッタをひきつける意味はあるけど、ユーザにとって余りうれしいことではない。
ユーザは、安定性を求めるものです。特にマジョリティーな人たちはそう。


コミッタというのは、オープンソースの中でもトップクラスに重要なものですが、それ以上に重要なのは、実際に使ってくれるユーザです。どんなに良いプロダクトを作っていても、使う人がいなければ意味はない。

で、Seasar2が冒険しないことによって、適切な大きさの問題は生まれなくなり、開発者が離れ、Seasar関連プロダクトが生まれなくなり、Seasarユーザも離れていく。使われないSeasarからさらに開発者が離れていく。
こういうスパイラルが発生するかもしれないことについては、どう考えますか?

もう開発するものがないなら、開発者は離れて言って良い。一つのプロダクトに開発者を囲い込むべきではない。離れていくというよりも卒業する感じかな。
例えば、DBFluteは、0.9.0のバージョンから、S2Dao(Seasar2)に依存しないようになりました。
http://d.hatena.ne.jp/jflute/20090201/1233414219
これは、私自身の願いでもあります。
DBFluteはそろそろS2Daoに依存しないほうがいいんじゃないかな - yvsu pron. yas


Seasarプロジェクトのコミッタたちが、どんどん卒業していくのは、良いことだと思っています。そのほうが、オープンソースの発展に役に立つ。
開発するものがないなら、人も少なくていいのだから、コミッタは、どんどん卒業したほうがいい。


オープンソースは、コミッタを維持・増やしていくために存在するわけではない。ユーザを維持・増やしていくためにあるのです。だから、あるオープンソースのプロジェクトが、もう十分な機能を備えたら、それ以上、無理に機能を増やす必要はない。それが、マジョリティーのユーザにとっては重要なのです。


開発者が少なくなるから、ユーザが離れていくわけではない。プロジェクトを維持していくために、必要な人数が確保されているなら、絶対的な人数の多さは、ユーザにとって関係ないのです。

一般的に職業としてのシステム屋というのは、冒険することが難しいです。
会社やその先の顧客に対し、そのリスクを負うことを要求しなければならないので。
#みんなが冒険好きというわけでは無い
開発者としては、冒険する、というか、最新技術に取り組んでいくということは理想ですが、現実的には、業務では実績のある枯れた技術が採用される傾向が強いように思います。

こう思うユーザが多いと思いますよ。