「オープンソース」と「フリーソフトウェア」。この二つは似ているようで決定的に違う。
「オープンソース」は言葉として「ソースが見られる」というただ一つの意味しか持ち得ないが、「フリーソフトウェア」はプログラムを使う人の「自由」を求める言葉だ。
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の記事を読んで随分印象が変わった。「自由」であることの価値を認めるならば、「オープンソース」と言う代わりに「フリーソフトウェア」という言葉を使うことで、より正確な意思表示ができるように思う。
3 件のコメント:
そうなんですよね.GPLのソフトは有料でも配布できるんです.
実際それは難しいので,ソフトの代金ではなく,サポート料として課金するケースが多いと思います.
『「オープンソース」は言葉として「ソースが見られる」というただ一つの意味しか持ち得ないが、』は、間違いでないとしても、かなり誤解を招く表現でしょう。通常、オープンソースという言葉は、オープンソースソフトウェアの定義に従って公開されているソフトウェアのことですから。
> Satoshiさん
もう少し「オープンソース」をわかりやすく表現する方法はないものでしょうか。。。 「オープンソース」とは「オープンソースの定義にしたがって公開されるソフトウェア」だというだけだと、個々のライセンスに応じて定義が違ってしまいます。
オープンソースライセンスの共通項を考えてみると、「ソースを公開」「自由に使える」「自由に改変できる」「自由に配布できる」などだと思われるので、確かに基本的な部分で「フリーソフトウェア」と要求するものは違わないですね。
恐らくStallmanは、「オープンソース」という言葉を使う人たちが、フリーソフトウェア運動の当初の目的を知らずに使っているケースを多く目にしているのではないかと思います。
コメントを投稿