プログラマがオープンソース・ソフトウェアを書く理由
創造性は確かに重要な要素ではあるが、オープンソース・コミュニティに参加する唯一の動機とは言えない。
オープンソースのコードを書いている人々の大部分は、仕事の一部としてオープンソースに関わっている。Apacheはもともと、信頼性が高く、かつ低コストなWebサーバを必要としていたネットワーク管理者やプログラマたちによって書かれ、現在も維持されている。それぞれ独力で開発するよりも、みんなで知恵を出し合ったほうがいいと考えたのが始まりだ。また、Linuxカーネルに加えられてきた改良の多くも、何らかの形でLinuxを使用している企業(小規模なコンサルティング会社から、IBM、HP、Computer Associatesなどの多国籍企業まで)で働くプログラマたちによるものだ。IntelとAMDは、Linuxカーネルがマルチプロセッサに対応し、64ビットCPUをサポートできるよう協力した。 また、 DARPA(国防総省国防高等研究事業局) は、私も利用している ReiserFS ジャーナリング・ファイルシステムの開発費用の一部を提供し、さらに OpenBSD と、OpenBSDから生まれた OpenSSH などのセキュリティ機能(私はこちらも利用している)もサポートしてきた。しかし最近になって、OpenBSDのプロジェクト・リーダであるTheo DeRaadtが公に出したコメントに 問題があるとし、 OpenBSDに提供していた資金の一部またはすべてを引き上げるという。
一方、商用製品の「基礎」となるフリー/オープンソース・ソフトウェアの開発に携わる開発者もかなりの人数がおり、現在も増え続けている。たとえば、 OpenOffice の開発は Sun Microsystems がスポンサーになっている。OpenOfficeはフリーソフトだが、SunはOpenOfficeを改良して、商用の StarOffice を販売している。 もう1つの例として、 MySQL には、フリーと商用の2種類がある。商用バージョンには、設定ツールやその他のプロプライエタリな追加機能、そして、やはりデュアルライセンス、デュアルブランドに分類される、人気のWebコンテンツ管理やEコマースのパッケージがいくつも付属している。これは、以前の Adobe のマーケティング手法を、正式かつ合法にしたようなものだ。Adobeは、ホーム・ユーザや駆け出しのグラフィック・アーティストなどによるPhotoshopの「海賊版」には目をつぶっていた。なぜなら、このようなユーザがPhotoshopに親しんでいれば、いつか彼らが予算のある会社で職に就いたときに、Photoshopを購入するよう上司に掛け合ってくれるはずだからだ。
研究者たちも、オープンソースに多くの貢献をしている。天文学者は天文学のプログラムを書いているし、エンジニアはエンジニアリングのプログラムを、経済学者は経済モデルのプログラムを書いている。当然、このようなソフトウェアは何らかの形で研究に利用され、ピア・レビューの対象となるので、オープンソースであるのが普通だ。また、実習を兼ねてオープンソースのコードを書く学生も多く、中には非常によくできているものもある。
オープンソースのプログラム開発におけるもう1つの大きな動機は、「○○ができるプログラムが欲しい」という必要性だ。そのようなプログラムが存在しない場合や、あまりに高くて買うことができない場合は、同じようなプログラムを求めている他の人々の協力を仰いで、自分でプログラムを書くことになる。Linuxのケースがこれだ。Linus Tovaldsは大学生時代、自分のホームPCで学習用に使うことのできる、安価な、もしくは無料のUnixライクなOSが欲しいと思っていた。そして、自分で作ろうと思い立ったのだ。同じものを求めていた世界中の多くの人々が開発への協力を申し出た。Free Software Foundationが開発したGNUツールが追加されたことで、Linuxカーネルは、現在「Linux OS」(正確には「GNU/Linux」)と呼ばれるものの心臓部となった。その後、多くの企業ユーザもLinuxの開発に協力するようになったが、これは単なる相乗効果で、彼らは世のため人のためではなく、自分たちの利便のためにLinux開発に関わったのだ。
Free Software Foundation (FSF)は、だれもが利用できるフリーソフトウェアの開発を目的に設立された。これは、FSFが掲げる不変のゴールである。一部の人がコードを提供し、その他の人々(FSFやスポンサー企業、そしてユーザ)が金銭を提供する。皆のためになるソフトウェアを開発しているプログラマに対して、FSFが報酬を支払う。これはたとえば、だれもがクラシック音楽に触れられるよう、公園で開かれるオーケストラの無料コンサートをサポートするのとなんら変わりのない行為だ。
オープンソースのプログラム開発で魅力的なのは、プロジェクトに名を連ねることで、履歴書に箔が付くということだ。また、オープンソース・プロジェクトは、若いプログラマにとって貴重な経験になるだけでなく、採用する側が、採用候補者の書いた ソースコード を直接見て評価できるということも意味する。候補者がプロプライエタリ・ソフトウェアの開発経験しかなかったら、これは不可能だ。さらに、自分が開発したオープンソース・プロジェクトが商用ソフトウェアとしてリリースされ、大金を手にできる可能性もある。例を挙げるなら、セキュリティの専門家であるMarty Roeschは、もともと趣味で開発したオープンソースの侵入検知システム Snort を基にして、 ビジネスを成功させた。
自分のソフトウェアをオープンソース・ライセンスにするということは、そのプログラムを売ったり配布したりした相手がソースコードにアクセスでき、さらにはそのコードを変更したり、再配布したりできるということを意味するのであって、必ずしも、昼間は生活のためにガソリンスタンドでアルバイトをし、その後徹夜で何の見返りもないコーディングをしなければならないというわけではない。自分が開発した(あるいは開発に協力した)フリーソフトウェアに関して、特定の目的に沿うように変更してほしいという申し出が、Citibankなどの企業や、商務省などの政府機関からあった場合には、その作業を無償で行う必要はどこにもない。
プロプライエタリのベンダは、顧客である企業や政府に対し、プログラムのカスタマイズに法外な値段を要求する。この値段は、ベースとなるソフトウェアのライセンス料よりもずっと高いのが普通だ。賢いオープンソースのプログラマたちは、カスタマイズ、インストール、サポートサービスの代金として、プロプライエタリのベンダと同じ額を要求しても、ライセンス料を取らないので、価格中心の入札競争ではプロプライエタリに勝てると判断した。これなら、最低限必要な額よりも多くの利益を手にすることができる。
つまり、利他主義や、純粋な創造の楽しみ以外にも、オープンソースのソフトウェアを開発する理由はたくさんある。中には、決して利他的とは言えないものもあり、見返りを得るという点ではプロプライエタリ・ソフトウェアと変わらない。これも、オープンソース・ソフトウェアを書く正当な理由である。