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

カスタム検索

2008-12-13

フリーソフトウェアとオープンソースソフトウェア

最近はオープンソースという言葉が流行ってしまっているが、これはフリー(自由な)ソフトウェアを愛する人達にとっては嘆かわしいことである。特に問題なのが、フリーソフトウェアとオープンソースソフトウェアが同じものだと考えている人が多いということだ。

GPL?ああ、それってオープンソースのライセンスですよね?

などという言葉を耳にするたび

テメーの耳は塞がってんのか?!ドリルでグリグリ耳の穴かっぽじって直径5倍に広げてから耳元に拡声器を押しあてて24時間寝かさず丁寧に説明したろか?!!

などと思ったりはしないが、しっかりと両者違いを認識してもらいたいとは思わずにはいられない。オープンソースソフトウェアとフリーソフトウェアというのは明確に異なる。そして、GPLとはフリーソフトウェアを実現するためのライセンスなのである。このブログを読んだ諸氏は必ずその違いを明確に認識して頂きたい。

オープンソースライセンスとは、まさにソースコードの公開を意図したライセンスである。ソースコードをどのように使うかということについて規定がある場合もあるが、BSDライセンスのようにほとんど規定のないライセンスもある。するとどういうことが起こるか?BSDライセンスのソフトウェアを改良したり組み込んだりして新たなソフトウェアを作成した場合、クレジット表示さえ残せば別のライセンスでリリースするが可能なのである。もちろんソースコードを公開しなくても良い。つまり、BSDライセンスは私有ソフトウェアを許容してしまうのである。

私有ソフトウェアはソースコードが公開されていることのメリットを台無しにしてしまう。おおもとがBSDライセンスであっても、あるソフトウェアから多くの異なるバージョンの私有ソフトウェアが誕生することになる。そして、それらは往々にして互換性を損なってしまう。互換性はソフトウェアにとって非常に大切な性質であり、互換性を損なうことはソフトウェアを利用する全てのユーザ、つまり社会にとっての損失に繋がる。

互換性が損なわれてしまうと、例えばこういうことが起きる。私有ライセンスのワープロソフトウェアなどでは、過去のバージョンで作成したファイルが最新バージョンで正常に読み込むことが出来ないというような事態が発生してしまう。しかし、ソースコードが公開されていて、なおかつ自由に改良することが許可されていれば、問題のある箇所を自分で、またはコミュニティの誰かの手によって修正することが可能となる。

GPLを利用すれば上記のような問題は起こらない。GPLでは改良したり組み込んだりして新たなソフトウェアを作成した場合、さらにそのソフトウェアに対してGPLライセンスの適用とソースコードの公開を義務付けている。これによって何が起こるか?あるソフトウェアをたくさんの人が改良したとしても、全員がGPLライセンスでソースコードを公開することになる。すると、非互換の部分があったとしても、お互いにソースコードを参照しているので拡張した箇所をお互いに取り入れることができる。そう、まさにソースコードをコピペするなどの手法で。(実際の開発ではコピペで済むことはあり得ないが、ソースコードが参照できないのでは手のつけようがない。ソースコードを参照できれば、コピ−&ペーストしたものを出発点に修正するなどという荒技も可能になる。)なので互換性の問題は発生しにくくなるのである。

自分が所有しているデータ(それがワープロ文書であれ、データベースのデータファイルであれ、楽曲ファイルであれ)を自由に参照、変更したいと人は思うものであり、そのためにはデータを扱うプログラムの自由が重要なのだ。

GPLは自由を獲得するためのライセンスなのである。自分が自由を享受できる代わりに、他者の自由も保障する。以下のコンセプトでそれを実現しようというのである。

 自由0:プログラムを任意の目的のために実行する自由。
 自由1:プログラムが動作する仕組みを研究し、自分のニーズに合わせて書き換える自由。
 自由2:隣人を助けるためにコピーを再頒布する自由。
 自由3:プログラムを改良し、改良点を公開して、コミュニティ全体の利益を図る自由。

従って、オープンソースソフトウェアとフリーソフトウェアの違いは以下のようになる。

 オープンソースソフトウェア=ソースコードが一部でも公開されたソフトウェア
 フリーソフトウェア=ユーザに自由をもたらすソフトウェア

0 コメント:

コメントを投稿