小さいプロジェクト

勉強会でGoogle N-gram を使った研究の紹介。ちょっと忙しいので日本語の解説記事でもいいかと思ったのだが、なんかあまり反応がよろしくなかったので……

taku さんのとこ肥大化して破綻するオープンソースプロジェクトと tabatee さんのとこ最近した議論、あと T 岡さんのとこ周辺技術というか付加機能の話

今のところそこまで困った実体験はないのだが、最近自分はオープンソースプロジェクトというものには懐疑的(というより、いい面と悪い面が分かるようになってきた)なので、そうだなーと思う。

Microsoft (とかの大企業)はどうこうと OSS の人は言うけれど、やはりそれもいい面と悪い面があるわけで、ちゃんとアルゴリズム部分考える人と周辺部分をやる人が分かれていたり、コア部分やりたい人にとっては「そんなのやりたくない」と思うような部分はそれを専門に対応してくれる開発者・サポートがいたり(サポートに関してはユーザコミュニティであったりすることもあるが)、あれはあれでいいんじゃないか? とここ数年思うわけで。

昔は *-users メーリングリストとか fj.* とか2ちゃんねるとか大量に読んでフォローしていたけど、少数の人がサポートに回るってのは、その人ががんばっている間はいいのだけど、持続可能なコミュニティにはならないのではないか、と思う(自分も研究とか家庭とか顧みなければ続けられたとは思うけど、そういうのは違うなと……。たぶん東京の大学に進学していたら同じ調子で続けていたと思うけど、良くも悪くもそうしていたら人生違っただろう)。

アルゴリズムのところこそ、がんばれば市販製品よりオープンソースなソフトウェアのほうが進んでいるものを使えるところ(周辺部分は企業で作り込まれたり、普及してドキュメントが増えたりするとやはり厚みが違う)なので、研究を応用しやすい分野のオープンソースソフトウェアとしては、できるだけ小さく(かつアルゴリズムやアイデアの部分が他と違うと分かるように、独自性を前面に出して)作るべきなんではなかろうか。特に「OSS で成功している」という評判になれば他の人たちも(成功することが分かっているなら)参入しやすいわけで。

特に OSS で「他の(市販の)ソフトの機能をどれくらい実装(参考に)したか」なんてので比較・言及されることが多かれ少なかれあると思うが、発想は逆で「どれくらい他のソフト・プロジェクトに影響を与えたか、参考にされたか」というような観点で見た方が、最終的にはみんな幸せになりそうに思うのだが……。要は自民党(= プロプライエタリなソフト)クローンの民主党(= 肥大化した OSS)なんて(少なくとも自分は)あんまほしくなくて、必要なことさえ自民党が拾って実現してくれれば、コンセプトだけ少数意見として言う社会党共産党(= 小さいプロジェクトの OSS)でいいんじゃないの? ってこと。

考え得る問題点としては、あまり作っている側は注目されないので、作り続けるモチベーションを保ち続けにくいってことかな? 自分で「これは自分がやったのが初めてだ」と思って満足するくらいしかない、ってところか……。(まあ、最近はそういった経験を属人化して大企業が引き抜いてくれたりすることもうるので、大企業に入ることに抵抗がない人は問題ないかもしれない)