勢いにまかせて書いている「雑文日記」と違って,この連載はそれなりにいろいろ考えて書いています。担当さんにはあまり気にしないで良いと言われているのですが,「参考になった」という評価が多いと嬉しいものです。とは言え,「万人ウケ」でバランスの良いものよりは,多少反発されるくらいのものの方が本当は参考になると思います。基本的にはこの連載は私の主観バリバリですから,「これが絶対に正しい」というつもりはありません。あくまでも私が正しいと思っていることを書いているに過ぎません。

 何度も書いているよう(今回も書いています)に,「オープンソースとインターネットは多様性が命」ですから,異論のある人はそれぞれの場で異論を展開されると,この世界の「厚み」が増して良いでしょう。

オープンソースの本当の「質」

 「オープンソースの信者」達はオープンソースは品質が良いと言います。その理由として,

・オープンソースを書いている人の技術力は高い
・オープンソースは多くの人の叡智の集合体
・オープンソースには様々なフィードバックがある

 というようなことが挙げられています。これは果して本当でしょうか?

 オープンソースのコードを主体的に読んでみると,「なんじゃこりゃ?」と思うものが少なくありません。正直,とても技術力があるとは思えないようなコードが結構あります。だいたい,私自身も「オープンソースを書いている人」なわけですから,もうそれだけで「オープンソースを書いている人の技術力は高い」は否定されたようなものです。まぁ「お前は例外」と言ってしまっても良いのかも知れませんが,その私をして「なんじゃこりゃ?」と思うコードも少なくないのです*1。使う時にいろいろ不安を感じて直し始めたらキリがなくなってしまったというソフトウエアさえあります。まぁ途中で我に返って,そういった作業はやめてしまいましたが。そういったことができるのがオープンソースのメリットであると共に,それをやって現実逃避をしてしまうのがオープンソースのデメリットでもあるわけです。

 ちょっと前までは,コードを公開している人は「特殊な人」だったので,少数の例外を除けば確かに技術力が高い人が主でした。しかし,オープンソースが浸透したことにより,「とりあえずコードはGPL(や他のオープンソースライセンス)で晒します」というソフトウエアは随分と増えました*2。つまり,オープンソースにすることの心理的な障壁は随分と低くなりました。その結果,オープンソースの絶対数は随分と増えましたが,それと共に「特殊でない人」もオープンソースをすることになり,オープンソースをする人々の技術力の平均値は下がって来たように思います。

 また,オープンソースが珍しいものでなくなってしまった結果,個々のソフトウエアの注目度は低くなっています。「○○会社が××ソフトウエアをオープンソースで公開」という類のニュースは,少し前までは驚きと共に読まれたものですし,「とりあえず試してみるか」と思ったものですが,今は「はいはい」という程度のニュースでしかありません。私くらいスレてしまうと,新製品のリリースを見た時,特にそれが零細ベンチャーの場合には,「なんでオープンソースでないの?」と思ってしまうくらいです*3

 さらに,定番ができた分野では,新参のソフトウエアは見向きもされません。この辺のことは前回書いているのであまり繰り返しませんが,このことにより個々のソフトウエアが使われるチャンスは随分と減りました。つまり,個々のソフトウエアの利用者はあまりいないということが起きています。そうなると,「多くの人の叡智」の大前提である「多くの人に使われる」というところが崩れていますから,「叡智の集合体」になりうるソフトウエアはごく少数ということになります。

 このことはまた,それによって期待されるフィードバックが少ないということになります。つまり,バグレポートを送って来る人も少なければ,パッチの類を送って来る人も少ない。そしてコミュニティもあまり育たない。原作者が孤軍奮闘することになります。

 こうした現実を見て来ると,「オープンソースの信者」が挙げている品質の良い理由というものは,こと新参のソフトウエアに関してはまったく効いて来ないということになります。もちろん新参と言えどもオープンソースですから,コードがオープンになっているというメリットがあるのは確かですし,それによる諸々が期待されないわけではありません。ただ,新参のソフトウエアではそういったことは「まれ」だと思った方がいいでしょう。

 つまり,「実はオープンソースの品質は良くないのではないか」という疑惑があるわけです。そして,少なくともそれは私が実際にいろいろ新参のソフトウエアを試した範囲では,「疑惑は疑惑ではなく真実」だと感じています。

 前回,Freshmeatの話をしました。そこでは日に7,8個くらいのペースで新作が生まれていて,その割には生き残っていないという話をしました。実数は把握していませんが,一度リリースが書かれてそれっきりのソフトウエアも少なからずあるようです。毎日1割程度新作が増えているということは,1年でいったいどれだけになるかとか考え,また実際にそこまでは増えていないということを考えれば,文字通りの多産多死です。

 一般論として,ソフトウエアの品質は時間と共に良くなります。それは,バグが発見される機会が増えて修正されるからですね。「定番ソフト」が愛されるのも,そういった「年月を経て品質が良くなった」結果でもあります。機能に関しては,作った先にどうするかというのは作者の考え方次第ですが,品質に関して言えば年月を経たものの方が良くなります。また,多くの場合,いわゆる「完成度」も高くなります。

 このことは同時に,「書かれてそれっきりのソフトウエア」には品質も完成度も期待できないということになり,私の感じたことと一致します。つまり,「ほとんどのオープンソースは品質が低い」と言っても過言ではないと言うことです。これはどのような形であれ,オープンソースにかかわる人は知っておくべき真実だと思います。あえて言います。「オープンソースのほとんどはカス」であると。

     /ミミミミミミミ川\
   /ミミミミ/\ミ川川|/\
  /ミミミ/     \|/   ヽ
  /三三三|            |
 /三三三>      \ / <|
 |三三三/  〈____  )) __)
  |三(⌒||    \_0>  <__0/
  |ミ(6 |_|       / |\  〉     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
   | し       /   |   |      |              |
   丶|   |       〈  」〉 |    < あえて言おう      |
   |   |      __  /      |    カスであると   |
   |    \      ー  /       \________/
   |     \      |  |   
   | ̄ ̄ ̄ ̄  \___/ 
   | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | ̄|
   |   二二二\_| | |_/二
       二二二__| | |_二|

*1 でも実際に作り上げたという事実は非常に重要です。これについてはいずれまた書きたいと思います。

*2 「とりあえず」のライセンスがGPLというのは,実はいろいろ微妙な問題を孕みます。本当はソフトウエアの性質を考えながらライセンスは選ぶべきです。

*3 ITビジネスを皮算用をするExcelシートを作ってみました。これで計算してみると,商用プロプライエタリのソフトウエアでビジネスをするのは,かなりハードルが高いと言えます。「1人口」のための計算(http://www.nurs.or.jp/~ogochan/essay/archives/1182)