私くらいスレてしまうと,新製品のリリースを見た時,特にそれが零細ベンチャーの場合には,「なんでオープンソースでないの?」と思ってしまうくらいです。
全くですな(笑)。
私がなぜオープンソースでないと関心がもてないのかというと、 最大の理由は、それじゃ外の人にとっては何も変わらないからだと思います。 既存のプロプライエタリソフトウェアがまた別のプロプライエタリに置き換わったところで、何も改善されず、何の利益も感じられません。 だからどうでもいいと思ってしまうわけです。 もちろん、それで自分の会社が儲かる人たちにとっては興味津々なんでしょうけど、そういう限られた人々以外の大多数にとっては関係がないんですね。
技術者はどうしても技術偏重気味になりがち。 我々の製品ならあれができる、これができる、もっと速い、もっとわかりやすいはずだ、などなどと技術べったりの視点から物事を捉えてしまう癖があります。 しかし、普通のユーザにとっては「だから何?」って言いたくなる程度のことが多いのです。 今のままでも十分満足しているし、とか、もっと速くないと困るようならハードウェアをリプレースするだけでOK、とか。
こういう傾向はとりわけマイクロ・プログラミングに夢中になるタイプの人に多いようです。 マイクロ・プログラミングというのは、俺用語で、 ちっこい計算中心の問題解決型プログラミングのことで、 例えば、Project Euler みたいな。 そういう世界では、設計(デザイン)とかユーザビリティとか、 本物のアプリケーションで必要になる重要な要素が欠け落ちていて、 ひたすらアルゴリズムとかコーディングに集中します。 ソフトウェア開発の最大の要素である保守とも無縁なので、 書き捨てコードを乱造するだけってことになります。
そういう世界を否定する気はない、 というのもそれで身につくことも少なくないからなんですね。 しかしそれだけでも片手落ちだと思うんです。
実際ですね、GRUBが広まった理由も誤解されていることが多い気がします。 高機能であるとかね。 そういうのはかなりコンピュータに詳しい人には意味があることですが、 他から乗り換えさせるほどの強力な動機付けにはならないのですよ。
じゃあどうしてこうなったかというと、 最初は「今までのものじゃ、ハードウェアを交換しても解決できない問題がGRUBならやれる」ってことだったんですね。 ブートローダの場合、解決できないっていうのは、要するに起動もしないってことを意味しているので、とても切実なわけです。 技術的にいえば、LBAのサポートでディスクのアドレッシングを広げられるってことなんですが、そんなことは普通の人にはどうでもよくって、 要するに動くかどうかだったのです。
LILOなんかもやがてLBAをサポートしたので、それで普及が止まってもよさそうなものだったのですが、 ディストリビューションの開発者がこぞって採用するようになって、 ますます普及しました。 それはなんでかというと、シェルが原因だったんです。 つまりですね、サポートを提供している会社だと、 リモートでブートしない問題を手伝ってあげなきゃいけませんが、 ブートしないってことはネットワーク越しにログインして直してあげるってこともできないわけで、 電話とかチャットとかで、よくわかっていないユーザにやり方を教えてあげないといけないんです。 LILOとかだと、「じゃあLiveCDで起動してから、ここをviとかでいじって...」とか言わなきゃいけなくって、そんなことができるユーザはあんまりいないし、テストするのに手間暇がかかりすぎます。 GRUBだと、「cを押して、コマンドをxxxxとタイプしてみて」とか言えば終わりなので、ずっとサポートが楽になったのです。
技術者は「じゃあ、やっぱり機能で選ばれたわけじゃん」とか思うかもしれませんが、 視点がずいぶんと違います。 あくまでその方がサポートしやすかったから、であって、 高機能だから、というのとは捉え方が異なります。 私にいわせれば、高機能であることは、引き返させない理由には使えるかもしれませんが、乗り換えさせる理由には使えないんです。
長々書いてきましたが、私がプロプライエタリであっても意味があると思える状況は次の三つだけです。