現在地 HOME > 掲示板 > IT4 > 200.html ★阿修羅♪ |
|
ドキュメントの紹介 その5
前回に続いてオープンソースに関してです。今回は OpenOffice.org の文書です。
1年前の OpenOffice は日本語化の面でやっかいで、バグも多く「使えないな」
と感じましたが、最近のバージョンではかなり改善されています。
Word や Excel は「使いこなす」と言える程使っていないので、しっかりした比較は
できませんが MSOffice は近々捨てちゃってよくなりそうです。
この文書も一部だけの紹介ですので原本を参照してください。
http://oooug.jp/start/open/open.html
↓↓↓↓↓↓↓↓ 以下引用 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
○オープンソースの考え方
ソースコードが誰でも入手できたらどうでしょうか。そこからバイナリーコードを作るのは簡単だし、それをコピーするのはもっと簡単ですね。それに、異なるコンピュータの間でも、ソースコードがあれば比較的簡単にプログラムを移植できます。
ここでは、ソースコードの扱い方を中心にして、オープンソースの考え方を解説します。
◎バイナリーコードが自由にコピーできるとしたら
バイナリーコードが無料で配布されたらどうなるか、ちょっと考えてみましょう。バイナリーコードが必要な人は、自由に無料でコピーできるのです。
当然ですが、もう誰もソフトウェアなんか買いませんよね。ソフトウェア開発企業は大損です。ということは、開発にお金がかけられません。せっかく無料で手に入っても、高機能なソフトウェアはなくなってしまうかも知れません。
実はこれ、無料で配布されているオンラインソフトと同じですよね。一般には「フリーソフト」と呼ばれています。
でも、バイナリーコードが自由にコピーできるだけでは、プログラムの開発には、あまり影響がありません。もしも、そのプログラムの不具合を直したい、機能を追加したいと思っても、バイナリーコードだけでは大変です。
◎ソースコードを公開する
では、ソースコードが公開されていたらどうでしょう。そこからバイナリーコードを作ってそれを配っても、費用はほとんどかかりません。必要なら、自由に改良できるでしょう。
ソースコードを公開することは、コンピュータの黎明期から、主に大学の研究室を中心に行われてきました。
研究者の間では、自分の研究成果を非公開にすることはありません。それでは、他の研究者に評価してもらえないからです。コンピュータに関する研究では、その時にソースコードも公開するのが一般的でした。研究室同士で、同じコンピュータを持っているとは限りません。そこで、ソースコードを公開することで、コンピュータの種類が違っていてもプログラムを動かせるようにしたのです。
ソースコードが公開されて自由に使えると、プログラムの改良がある程度解消します。もしも、問題や改良点があるなら、それを自分でプログラムすればいいのです。異なるコンピュータに移植しても良いでしょうし、もっと高機能なプログラムをどんどん開発しても良いでしょう。
◎ソースコードの公開方法
ソースコードを公開する方法には、いくつかの種類があります。ただ公開するだけでなく、どんな場合に使って良いか、公開する人が条件を定めるのです。このような使用条件もライセンスと呼ばれました。
例えば、アメリカには「パブリックドメイン」という公開方式があります。これは、ソースコードの著作権を放棄したもので、そのプログラムを誰でも自由に使用・配布・改良できました。
しかし、この考え方には欠点がありました。著作権を放棄したために、それが企業の製品に組み込まれ、その改良版を自社の著作物として主張できたのです。これでは、せっかくソースコードを公開していても、無駄になってしまいます。
また、日本の国内法では、そもそも著作権の一部である著作人格権を放棄できないので、パブリックドメインは実現できません。
◎ソースコードのコピーレフト
リチャード・ストールマンは、コンピュータの世界では知らない人はいないという伝説的な人物です。MIT(マサチューセッツ工科大学)のAIラボという有名なコンピュータ研究所で活躍し、Emacsという高性能なエディタを開発したことで知られています。
このストールマンが、パブリックドメインに変わる新しいソースコードの公開方法「コピーレフト」を考え出しました。
[コピーレフト]
プログラムを作ったら、ソースコードを必ず公開する
このソースコードの著作権は放棄しない
でも、次の条件を守る限り、自由に使用・改良・配布して良い
条件:改良したソースコードに、まったく同じ条件を付けること
コピーレフトでは、パブリックドメインと違って、著作権は放棄しません。
でも、ソースコードを公開します。そのソースコードは、自由に使用・配布・改良ができます。そして、その改良版も、同じように使用・改良配布が自由で「ただし改良したソースコードは、同じ条件を付けること」とするのです。だから、この改良版の改良版も、同じ条件を付けなくてはなりません。これがずーっと続くのです(*2-1)。
「コピーレフト」(CopyLeft)という名前は、著作権のコピーライト(CopyRight)をもじったものです。Right(右)とLeft(左)をかけた駄洒落になっているのです(*2-2)。
ストールマンは、この作戦を本当に実行しました。
これをGNUプロジェクトと名付けて、それを支援する団体「フリーソフトウェア財団」(FSF)を設立しました。また、自分が開発したEmacsに加えて、gcc(GNU C コンパイラ)を開発し、広くユーザーに公開しました。このgccは、コンパイラの代名詞とも言える存在になっています。さらに、コピーレフトの定義を弁護士に読んでもらい、正式の法律文書にした上で「GNU一般許諾ライセンス」として公開しました。このライセンスは「GPL」と呼ばれています。
そして、この運動が多くの成果を上げたのです。
◎Linuxとコピーレフト
現在、数多くのプログラムが、GPLの元で公開されています。中でも、Linuxはその最大の成果でしょう。
Linuxは、ソースコードがGPLの元で公開されているUNIX互換のOSです。本来「Linux」は、カーネル(kernel)と呼ばれるOSの核を示す言葉ですが、そのLinuxカーネル上で動作するシステム全体も同じ名前で呼ばれています。1991年、当時ヘルシンキ大学の大学院生だったリーナス・トーバルズによって開発がスタートし、現在でも全世界のボランティア開発者によって改良が続けられています。何より、非常に安定して動作するという特長を持っており、インターネットの基幹業務で高い人気を集めています。
Linuxカーネルは、開発中のソースコードがインターネットで公開されています。誰でも、自由に使用・改良・配布ができます。もしも、不具合や改良点があるなら、それを自分でプログラムすればいいのです。もちろん、改良したソースコードはGPLに基づき公開する必要があります。このフィードバックを集約することで、Linuxの開発は、猛スピードで進んできたのです。
誰でも自由に改良できると聞くと、Linuxはバラバラに開発されていると思われがちです。でも、実際にはそうではありません。インターネットで連絡を取りながら、緩やかな組織を形成して、技術を統合しています。このような組織は、開発コミュニティと呼ばれます。
プログラムの開発で大きな時間をとられるのは、動作チェックとその修正です。これを効率よく片づけるには、できるだけたくさんのコンピュータで動作チェックします。これは企業でも大変なことです。しかし、インターネットを利用して同時に作業を進めれば、この動作チェックはすぐに片づけられます。コストを気にする企業では不可能なほど、膨大なフィードバックが得られるのです。
また、動作チェックをして不具合を見つけた本人が、公開されているソースコードを調べて、その不具合を自分で修正してくれたら、作業はもっと早くなります。
Linuxは、ソースコードの公開とインターネットを上手に組み合わせることで、驚くようなスピードで開発が進み、高い安定性を得たのです。
◎オープンソースというコンセプト
Linuxの成功を受けて、ソースコードを公開するというやり方が注目されました。
特に、エリック・レイモンドの論文「伽藍とバザール」で、Linuxの開発手法と効果が詳しく解説されました(*2-3)。
『ソースコードを公開して、プログラムを自由に使用・修正・配布できるようにする』
この考え方につけられた名前が、オープンソースです。そのためコピーレフトだけでなく、パブリックドメインやBSDライセンスも含まれていることになります。
「ソースコード」の意味がわかれば、今度は理解できますよね。でも、コピーレフトとは、どう違うんでしょう。なぜ「オープンソース」なんて呼ぶんでしょう。
ソースコードを公開するソフトウェアのライセンスは、GPLだけではありません。この他にも、色々なソフトウェアがソースコードと共に独自のライセンスで公開されてきました。
そこで「オープンソース」という呼び名が、オープンソース・ソフトウェア・イニシアティブ(OSI)によって提唱されました。OSIは、前述の「伽藍とバザール」を書いたエリック・レイモンドが中心になって設立されたオープンソースの推進団体です。OSIは、これまでの色々なソースコード公開ライセンスに統一的な呼び名を付け、その考え方を明確に定義したのです。そして、ビジネスでのオープンソースソフトウェアの普及を目指しました(*2-4)。
オープンソースであるプログラムの配布条件は、いくつかのの基準を満たしていなければなりません。これを簡単に説明すると次のようになります。
・ソースコードを公開する
・自由に再配布できる
・ソースコードは修正して配布してもいい
・ソースコードの出所を明示する
・個人や集団によって差別しない
・使用する分野によって差別しない
・他の契約との組み合わせで、条件を変えない
・特定製品でのみ有効なライセンスの禁止
・ライセンスは、ほかのソフトウェアのライセンスに干渉しない
GPLと比べて、条件がずいぶんややこしくなりましたが、これはGPLの条件を緩くしたものなのです。オープンソースの条件では、改良版も同じ条件で配布する必要がありません。元になるソースコードのライセンスの範囲内で、独自に決められるのです。例えば、オープンソースなライセンスの一つである「BSD ライセンス」では、改良したソースコードを再配布する必要がありません(*2-5)。
オープンソースの定義では独自のライセンスを定義している訳ではありません。代わりに、GPLなどのライセンスが、この条件に合っているかを判断して、オープンソースの認定マークを発行しています。
Linuxの成功が注目されると共に、オープンソースの考え方も広がりました。また、その品質の高さから、他のオープンソースソフトウェアも普及していきました。現在では、多くの企業がオープンソースソフトウェアを開発したり、利用しています。
オフィスソフトのOpenOffice.orgとブラウザのMozillaは、このようなオープンソースソフトウェアです。
これまで、オープンソースソフトウェアは、一般ユーザーが意識して使うことはありませんでした。Linuxも、いわば縁の下の力持ちとして普及してきたのです。
それが、OpenOffice.orgとMozillaの登場で大きく変わろうとしています。Linuxを配布している人たちも、一般のユーザーが使えるLinuxに力を注ぎ始めています。
○一般ユーザーのためのオープンソース
オープンソースは、コンピュータをもっと良い物にするのに役立ちます。これは、一般ユーザーにとっても、大きなメリットをもたらします。
◎フリーソフトとオープンソースの違い
無料で自由に使えるプログラムというと、パソコンの一般ユーザーは、無料で使える「フリーソフト」や「フリーウェア」を思い浮かべるでしょう。この言葉は、無料ソフトの代名詞としてすっかり定着してしまいました。
また、インターネットでダウンロードできる「オンラインソフト」も有名ですね。継続的に使用する場合に料金を払う「シェアウェア」というのもあります。また、フリーソフトでオンラインソフトというのも、たくさん存在します。
でも、オープンソースソフトウェアは、これとはずいぶん違います。フリーソフトもシェアウェアも、ソースコードは公開されるとは限りません。これに対して、オープンソースでは、必ずソースコードが公開されています。
オープンソースソフトウェアは、無料で自由にダウンロードできますから、フリーソフトでもあり、オンラインソフトでもあります。でも、その根本の発想は違います。
◎オープンソースで開発が進む
オープンソースでソースコードが公開されていると、開発者本人が改良できなくても、誰か別の人が手を付けられます。オープンソースで公開されているということは、他の人の改良を奨励しているという意思表示でもあります。改良版を配布しても構いませんから、改良者は、自分の作業を無駄にすることがありません。
すでにプログラムが改良されているなら、オリジナルのプログラムと改良版を統合するのも、決して難しくはありません。そんな開発者が集まれば、プログラムのバージョンアップだって、組織的に進むでしょう。
一般に開発コミュニティでは、ソースコードの改良が奨励されます。ユーザーが、「あの機能が欲しい」「この機能が便利だと思う」と言うだけでは、プログラムは良い物になっていきません。その機能を誰かがソースコードに盛り込むことが必要だからです。そして、改良版のソースコードがひとたび採用されたら、その人の名前は永遠に記録に残されるのです。
◎オープンソースは無料?
オープンソースの配布条件は、「自由に再配布できる」と決められているだけです。
つまり、無料でも良いし、有料でも良いのです。オープンソースのソフトウェアは配布に際して手数料を取っても構いません。手数料はいくらでも構いませんが、高すぎれば、他の人から入手するでしょう。買った相手がそれを再配布しても良いからです。
現在、オープンソースでソフトウェアを開発している企業がたくさん存在します。このような企業は、ソフトウェアの販売ではなく、有償サポートで利益を上げる場合が多いようです。また、他のプラットフォームへの移植を有償で請け負う企業や、自社で利用するプログラムをオープンソース化する企業もあります(*3-1)。
オープンソースで開発すると言うことは、プログラマが無償で働くと言うことではありません。オープンソースのソフトウェアを販売している会社は、プログラマに給料を払って開発に参加させています。その成果でソフトウェアが良い物になれば、さらに販売がのびるからです。
もちろん、腕に覚えのある人が無償で働く場合もあるでしょう。でも、そんな優秀なプログラマなら、世界中から求人が殺到するはずです。
◎一般ユーザーにとってのオープンソース
では、一般のユーザーにとってオープンソースはどんなメリットがあるのでしょう。
・自由に使える
・コミュニティで開発が進み高性能になる > 安心して使える
・無料で入手可能
ソースコードが公開されないソフトウェアの場合は、その情報を独占している人の状況に縛られることになります。それが企業なら、もしかしたら、来年はライセンス料を値上げされるかも知れません。突然倒産してサポートを受けられなくなるかも知れません。でも、オープンソースになっていれば、ソースコードが公開されています。だから、誰かが改良できます。問題があれば調べることもできます。オープンソースは、ソフトウェアを情報の独占から解放する手段なのです。
一般のユーザーにとっても安心ですね。
もちろん、ソフトウェアが無料で入手できるというのも大きな魅力です。
ただし、サポートは有料かも知れません。
できるだけお金をかけずにサポートを受けたいなら、一番良いのは、あなたがサポートする側に回ることでしょう。安定してサポートが受けられれば、もっとたくさんの人が使うようになって、さらに安心して使えるようになるはずです。
プログラムを改良するのは、誰でもできることではありません。でも、質問に答えたり、情報を整理するのなら、あなたにもできることがあるはずです。
サポートする人が存在すれば、さらに多くの人が安心してオープンソースソフトウェアを使えるようになるでしょう。たくさんの人が集まれば、問題を調べたり、質問に答えるのも、それほど手間ではありません。インターネットを介すれば、大した費用をかけずにユーザーをサポートできるはずです。例えば、 OpenOffice.org日本ユーザー会が、そういう存在です(*3-2)。
◎ソースコードがあってのオープンソース
一般のパソコンユーザーにとって、本当に欲しいのは無料のバイナリーコードでしょう。そして、そのプログラムが自由に使えて高性能なら言うことはありません。ですから、ソースコードが公開されるかどうかは、あまり気にならないと思います。
でも、そのプログラムの質を高めるためには、ソースコードは欠かせない存在です。あなたが、質の高いプログラムを自由に使いたいなら、ソースコードの公開にこだわるべきです。オープンソースになっていれば、そのプログラムはさらに進化する可能性を秘めているからです。
それに、もうひとつ理解して欲しいことがあります。
オープンソースにおいては、ユーザーが「あの機能が欲しい」「この機能が便利だと思う」と言うだけでは、プログラムは良い物になっていきません。その機能を誰かがソースコードに盛り込むことが必要だからです。開発コミュニティは、オープンソースソフトウェアをそんなふうに進化させるために存在しています。
あなたにも、このコミュニティに貢献できることはないでしょうか。もちろん、誰でもプログラムを作れるわけではありません。でも、オープンソースソフトウェアを良くするために、あなたにも手伝って欲しいのです。