ちょっと硬派なコンピュータフリークのBlogです。

カスタム検索

2010-04-21

真の自由とは?フリーソフトウェアにおける究極の選択。CopyleftかPermissiveか。

オープンソースソフトウェアにとって、ライセンスが何であるかというのは非常に大切なことである。なぜならば、ソフトウェアのライセンスの種類によっては、組み合わせることができるものと、そうでないものがあるからだ。ソフトウェアの利用制限がない「自由なライセンス」として有力なものの中には、Copyleftと呼ばれる種類のものとPermissiveと呼ばれる種類のものがある。いずれも、フリーソフトウェアライセンスとして定義されているライセンス形態であり、Copyleftで代表的なものにはGPL(GNU Public License)、Permissiveの代表格としてはBSDLやMIT Licenseなどが挙げられる。これらは一体全体どちらが真に自由をもたらすソフトウェアライセンスなのであろうか?

Copyleftライセンス

GPLでは「ソフトウェアの自由」を以下のように定義して、これが守られるようにCopyleftという概念を導入した。
  • 自由0:プログラムを任意の目的のために実行する自由。
  • 自由1:プログラムが動作する仕組みを研究し、自分のニーズに合わせて書き換える自由。
  • 自由2:隣人を助けるためにコピーを再頒布する自由。
  • 自由3:プログラムを改良し、改良点を公開して、コミュニティ全体の利益を図る自由。
GPLをはじめとするCopyleftライセンスのコンセプトは至ってシンプルだ。それは「GPLが適用されたソフトウェアを改良したり利用して新たにソフトウェアを作成した場合、そのあなたの作品にもGPLを適用してください」というものだ。ソフトウェアがGPLである限り、上記の自由は保障されることになる。自分の作品にGPL以外のライセンスを適用するという選択肢と引き替えに、そのソフトウェアを利用する人々にとっての自由が保障されるわけである。

Permissiveライセンス

GPL以外のライセンスを適用出来ないだって?!!

Copyleftの話をすると、こういった反応をする人達が居る。彼らの主張はこうだ。「どのような場面でもソフトウェアの再利用が出来ること、つまりライセンス的な自由こそがソフトウェアの自由であるのだ!」と。つまり自由な再利用性こそが至上命題なのだと。自由なライセンスの変更を許可すると、プロプラエタリソフトウェア(平たく言えばクローズドソース)での利用も可能となる。Permissiveライセンス支持者にとって、それこそがオープンソースであり、ソフトウェアの自由というわけだ。

それぞれにおける「自由」の定義

CopyleftとPermissiveはそれぞれ自由の形態であるが、これまで見てきたことをまとめると、それぞれ次のことに主眼をおいたライセンスであると言えるだろう。
  • Copyleft: プログラム実行の自由
  • Permissive: ライセンスの自由
Copyleftは、開発者にとってライセンス選択の幅を制限してしまう(というか一択しかない)のだが、その代わりプログラムを実行する利用者にとって最大の自由をもたらすのである。一方、Permissiveライセンスはライセンスそのものの変更が可能であり、開発者にとって二次利用における最大の自由をもたらすのである。

Permissiveライセンスはユーザーが実行する際に制限を課すことはしない。だが、ライセンスの変更が出来る故に大きな落とし穴がある。

それは、Permissiveライセンスのプログラムがプロプラエタリソフトウェアに利用されてしまった場合だ。プログラムの二次利用によって、ひとたびそのライセンスがプロプラエタリへ変更されてしまうと、その派生物がPermissiveライセンスになることはない。プロプラエタリソフトウェアになってしまえば、そこにはユーザーの自由は存在しないのである。このように、Permissiveライセンスはソフトウェアの再利用性は高いが、ユーザーが利用するという観点からすると自由が制限される可能性を孕んでいるのだ。

Public Domain

Permissiveライセンスと似たような概念として、Public Domainというものがある。PermissiveライセンスとPublic Domainの違いについても述べておこう。

CopyleftライセンスやPermissiveライセンスは、あくまでも「ライセンス」なのである。つまり、その著作物を作成した人が著作権を保持し、さらに他者へライセンス提供しているという、つまりは現行の著作権法に則った形で運用される。その際に適用される「ライセンス」がCopyleftやPermissiveといった形態だということだ。一方、Public Domainは著作権そのものを主張しない。誰の断りもなく自由勝手に利用することが出来るのである。Permissiveよりさらに縛りが緩いと思っていいだろう。

関所

フリーソフトウェアでない多くのプログラムは、利用する際に様々な制限が設けられている。そのような制限は、プログラムを提供する側にとって利益を生み出すような仕組みになっていることがほとんどだ。例えば、「この機能ないしはプログラム本体を利用したければ、私にこれこれいくら払いなさい」などといった具合だ。そのような制限が多ければ多いほど、開発者はそのプログラムから多くの収益を上げることができるだろう。そのような制限はまさに関所のようなものだ。ここから先へ行きたければ金を払え!という。

収益を上げるという観点からすると、サードパーティの開発者に様々な制限を課すアップルの判断などは非常に正しいものだと言える。そのような行動が倫理的に良いかどうかは置いといて。

フリーソフトウェア開発者は霞を食って生きているのか?!

関所型のビジネスは非常に分かり易く、ソフトウェア産業では広く普及しているビジネス手法である。そのため、フリーソフトウェアについての話を聞くと、

フリーソフトウェアなんて開発者の単なる自己満足ではないか!!理想論なんて語るんじゃねーよ!!

というアレルギー反応を起こす人がたまに居るのだが、フリーソフトウェアでお金を儲けることが出来ないわけではない。GPLを利用してどのようなビジネスが考えられるかということについては過去に説明したのだが、改めてその要点だけ以下に再掲しよう。詳細は以前書いたエントリ(GPLとビジネス)を参照のこと。
  • ビジネス1: アフターケア
  • ビジネス2: プロフェッショナルサービス
  • ビジネス3: ソフトウェア開発=プログラマ
  • ビジネス4: 執筆活動、トレーニングなどの知識共有
  • ビジネス5: ユーザー企業

また、フリーソフトウェアであるということは逆に強みであると考えることもできる。利用者や開発者の参入障壁を下げることによって様々なメリットが産み出されるのである。この点については、過去に書いたこちらのエントリ(GPLで広がるビジネスの世界)を参照のこと。

今、この時点で、ライセンスとしてフリーソフトウェアライセンスをチョイスするというのは、非常に戦略的な判断であると言える。その考えは、巷で流行っている書籍「フリー~〈無料〉からお金を生みだす新戦略」などとも通じるものがあるだろう。


Copyleftの奥の手、デュアルライセンス

Copyleftライセンスを用いて収益を上げる奥義としてデュアルライセンスがある。デュアルライセンスとは、同じソフトウェアに対して異なる2つのライセンスを適用するというものだ。つまり、一方ではCopyleftライセンスを、もう一方でプロプラエタリライセンスを適用するのである。Copyleftライセンスには「ライセンスを自由に変更することが出来ない」という制限があり、プロプラエタリソフトウェアをリリースしたい人にとっては「関所」となってしまうだろう。つまり、「プロプラエタリソフトウェアに組み込みたければ金を払ってください」ということだ。デュアルライセンスは、まさにCopyleftを逆手にとったビジネス手法であると言える。

ただし、デュアルライセンスにするためには、既存のCopyleftなフリーソフトウェアを利用することが出来ないという制約がある。そのため、かなりの部分を自ら記述しなければならないことになる。デュアルライセンスの詳細については、過去に書いたエントリ(デュアルライセンスとGPL)も参照のこと。

実は、デュアルライセンスにはもう一つのビジネス形態がある。それは、Copyleftでフリー(自由で無料)なバージョンを提供する一方、より高度な機能を搭載したバージョンをプロプラエタリライセンスで提供するというものだ。「この機能を使いたければお金を払ってください」という、典型的なビジネス手法である。

Permissiveライセンスを用いたビジネス手法

では、Permissiveライセンスを用いるとどのようなビジネスが考えられるだろうか?実は、上で挙げたビジネス1〜ビジネス5の全てがPermissiveライセンスのソフトウェアでも成り立ってしまう。Permissiveライセンスの場合、プロプラエタリライセンスへの変更が自由に出来るため、Copyleftよりもデュアルライセンスビジネスはやりにくいだろう。ただし、Copyleftの場合と同様、より高度な機能を搭載したバージョンをプロプラエタリライセンスで提供するというビジネスは成り立つ。しかもPermissiveの場合には、誰もがそのようなバージョンを作成することが出来るのである。

ただし、Permissiveの場合は誰もがプロプラエタリバージョンを提供出来るが故、互換性のない複数の派生プロダクトが出来てしまうという問題を孕んでいる。如何に互換性を損ねないかということが、プロプラエタリバージョンを開発する際のポイントとなるだろう。

まとめ

それではどちらのライセンスが良いのか?勿体ぶっておいて申し訳ないが、それは答えを出すことが出来ない問いである。CopyleftとPermissiveはどちらも一長一短であり、この世の中にはどちらも必要なライセンスであると俺は思う。そして今、フリー(自由かつ無料という意味において)ソフトウェアはますます重要になってきている。俺はGPLの支持者であるが、世の中の全ての人がGPLを支持するわけではないということも知っている。それと同じく全てがPermissiveになるべきでないということも。ただ、より多くの人により正確にCopyleftとPermissiveの特性を理解して、適切な選択をして貰いたいと願っているのである。(そして願わくば、GPLに対するFUDがなくならんことを!)

0 コメント:

コメントを投稿