「オープンソース」と「フリーソフトウェア」。この二つは似ているようで決定的に違う。
「オープンソース」は言葉として「ソースが見られる」というただ一つの意味しか持ち得ないが、「フリーソフトウェア」はプログラムを使う人の「自由」を求める言葉だ。
Communications of ACMにRichard Stallmanが「オープンソースではだめなんだ」と訴える記事を書いている。ここで言う「フリー」とは、「無料(タダ)」という意味では決してない。ソフトウェアを使う自由、コードについて学び、変更する自由、そして変更の有無に関わらずソフトウェアのコピーを配布する自由のことだ。
1983年から始まったフリーソフトウェアを啓蒙する運動のおかげで、GNUのツール群や現在のLinuxがあり、これなしには今のGoogleの姿もなかっただろう。自由に使えるOS無しには大規模クラスタの運用などとても叶わないし、検索エンジンなどを通してGoogleが世の中に与えている社会的価値はとてつもなく大きい。「フリーソフトウェア」が目指すのはそういった「社会的な価値」の向上だ。オープンソース開発では、ソースを公開することで広くユーザー・開発者を集めソフトウェアの品質向上につなげているが、必ずしもそれが「フリーソフトウェア」の目標というわけではない。(なぜならオープンソースでなくても、品質の良い製品を作って売り続けている会社があることは皆様もよく知っているはずだ)
僕も勘違いしていたのだが、GNU Public License (GPL)を使うのが「フリーソフトウェア」というのも誤解である。GPLとは「ソフトウェアを使う、ソースコードを見る、改変する、再配布する自由」を保証するライセンスで、GPLでライセンスされたソフトウェアを使ったコードは必ずGPLでライセンスしなくてはいけないという制限を課している。企業ではこの強い制限を嫌って、より制約の緩いオープンソースライセンスであるBSDやApache Licenseなどを使うこともある。しかし、GPLはあくまで「フリーソフトウェア」の概念を普及するための手段であって、他のオープンソースライセンスを使っていても「フリーソフトウェア」とみなすことはできる。
「フリーソフトウェア」の敵はあくまで「使う人の自由を制限する独占的なソフトウェア」だ。いくらオープンソースであっても、DRM(メディアのコピーを制限するプログラム)のようなものは、使う人の自由を制限するので決して「フリーソフトウェア」にはなりえない。
「フリーソフトウェア」が目指すものはいわば「表現の自由 (free speech)」であって、決して作ったものを「無料(タダ)でよこせ(free beer)」と要求することではない。確かに現実問題として「Eric Sink on the Business of Software」にもあるように、ソースを公開してビジネスを成立させるのは、不可能ではないものの、非常に難しくなる。しかしながら、作ったプログラムを独占して目先の利益を追求することは、より長い目で見るともっと大きな社会的価値を逃しているのかもしれない。
今まで「フリーソフトウェア」運動は、単にMicrosoftのような企業に反抗するためだけのものかと思っていたが、今回のStallmanの記事を読んで随分印象が変わった。「自由」であることの価値を認めるならば、「オープンソース」と言う代わりに「フリーソフトウェア」という言葉を使うことで、より正確な意思表示ができるように思う。