前書き

多くの人が忘れがちなソフトウェア開発の1つの側面は、ソフトウェアのライセンス方法です。 ソフトウェアライセンスは、ライセンシー(エンドユーザー)がコードをどのように使用および配布できるかを指示します。これは、テクノロジーの採用範囲に大きな影響を与える可能性があります。 最新のソフトウェアのほとんどは、発行元または作成者がソフトウェアの知的財産権を保持できるようにする独自のライセンスの下で販売されています。

ただし、これにより、ソフトウェア発行者の手に不必要なレベルの制御がもたらされると主張する別の視点があります。 ライセンシーがソフトウェアのソースコードをコピーおよび変更することを防ぐことにより、独自のソフトウェア発行者はイノベーションを抑制し、新しい技術の潜在的な成長を抑制します。 このスタンスは、ソフトウェアのソースコードを学習、変更、および好みに応じて共有する権利をユーザーに付与するライセンスの作成に影響を与えました。 このようにライセンスされたソフトウェアは、通常、「フリーソフトウェア」または「オープンソースソフトウェア」の2つの名前のいずれかで知られています。

大まかに言って、両方の用語は同じことを指します。つまり、使用方法にほとんど制限のないソフトウェアです。 支持者の観点から見ると、無料ソフトウェアとオープンソースソフトウェアはどちらも、独自のソフトウェアよりも安全で効率的であり、より確実に動作します。 ただし、同じものに2つのラベルがあるのはなぜですか? 答えには、少し歴史があり、2つの別個の、しかし密接に関連する動きを形成するニュアンスの理解が含まれます。

少し背景

ソフトウェアを使用して作業する個人は、法的な影響なしにソースコードを表示、編集、および共有できるようにする必要があるという考えは、新しいものではありません。 1970年代以前は、ソフトウェアは通常ソースコードと共に配布されていました。その理由は、ソフトウェアは通常ハードウェア固有であり、エンドユーザーが特定のマシンで実行したり特別な機能を追加したりする必要があるためです。

この頃にコンピューターとやり取りしたほとんどの人は、厳密に学術的または研究的な設定でそうしました。 これは、コンピューティングリソースが頻繁に共有されることを意味し、より効率的なワークフローまたはより信頼性の高いソリューションを作成するためのソフトウェアの変更が広く推奨されました。 たとえば、UC BerkeleyのProject Genieは、Berkeley Timesharing Systemを開発しました。これは、ラボのSDS 930コンピューターのソースコードをハッキングすることにより、スクラッチから構築されたタイムシェアリングオペレーティングシステムです。

しかし、ソフトウェアの製造がより複雑で高価になったため、ソフトウェア企業は、収益の流れを保護し、競合他社の実装へのアクセスを拒否するために、ソースコードの無制限の共有を停止する方法を探しました。 彼らは、著作権やリース契約など、製品に法的制限を設け始め、独自のライセンスの下で製品を配布し始めました。 1970年代の終わりまでに、ほとんどのソフトウェア会社は、ソースコードが含まれたソフトウェアの出荷を停止していました。 これにより、多くの長年のコンピューターユーザーが不満を表明するようになり、その精神が最終的にフリーソフトウェア運動の基盤を形成するようになりました。

フリーソフトウェアの始まり

フリーソフトウェア運動は、主にリチャード・ストールマンの発案でした。 ストールマンは、プロプライエタリなソフトウェアライセンスが増加する前の1970年代初頭にコンピューターサイエンスの研究を開始し、1980年代初頭までMIT人工知能研究所で研究者として働いていました。 10年以上にわたりアカデミックハッカーコミュニティのメンバーであった彼は、プロプライエタリソフトウェアの普及に不満を抱き、既存のソフトウェアを革新および改善する人々の権利の侵害と見なすようになりました。

1983年、ストールマンはGNUプロジェクトを立ち上げました。これは、ユーザーにソースコードの表示、変更、共有の自由を提供する完全なオペレーティングシステムを作成する取り組みです。 ストールマンはhttps://www.gnu.org/gnu/manifesto.html[GNU Manifesto]でプロジェクトに対する彼の動機を明確にしました。 その中で、彼はプロプライエタリライセンスがコミュニティ主導のソフトウェア開発をブロックし、効果的にイノベーションをサイロ化させ、テクノロジーの進歩を損なうという確信を述べています。

ストールマンによれば、これは、そうでなければ自分のニーズに合うようにコードを変更したり、新しい機能を提供するためにコードを変更したりできるユーザーや開発者に不公平な負担をかけます。 したがって、GNUプロジェクトは、プロプライエタリなソフトウェアの台頭への対応と、自由に共有されたソースコードと共同ソフトウェア開発の前の時代へのコールバックの両方として見ることができます。

1985年、ストールマンは、フリーソフトウェアの概念をより広く一般に広めることに専念する非営利組織であるhttp://www.fsf.org/[Free Software Foundation](FSF)を設立することにより、GNUプロジェクトを基に構築しました。 ストールマンはまた、GNU General Public Licenseを開発しました。これは、エンドユーザーがソースコードを自由に実行、表示、共有する権利を保証するソフトウェアライセンスです。

FSFによると、ソフトウェアが真に「無料」と見なされるためには、そのライセンスはユーザーに4つの本質的な自由を保証する必要があります。

  • 目的を問わず、必要に応じてプログラムを実行する自由。

  • プログラムがどのように機能するかを研究し、必要に応じてコンピューティングを行うように変更する自由。 ソースコードへのアクセスは、このための前提条件です。

  • あなたが隣人を助けることができるようにコピーを再配布する自由。

  • 変更したバージョンのコピーを他の人に配布する自由。 これを行うことにより、コミュニティ全体にあなたの変更から利益を得る機会を与えることができます。 ソースコードへのアクセスは、このための前提条件です。

FSFは、これらの各基準を満たさないソフトウェアは非フリーであり、したがって非倫理的であると見なします。

オープンソースの台頭

ストールマンは、「フリーソフトウェア」というラベルを選択して、ユーザーがソースコードを自由に変更し、適切に共有できるという考えを関連付けました。 多くの人が「フリーソフトウェア」とはゼロコストで入手できるソフトウェア(より正確には「フリーウェア」または「シェアウェア」とラベル付けされる)を指すと考えているため、これは長年にわたって混乱を招いています。 FSFは「自由なビールではなく、言論の自由のように自由である」と線で名前の選択を有名に説明しています。

しかし、1990年代後半までに、GNUおよびLinuxの熱狂的なファンの間で、この二重の意味がフリーソフトウェアの背後にある哲学とプロプライエタリコードに対する利点を逃してしまうという懸念が高まりました。 FSFは、あらゆる種類の専有ソフトウェアに対する強硬な倫理的スタンスでも知られるようになりました。 一部のフリーソフトウェア支持者の間では、このアプローチはビジネスの利益にあまりにも不親切であり、最終的にはフリーソフトウェア運動の普及を妨げるという懸念がありました。

大聖堂とバザール

1997年にエリックS. 当時フリーソフトウェアの擁護者であり開発者だったレイモンドは、「大聖堂とバザール」という、さまざまなフリーソフトウェアプロジェクトで使用されている2つの異なる開発モデルを比較する広く引用されたエッセイを書きました。 「大聖堂」とは、GNU Emacsの開発に代表される、開発者の独占グループがコードを生成するトップダウン開発モデルを指します。 一方、「The Bazaar」は、Linuxカーネルの開発の場合のように、インターネット上でコードを公に開発する方法を指します。

エッセイの中心的な論点は、Bazaarモデルはソフトウェアバグの発見と解決において本質的に効果的であり、より多くの人々がソースコードを見て実験することができるということです。 したがって、レイモンドは、コミュニティ主導のボトムアップ開発プロセスを利用すると、より安全で信頼性の高いソフトウェアが得られると主張しました。

The Cathedral and the Bazaar_で提示されたアイデアに部分的に応えて、Netscapeは、Communicator Webブラウザのソースコードを1998年初頭にフリーソフトウェアとしてリリースしました。 (Communicatorのソースコードは、後でMozilla FireFox 1.0の基礎を形成します)。 Netscapeがこのソースコードリリースで見た商業的可能性に触発され、フリーソフトウェア愛好家のグループ(レイモンド、ライナストーバルズ、フィリップツィンマーマン、その他多くの人々)は、フリーソフトウェア運動のブランド変更を試み、その焦点を倫理的または哲学的から遠ざけようとしました動機。 グループは、共同でコミュニティ主導型の開発モデルのビジネス価値をより良く反映することを期待して、自由に共有可能なソフトウェアのラベルとして「オープンソース」を選択しました。

その後まもなく、新しい用語の使用とオープンソース原則の普及の両方を奨励するために、https://opensource.org/ [Open Source Initiative](OSI)がRaymondとBruce Perensによって設立されました。 OSIは、https://opensource.org/osd [Open Source Definition]-ソフトウェアのライセンスがオープンソースと見なされるために遵守しなければならない10の原則のリストも開発しました。

  1. 無料の再配布-ライセンスは、複数のソースからのプログラムを含む大規模なソフトウェア配布のコンポーネントとしてソフトウェアを販売または配布することを、いかなる当事者にも制限してはなりません。

  2. ソースコード-プログラムにはソースコードが含まれている必要があり、ソースコードおよびコンパイルされた形式での配布を許可する必要があります。

  3. 派生作品-ライセンスは修正および派生作品を許可し、元のソフトウェアのライセンスと同じ条件で配布できるようにする必要があります。

  4. 作成者のソースコードの整合性-ビルド時にプログラムを変更する目的でライセンスが「パッチファイル」とソースコードの配布を許可している場合にのみ、ライセンスはソースコードの変更を禁止します。

  5. 個人またはグループを差別しない-ライセンスは、個人またはグループを差別してはなりません。

  6. 努力分野に対する差別なし-ライセンスは、特定の活動分野でプログラムの使用を制限するものであってはなりません。

  7. ライセンスの配布-プログラムに付随する権利は、プログラムが再配布されるすべての人に、それらの関係者による追加のライセンスの実行を必要とせずに適用されなければなりません。

  8. ライセンスは製品固有のものであってはなりません-プログラムに付随する権利は、プログラムが特定のソフトウェア配布の一部であることに依存してはなりません。

  9. ライセンスは他のソフトウェアを制限してはいけません-ライセンスは、ライセンスされたソフトウェアとともに配布される他のソフトウェアに制限を課してはなりません。

  10. ライセンスはテクノロジーに依存しない必要があります-ライセンスの提供は、個々のテクノロジーまたはインターフェースのスタイルに基づいて行うことはできません。

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

ほとんどの人にとっては、「フリーソフトウェア」と「オープンソースソフトウェア」の意味の違いはごくわずかであり、アプローチや哲学のわずかな違いに由来しています。 オープンソースイニシアチブが見ているように、両方の用語は同じことを意味し、ほぼすべてのコンテキストで交換可能に使用できます。 彼らは単に「オープンソース」ラベルを好むのは、それがソフトウェアとその作成者の使用法の明確な説明を提供すると信じているからです。

ただし、「フリーソフトウェア」キャンプでは、「オープンソース」は、ムーブメントの重要性と、プロプライエタリソフトウェアによって引き起こされる潜在的な長期的な社会問題を十分に伝えていません。 フリーソフトウェア財団は、OSIが非独占的ソフトウェアの実用的なメリット(その収益性とコミュニティ主導の開発モデルの効率を含む)の促進にあまりにも関心があり、ユーザーの権利を制限する倫理的問題に十分に関心がないと考えています独自の条件でコードを変更および改善します。

特定のソフトウェアが無料であるかオープンソースであるかは、どのライセンスの下で配布されているか、およびそのライセンスがOpen Source Initiative、Free Software Foundation、またはその両方で承認されているかどうかによって決まります。 どの組織がどのライセンスを承認するかはかなり重複していますが、いくつかの例外があります。 たとえば、NASAオープンソース契約はOSIが承認したライセンスであり、FSFは制限が厳しすぎると考えています。 したがって、FSFは、そのライセンスに基づいて配布されるソフトウェアの使用を禁止します。 ただし、一般的に言えば、フリーソフトウェアとして説明できる場合は、オープンソースソフトウェアの定義にも適合する可能性が高くなります。

別名

長年にわたり、この種のソフトウェアのこの他のいくつかの名前が、この議論を終わらせるために提案されてきました。 「フリーでオープンソースのソフトウェア」(しばしば「FOSS」と略される)は最も広く使用されているものの1つであり、この2つの間の安全な中立と見なされます。 「libreソフトウェア」という用語(「libre」はいくつかのロマンス言語から派生し、おおまかに「自由の状態」を意味する)が独自の支持を得て、頭字語「FLOSS」(「free / libreおよびオープンソースソフトウェア)もかなり一般的になりました。

フリーソフトウェアとオープンソースソフトウェアの両方がパブリックドメインのソフトウェアとは異なることに注意してください。 フリーでオープンソースのソフトウェアは、ライセンスを通じて自由を定義しますが、パブリックドメインソフトウェアは、同じ美徳の一部を順守する場合がありますが、ライセンスシステムから外れることによってそうします。 フリーソフトウェアとオープンソースソフトウェアの重要な違いは、フリーまたはオープンソースのソースコードに基づいた作品もFOSSライセンスで配布する必要があることです。 パブリックドメインにリリースされたソフトウェアには、この要件はありません。

パブリックドメインソフトウェアに関する別の問題は、世界中のすべての国が著作権のないコンテンツを認識するわけではないという事実に起因しています。 これにより、ソフトウェアがパブリックドメインにあるという世界的に認められた声明を出すことができなくなります。 したがって、FSFもOSIも、開発者がソフトウェアをパブリックドメインにリリースすることを奨励していません。

結論

「フリーソフトウェア」と「オープンソースソフトウェア」という用語は、ほとんどのコンテキストで互換性があり、誰かがどちらを好むかは、通常、セマンティクスまたはその哲学的見地の問題に帰着します。 ただし、ソフトウェアを開発して一般に公開しようとしている多くのプログラマーや、人々がテクノロジーを見てやり取りする方法を変えたいと思っている活動家にとって、違いは重要なものです。 したがって、新しいソフトウェアをリリースするときは、独自のライセンスを含むさまざまなライセンスの長所と短所を慎重に検討し、特定のニーズに最適なものを選択することが不可欠です。

次のプロジェクトに適切なソフトウェアライセンスについて詳しく知りたい場合は、Free Software Foundationのhttp://www.gnu.org/licenses/license-list.html[License List]に両方の無料の詳細な説明があります。非フリーライセンス。 さらに、Open Source Initiativeのhttps://opensource.org/licenses[Licenses&Standards]ページも参考になります。