2012年12月9日日曜日

オープンソースでどうやって飯を食うのか?

何度か書いているように、ソフトウェアの世界ではオープンソースという考え方が非常に重要になってきています。
オープンソースはざっくり言えば、コンピュータのアプリやWebのプログラムをそのまま公開してしまうことです。
これまでの価値観で言えば、会社が自社製品の設計図をそのまま公開するなどということはあり得ませんでした。そんなことをすれば、他のメーカーがその技術を盗んでしまい、優位性が無くなると感じるからです。

ところがソフトウェアに関しては、どうもそういう考えは違うのではないか、ということが多くの人に理解されつつあります。
一つにはソフトウェアの量は莫大であるということ。ある技術が以前の技術の上に成り立つような重層的な構造になります。だから、年々ソフトは複雑化し、全ての内容を理解することが難しくなります。設計書を見れば簡単に何をしているか分かる、などということは無いのです。
もう一つは、盗んだ場合、その事実がほぼ明確であるということです。これだけ莫大なソフトウェアの中から純粋にアルゴリズムだけ取り出してそれを拝借するということは事実上無理で、ソフトはほとんど手を入れずに動かさざるを得ません。しかし、そうすれば今度は盗まれたものだということがすぐ分かってしまいます。
ぶっちゃけ言えば、他社の公開されたプログラムを読んで、それを著作権上の問題を回避しつつ、美味しいところだけを盗むということ自体が大変難しいのです。

実際のところ、オープンソースのプログラムを読む人たちは、ほとんど善意でそのプログラムを拡張したり、不具合を直してくれるような人たちです。自分がよいと思うものをより良くしようという健全なモチベーションがなければ、他人の書いたソースコードなんて読みたくもないのです。

しかし、オープンソースは設計書そのものを公開してしまうので、同じものを誰でも作れることになり、そのプログラムを売って商売することが難しくなります。一般的には、プログラム好きな人びとが純粋に世の中の役に立とうと思って、オープンソースを書いていると考えられています。
とはいえ、無収入なのに時間をかけるというのは、仮に趣味と言ったとしても、重要な場所で使われるソフトであれば責任も発生しますから、あまり健全ではありません。それらが広く使われれば使われるほど、本来何らかの報酬があるべきなのです。

以前私は、もういっそのことこういう人たちに税金で食べていってもらったらどうだろう、とか思っていました。
世の中のソフトウェアは全て公開され、そういったソフトが体系立てて保管され、なおかつ誰もが利用できるようになれば、同じようなものを二重に作ることも減りますし、進化のスピードも速くなるし、同じ仕様を実装していてもより良いものが残るようになるでしょう。
そのような目的であれば、それはもはや公共の仕事であるわけで、然るべき収入を世界中の人が保証してあげるべきだと思ったわけです。

もちろん、政府が関わるようなそのような仕組みを作るのは大変なことですし、新たな既得権益が発生してしまうかもしれません。
そして現実には、少し違う流れが起きているようです。
オープンソースとはいえ、それを使いたいと思っている人たちは、プログラムに十分詳しいわけではありません。従って、オープンソースを使って、顧客のニーズに合ったプログラムを作るような仕事が必ず発生します。
そのような人びとは、オープンソースを扱うので、オープンソースそのものに対する開発も行ないます。つまり、顧客に対する最適化を収入源とし、その過程で得た知識でオープンソースそのものの開発を行ないます。

つまりオープンソースを使うシステムは、そのプログラムだけをインストールすれば終わるようなものではダメです。オープンソースは常に目的に対して最適化する必要があり、その部分は個別案件となるのです。そして最適化部分についてはオープンソース化はされません(ライセンスに問題無ければ)。
今のところ、それがオープンソースで飯を食う一般的なスタイルであると感じています。

0 件のコメント:

コメントを投稿