
オープンソースソフトウェア(OSS)とは、著作権者がユーザーにソフトウェアとそのソースコードを誰に対しても、いかなる目的でも使用、調査、変更、配布する権利を付与するライセンスに基づいて公開されるコンピュータソフトウェアです。 [1] [2]オープンソースソフトウェアは、共同で公開的に開発されることがあります。オープンソースソフトウェアは、オープンコラボレーションの顕著な例であり、能力のあるユーザーは誰でもオンラインで開発に参加できるため、貢献者の数は無制限です。コードを検査できることで、ソフトウェアに対する社会の信頼が高まります。[3]
オープンソースソフトウェアの開発は、単一企業を超えた多様な視点をもたらす可能性があります。2024年には、オープンソースソフトウェアが企業にもたらす価値は8.8兆ドルと推定されています。これは、オープンソースソフトウェアを利用しない場合、企業は現在の3.5倍の費用を費やす必要があるためです。[4]
オープンソース コードは学習に使用でき、有能なエンド ユーザーは、ユーザー スクリプトやカスタムスタイル シートがWeb サイトに許可するのと同じように、ソフトウェアを自分のニーズに合わせて調整し、最終的には同様の好みを持つユーザー向けにフォークとして変更を公開し、改善点をプル リクエストとして直接送信することができます。

オープンソース・イニシアティブ(OSI)の定義は、国際的に複数の政府によって標準または事実上の定義として認められています[5] 。OSIは、ソフトウェアライセンスをオープンソースとみなすかどうかを判断する際に、このオープンソース定義を用いています。この定義は、主にブルース・ペレンズによって執筆・改訂されたDebianフリーソフトウェアガイドラインに基づいています[6] [7] [8]。ペレンズは、後に広く利用可能になったフリーソフトウェア財団(FSF)の「4つの自由」に基づいて執筆したわけではありません[9] 。
ペレンズの定義によれば、オープンソースとは、コードの使用と改変に関する制限が緩和されているか、あるいは全く制限がない状態で、ソースコードを一般大衆に公開する、広範なソフトウェアライセンスである。ソフトウェアの急速な進化を可能にするため、いかなる組織やユーザーによる使用や配布にもほとんど制限を設けないことが、オープンソースの明確な「特徴」である。[10]
フェラーら(2005)によると、「フリーソフトウェア」および「オープンソースソフトウェア」という用語は、「ユーザーがソフトウェアの作者にロイヤリティや料金を支払うことなく、適切と思われる方法でソフトウェアを使用、変更、再配布することを許可する条件で配布されるソフトウェア製品」に適用されるべきである。[11]
FSFのリチャード・ストールマンは、当初は「オープンソース」という用語を受け入れていたものの、[12] 、現在では「フリーソフトウェア」と呼ばれるものに「オープンソース」という用語が適用されることに断固として反対している。ストールマンは、この2つの用語が「ほぼ同じカテゴリーのソフトウェア」を表すことには同意するものの、両者を同一視することは誤りであり誤解を招くと考えている。[ 13]ストールマンはまた、オープンソース・イニシアチブ(OSI)が公言するプラグマティズムにも反対している。FSFのソフトウェアの自由に関する理想主義的な基準を妥協することで、フリーソフトウェアの理想である自由とコミュニティが脅かされるのではないかと懸念しているからだ。[14] FSFはフリーソフトウェアをオープンソース・ソフトウェアのサブセットと見なしており、リチャード・ストールマンは、例えばDRMソフトウェアは、ユーザーに自由を与えない(制限する)にもかかわらず、オープンソースとして開発できるため、フリーソフトウェアの資格を満たさないと説明した。[13]
オープンソースの著名な貢献者であるエリック・S・レイモンドは、 1997年のエッセイ『伽藍とバザール』の中で、バザールモデルとして知られるOSS開発モデルを提唱しています。レイモンドは、伝統的な方法論によるソフトウェア開発を、個人または少人数のグループによる綿密で孤立した作業を伴う大聖堂の建設に例えています。彼は、すべてのソフトウェアは、それぞれ異なるアジェンダとアプローチを持つバザール様式で開発されるべきだと提唱しています。[15]
彼が「大聖堂モデル」と呼んだ伝統的な開発モデルでは、開発は集中的に行われます。役割は明確に定義されています。役割には、設計に専念する人々(アーキテクト)、プロジェクト管理を担当する人々、実装を担当する人々が含まれます。伝統的なソフトウェアエンジニアリングは、この大聖堂モデルに従っています。[15]
しかし、バザールモデルは異なります。このモデルでは、役割が明確に定義されていません。[15]バザールモデルを用いて開発されたソフトウェアの特徴として、次のようなパターンが挙げられます。[16]
オープンソース開発のプロセスは、要件抽出から始まります。開発者は、プロジェクトに新機能を追加するか、バグを修正する必要があるかを検討します。これは、バグ報告や追跡、メーリングリスト、プロジェクトページなどの手段を通じてOSSコミュニティとコミュニケーションをとることで確立されます。次に、OSS開発者はタスクを選択するか、タスクに割り当てられ、解決策を特定します。OSSでは解決策には多くの選択肢があるため、慎重な検討と、時には同僚からのフィードバックも得ながら、最適な解決策を選択する必要があります。その後、開発者はコードの開発とコミットを開始します。その後、コードは同僚によってテストとレビューが行われます。開発者は、継続的インテグレーションからのフィードバックを通じて、コードを編集し、進化させることができます。リーダーシップとコミュニティがプロジェクト全体に満足したら、部分的にリリースし、ユーザーへの説明を文書化できます。プロジェクトのリリース準備が整ったら、重大なバグ修正またはセキュリティ対策のみを実施して凍結します。最終的に、プロジェクトは完全にリリースされ、軽微なバグ修正のみが実施されます。[18]
標準規格のオープンソース実装は、その標準規格の採用率と長期的な存続可能性を高める可能性があります。[19]開発者は開発プロセスと最終製品への参加意識と所有権をより強く感じるため、開発者の忠誠心を育むことがよくあります。[20]
さらに、OSSではマーケティングや物流サービスのコスト削減が求められています。[21] OSSは、商用製品を含む企業のイメージを宣伝するためのツールとなり得ます。[22] OSS開発アプローチは、信頼性が高く高品質なソフトウェアを迅速かつ安価に開発するのに役立っています。[21]
オープンソース開発は、イノベーションを加速させ、社会的な価値を生み出す可能性を秘めています。例えばフランスでは、政府に無料のオープンソースソフトウェアを推奨するインセンティブを与える政策により、年間約60万件のOSSへの貢献が増加し、オープンソースソフトウェアの量と質の向上によって社会的な価値が創出されました。また、この政策は、テクノロジー系スタートアップ企業の数を最大18%増加させ、IT部門の雇用者数を14%増加させたと推定されています。[23]
OSSは、何千人もの独立したプログラマーがソフトウェアのバグをテストし修正することで、高い信頼性を実現できます。[16]オープンソースは、それを最初に作成した企業や作者に依存しません。たとえ企業が倒産したとしても、コードは存在し続け、ユーザーによって開発され続けます。[24]
OSSは、モジュール式のシステムによりプログラマーがカスタムインターフェースを構築したり、新しい機能を追加したりできるため柔軟性が高く、また、オープンソースプログラムは多数の異なるプログラマーの共同作業によって生み出されるため革新的です。[16]多様な視点、企業目標、個人の目標が混在することでイノベーションが加速します。[25]
さらに、フリーソフトウェアは純粋に技術的な要件に基づいて開発できるため、ソフトウェアの品質を低下させる商業的圧力を考慮する必要がありません。商業的圧力は、従来のソフトウェア開発者がセキュリティ要件よりも顧客の要件に重点を置く原因となります。なぜなら、セキュリティ要件は顧客にとって目に見えないものだからです。[26]
オープンソースソフトウェア開発では、製品の開発と開発プロセス自体をサポートするためにツールが使用されます。[18]
集中型バージョン管理システム(CVCS)や分散型バージョン管理システム(DVCS)などのバージョン管理システムは、多くの場合オープンソースであり、ソフトウェアプロジェクトのソースコードファイルとそれらのファイルへの変更を管理してコラボレーションを促進するのに役立つツールの例です。CVCSは中央リポジトリで集中管理されていますが、DVCSは分散型で、すべてのユーザーにローカルリポジトリがあります。同時バージョンシステム(CVS)とその後のSubversion(SVN)はCVCSの例であり、GitはDVCSであり、最も広く使用されているバージョン管理ソフトウェアです。[27]リポジトリは、 GitHubなどのソースコードホスティング施設でホストされ、公開されます。[28]
オープンソースプロジェクトでは、問題追跡ツールなどのユーティリティを使用してオープンソースソフトウェアの開発を整理しています。一般的に使用されているバグ追跡ツールには、 BugzillaやRedmineなどがあります。[18]
メーリングリストやIRCなどのツールは、開発者間の調整やバグに関する議論の手段となります。プロジェクトのウェブページ、Wikiページ、ロードマップリスト、ニュースグループは、エンドユーザーに焦点を当てたプロジェクト情報の配信を可能にします。[18]
OSS参加者の基本的な役割は複数のカテゴリーに分類できます。まず、プロジェクトの中心に立って実行を統制するリーダーシップが挙げられます。次に、プロジェクトにおいて豊富な経験と権限を持ち、他の貢献者を指導するコア貢献者がいます。コア貢献者以外の貢献者は経験と権限は少ないものの、定期的に貢献し、プロジェクトの発展に不可欠な存在です。新規貢献者は経験が最も浅いですが、メンターシップと指導があれば、定期的な貢献者になることができます。[29]
オープンソースソフトウェアへの貢献方法としては、プログラミング、メンテナンス、ユーザーインターフェースの設計とテスト、ウェブデザイン、バグトリアージ、アクセシビリティの設計とテスト、UXデザイン、コードテスト、セキュリティレビューとテストなどが挙げられます。しかし、コーディングスキルがなくても、OSSプロジェクトに貢献する方法はいくつかあります。例えば、技術的なスキルを必要としない参加方法としては、ドキュメントの作成と編集、翻訳、プロジェクト管理、イベントの企画と調整、マーケティング、リリース管理、コミュニティ管理、広報とアウトリーチなどがあります。[29]
資金援助は、個人や組織がオープンソースプロジェクトに貢献するもう一つの方法です。Open Collectiveのような団体は、個人がお気に入りのプロジェクトを支援するために毎月寄付できる手段を提供しています。[30] Sovereign Tech Fundのような組織は、ドイツ政府が使用するツールを支援するために数百万ドルを寄付することができます。[31]国立科学財団は、オープンソースのイノベーションを支援するために、オープンソースエコシステム実現のためのパスウェイ(POSE)プログラムを設立しました。[32]
業界によるオープンソースソフトウェアの採用は、時間とともに増加しています。[33] OSSは、そのメリットから、通信、航空宇宙、ヘルスケア、メディア&エンターテイメントなどの多くの業界で人気があります。 [34] OSSの採用は大規模な組織でより一般的であり、企業のIT利用状況、運用効率、従業員の生産性に依存します。[33]
産業界がOSSを利用する主な理由は、バックオフィス機能、営業サポート、研究開発、ソフトウェア機能、迅速な導入、プラットフォーム間の移植性、商用ライセンス管理の回避などです。さらに、ハードウェアと所有コストの削減も重要なメリットです。[33]
フリーソフトウェアやオープンソースソフトウェアの運動の発展と拡大に貢献する組織は世界中に存在し、これらの組織は技術の教育や普及などの目標を掲げている。オープンソース・イニシアティブの元副会長が挙げているように、アメリカの組織ではフリーソフトウェア財団、ソフトウェア自由保護協会、オープンソース・イニシアティブ、ソフトウェア・イン・ザ・パブリック・インタレストなどがある。ヨーロッパではフリーソフトウェア財団ヨーロッパ、オープンソースプロジェクトEU(OSP)、オープンフォーラムヨーロッパ(OFE)などが有名である。オーストラリアにはLinuxオーストラリア、アジアにはオープンソースアジアとFOSSAsiaがある。アフリカにはアフリカのフリーオープンソースソフトウェア(FOSSFA)とOpenAfrica、中央アジアと南アジアにはFLISOLやGRUP de usuarios de software libre Peruなどの組織がある。これら以外にも、オープンソースソフトウェアの推進に専念する組織は数多く存在する。[29]
FOSS製品は、一般的に、パーミッシブ ライセンスとコピーレフト ライセンスの 2 種類のライセンスでライセンス供与されます。これらの 2 種類のライセンスは、より多くのユーザーがソフトウェアにアクセスできるようにし、各ライセンスに独自のルールがあるため、特定のライセンスの条件で指定された派生作品の作成を許可できる点で、プロプライエタリライセンスとは異なります。 パーミッシブ ライセンスでは、ソフトウェアの受領者は、配布に同じライセンスを使用しなくても、作成者の著作権を実装できます。この種類のライセンスの例には、 BSD ライセンス、 MIT ライセンス、 Apache ライセンスなどがあります。コピーレフトライセンスは、受領者に対して、配布物の少なくとも一部に同じライセンスを使用することを要求する点で異なります。 強いコピーレフト ライセンスでは、すべての派生作品に同じライセンスを使用する必要がありますが、弱いコピーレフト ライセンスでは、特定の条件下でのみ同じライセンスを使用する必要があります。 この種類のライセンスの例には、GNU ライセンス ファミリー、およびMPLライセンスとEPLライセンスがあります。これら2つのライセンスの類似点としては、著作権の広範な付与、受領者による著作権表示の保持の義務、ライセンスのコピーがコードと共に受領者に提供されることなどが挙げられます。[35]
オープンソースソフトウェアに関する重要な法的先例の一つは、2008年にJacobson対Katzer事件で創出されました。この事件では、改変の帰属表示や特定を含むArtisticライセンスの条項が執行されました。この判決により、ライセンスの条件が遵守されていない場合でも著作権法に基づく執行が確固たるものとなりました。Artisticライセンスは他のオープンソースソフトウェアライセンスと類似していたため、この判決は広く適用される先例となりました。[35]
フリーソフトウェアライセンス/オープンソースライセンスの例としては、Apacheライセンス、BSDライセンス、GNU一般公衆利用許諾書、GNU劣等一般公衆利用許諾書、MITライセンス、Eclipseパブリックライセンス、Mozillaパブリックライセンスなどがあります。[35]
ソフトウェア規制には、オープンソースソフトウェアに大きな影響を与えるグレーゾーンがいくつか存在します。例えば、ソフトウェアは商品かサービスか、何が改変とみなされるか、契約とライセンスによるガバナンス、所有権と使用権などです。これらの問題については進展が見られてきましたが、多くの場合、さらに多くの疑問が生じます。規制におけるこれらの不確実性の存在は、テクノロジーに関わる業界全体に悪影響を及ぼします。[35]
ソフトウェア全体の法制史においては、ソフトウェアを知的財産として特許法、著作権法、あるいは独自の規制の下で保護すべきかどうかについて多くの議論がありました。最終的には、独自の規制による若干の修正はあるものの、コンピュータプログラムは文学作品の一種とみなされ、著作権法が標準となりました。[35]
ソフトウェアは一般的にソースコードとオブジェクトコードの両方として扱われ、どちらも保護対象であるが、この定義には法的に多様な側面がある。一部の法域では、独自の目的でこの概念を拡大または縮小しようとしている。例えば、欧州司法裁判所は、コンピュータプログラムとは、プログラムの機能、プログラミング言語、またはデータファイルの形式を含まないものと定義している。ソフトウェアのさまざまな側面の保護を制限することで、法律はソフトウェアの使用に対するオープンソースアプローチを有利にしている。特に米国はソフトウェアに対してオープンなアプローチを採用しており、ほとんどのオープンソースライセンスは米国で生まれている。しかし、これによりこれらのライセンスにおける特許権への注目が高まり、他の形態の知的財産保護を好むOSSコミュニティからの反発を招いている。[35]
もう一つの問題は、1996年の世界知的所有権機関(WIPO)条約で国際的に法的に認められ保護された技術的保護手段(TPM)とデジタル著作権管理(DRM)技術です。オープンソースソフトウェア支持者は、これらの技術が著作権法の枠を超えてエンドユーザーを制限する可能性があるため、これらの技術を嫌っていました。欧州はこうした不満に対し、TPMを法的規制下に置くことで対応し、OSS支持者の勝利となりました。[35]

オープンソースコミュニティでは、制作者は制作したソフトウェアを所有するのではなく、進化するソフトウェアの開発そのものを所有する。このように、ソフトウェアの将来はオープンであり、OSS内での所有権や知的財産権の確保は困難である。ライセンスとブランディングによって他者による盗用を防ぎ、公共財としての地位を維持することができる。オープンソースソフトウェアは誰もが利用可能であり、誰かがダウンロードしたとしても他者にとっての価値が下がらないため、公共財とみなすことができる。オープンソースソフトウェアは、リソースを減少させるのではなく、使用され、貢献されるにつれて価値が高まるという点で独特である。これは、評判への投資やネットワーク効果などの概念によって説明される。[36]
オープンソースソフトウェアの経済モデルは、開発者がプロジェクトに貢献することで公共の利益を生み出すという形で説明できます。開発者は、プロジェクトの評判や価値の向上といった、認識される利益やコストに基づいてプロジェクトを選択します。開発者のモチベーションは様々な場所や理由から生じますが、重要なのは、金銭が唯一の、あるいは最も重要なインセンティブではないということです。[36]
経済理論は主に希少資源の消費に焦点を当てているため、OSSのダイナミクスを理解するのは難しい場合があります。OSSでは、生産者はプロジェクトへの貢献による報酬を得ることで消費者になります。例えば、開発者はOSSプロジェクトへの貢献が成功すれば、同僚から高い評価を得ます。OSSの社会的便益と相互作用は、経済モデルでも考慮することが困難です。さらに、技術革新は価値観に関する議論や見通しを絶えず変化させ、経済モデルでは社会行動を予測できなくなります。[36]
OSSは経済モデルにおいては理論的に難しいものの、資源を必要とする持続可能な社会活動として説明可能です。これらの資源には、時間、資金、技術、そして貢献が含まれます。多くの開発者は、大学や政府などの組織が資金提供した技術を利用しています。しかし、これらの組織もOSSの成果から利益を得ています。OSSが成長するにつれて、OSSと独自システムを組み合わせたハイブリッドシステムが一般的になりつつあります。[36]
2000年代半ばにかけて、ますます多くのテクノロジー企業がOSSの利用を開始しました。例えば、DellはLinuxを既にインストールしたコンピュータを販売しました。Microsoft自身も、かつてOSS運動に敵意を抱いていたにもかかわらず、 LinuxベースのOSをリリースしました。こうした動きにもかかわらず、これらの企業はOSSを特定の用途にのみ利用する傾向があり、OSSが企業に利用され、何の見返りも得られていないのではないかという懸念が生じています。[24]
多くの政府は、オープンソースソフトウェアがもたらす多くのメリットから、その導入と推進に関心を示しています。例えば、英国政府は2004年にオープンソースとオープンスタンダードを推進する政策を発表し、2009年にはこの政策を再確認し、「政府はオープンソースソリューションをプロプライエタリソリューションと並行して積極的かつ公平に検討する」としました。[37]しかし、考慮すべき課題としてサイバーセキュリティが挙げられます。偶発的な脆弱性は避けられないものの、外部からの攻撃も考えられます。こうした懸念から、ソフトウェアガバナンスへの貢献に対する政府の関心は高まっています。しかし、これらは問題の大まかな概要に過ぎず、各国はオープンソースソフトウェアとの政治的な関わり方や導入目標をそれぞれ独自に持っています。例えば、米国は、中国やロシアなどの国々におけるオープンソースソフトウェア活動の増加が脅威であると認識されているため、オープンソースソフトウェアの導入に関して国家安全保障に重点を置いており、国防総省はOSSの利用に関する複数の基準を検討しています。これらの基準には、信頼できる情報源から提供され、維持されているかどうか、継続的に維持されるかどうか、ソフトウェアのサブコンポーネントへの依存関係があるかどうか、コンポーネントのセキュリティと整合性、外国政府の影響などが含まれます。[38]
オープンソースに関して政府にとってもう一つの課題は、オペレーティングシステム、半導体、クラウド、人工知能といった技術への投資である。これらの技術はすべて国際協力に影響を与え、安全保障上の問題や政治的影響を及ぼしかねない。多くの国は、こうしたパートナーシップにおいて技術革新と技術依存のバランスを取らなければならない。例えば、中国のオープンソース依存企業であるファーウェイは、2019年にGoogleのAndroidシステムの使用を阻止された後、独自の代替オペレーティングシステムであるHarmony OSの開発を開始した。[38]
ドイツは最近[いつ? ] 、自国が使用するソフトウェアのガバナンスとメンテナンスを支援するために、 ソブリン テック ファンドを設立しました。
コンピュータの黎明期、特に1950年代から1960年代にかけては、プログラマーと開発者は互いに学び合い、その分野を発展させるためにソフトウェアを共有することが一般的でした。Unixなどの初期のシステムでは、ユーザーがソースコードにアクセスできるようにし、共同作業や修正を可能にしていました。しかし、1970年代から1980年代にかけて商用ソフトウェア産業が台頭し、プロプライエタリなモデルが主流になったため、このオープンな共有文化は衰退し始めました。このような変化にもかかわらず、学術機関や研究機関は共同ソフトウェア開発の実践を推進し続けました。[39]
これに対応して、ハッカーまたはハッカー文化として広く呼ばれる熟練したプログラマーの活動からオープンソース運動が生まれました。[40]これらの熱狂者の一人、リチャード・ストールマンは、後のオープンソース運動を可能にするフリーソフトウェア運動の原動力でした。1984年、研究室のプログラマー文化がプロプライエタリソフトウェアによってソースコードの共有や改良が妨げられたことを受けて、彼はMITを辞職し、フリーオペレーティングシステムであるGNUを作成しました。GNUはUNIXと互換性があり、プログラマーの熱狂者たちはGNUの動作に慣れていました。しかし、ストールマンがフリーソフトウェアに付けたラベルに混乱があることがすぐに明らかになりました。彼はフリーをビールの自由ではなく、言論の自由の意味で「フリー」と表現し、価格ではなく自由という意味に言及しました。彼は後にこの自由の概念を4つの基本的な自由にまで拡張しました。GNUを通じて、他者のソースコード、コミュニティのバグ修正、新機能のコード提案を取り入れるというオープンソースの規範が生まれました。 1985年、ストールマンはソフトウェアの変更を促進し、GNUの作成を支援するためにフリーソフトウェア財団(FSF)を設立しました。彼の作品が独占ソフトウェアに使用されないように、ストールマンはコピーレフトの概念を生み出しました。これは、特定の条件の下で誰でも彼の作品を使用できるようにしました。これを実現するために、彼は1989年にGNU一般公衆利用許諾書(GNU GPL)を作成し、これは1991年に更新されました。 [17] 1991年、GNUにはカーネルがなかったため、リーナス・トーバルズによって書かれたLinuxカーネルとGNUが統合されました。 [41]このオペレーティングシステムは現在、通常Linuxと呼ばれています。[17]この期間中、当時はBerkeley Software Distribution、TeX、X Window Systemなど、フリーソフトウェアの概念がどのようなものであり、どうあるべきか、また独占ソフトウェアの倫理性についてそれぞれ異なる考えを持つ、他の多くのフリーソフトウェアプロジェクトとライセンスがありました。[42]
フリーソフトウェアが発展するにつれ、フリーソフトウェア財団は、フリーソフトウェアのアイデアや認識されている利点を商用ソフトウェア業界にもたらす方法を模索し始めました。FSFの社会運動は企業にとって魅力的ではなく、ソフトウェアのソースコードの共有とコラボレーションのビジネス上の可能性を強調するためにフリーソフトウェア運動のブランドを変更する方法が必要であるという結論に達しました。 [42]オープンソースという用語は、1998年にフリーソフトウェアの支持者の会議でクリスティン・ピーターソンによって提案されました。グループの多くは、フリーソフトウェアという名前は新規参入者を混乱させ、業界の関心を阻害すると感じていたため、オープンソースという新しい名称をすぐに受け入れ、オープンソース・イニシアティブ(OSI)とオープンソース・ソフトウェアに関するOSIの定義を作成しました。[17]オープンソース・イニシアティブ(OSI)の定義は現在、国際的にいくつかの政府によって標準または事実上の定義として認められています。[41]この定義は、主にブルース・ペレンズによって書かれ、改訂されたDebianフリーソフトウェアガイドラインに基づいています。 [43] OSIの定義は、プロプライエタリソフトウェアの組み込みを許容し、ライセンスに関してより自由な点において、フリーソフトウェアの定義とは異なっています。ストールマン氏のように、プロプライエタリソフトウェアに対して強い道徳的立場を取っているフリーソフトウェアの本来の概念に賛同する人もいますが、ソフトウェアの運用という点では、この二つの運動の間には多くの共通点があります。[17]
オープンソース・イニシアティブが新しい用語の使用を奨励し、その遵守する原則を広めようと努める一方で、商用ソフトウェアベンダーは、自由に配布されるソフトウェアの概念とアプリケーションのソースコードへの普遍的なアクセスにますます脅威を感じるようになり、2001年にはマイクロソフトの幹部がオープンソースを知的財産の破壊者と呼んだ。しかし、フリー・オープンソース・ソフトウェア(FOSS)は歴史的に主流の民間ソフトウェア開発の外で役割を果たしてきたが、マイクロソフトのような大企業はインターネット上で公式のオープンソースの存在を展開し始めている。IBM、オラクル、ステート・ファームは、今日の競争の激しいオープンソース市場に重大な社会的関心を持つ企業のほんの一例に過ぎず、FOSSの開発に関する企業哲学の大きな転換を示している。[44]
オープンソースソフトウェアコミュニティ、ひいてはフリーソフトウェアコミュニティの未来は、その理念を誤解していなければ、成功を収めていると言えるでしょう。例えば、AndroidとUbuntuは、2000年代初頭の技術革新の傍らからオープンソースソフトウェアが台頭してきた成功例と言えるでしょう。しかしながら、コミュニティの中には、AndroidのOSSとしての重要性をGoogleとそのパートナーが軽視していること、 Apacheライセンスの使用によってフォークが認められ、Android内でのコラボレーションの機会が失われていること、Ubuntuにおいて自由よりも利便性が優先されていること、そしてUbuntuがマーケティング目的でユーザーを追跡する機能を備えていることなどから、AndroidとUbuntuはOSSの代表として失敗していると考える人もいます。[24]
OSSの利用はビジネスにおいてより一般的になり、企業の78%が業務の全部または一部をFOSS上で実行していると報告しています。OSSの人気は高まり、かつてはOSSを批判していたマイクロソフトでさえ、自社システムにOSSを採用するに至りました。しかし、この成功はOSSの将来を決定づける懸念を引き起こしています。コミュニティは、OSSとは何か、OSSはどうあるべきか、そして保護する必要があるとすれば、それを守るために何をすべきかといった疑問に答えなければならないからです。全体として、フリーオープンソース革命は市場において均衡点に達したと認識されていますが、それは革命が終わったことを意味するものではありません。その将来を決定づけるには、今後も多くの理論的議論が行われなければなりません。[24]
オープンソースソフトウェアは、公開されていること、ライセンスに料金がかからないこと、ライセンス仕様に基づいて改変や配布が許可されているという点で、プロプライエタリソフトウェアとは異なります。これらすべてが、プロプライエタリソフトウェアの目標であるOSS製品の独占を防ぐ役割を果たします。プロプライエタリソフトウェアは、顧客の選択肢を、そのソフトウェアの使用を約束するか、アップグレードするか、他のソフトウェアに切り替えるかのいずれかに制限し、顧客のソフトウェアに対する好みが金銭的なコストによって左右されることになります。プロプライエタリソフトウェアベンダーにとって理想的なシナリオは、顧客がこれらのコストのためにソフトウェアを切り替えない、あるいは切り替えることができず、そのベンダーから製品を購入し続けるという、いわゆる「ロックイン」です。 [45]
プロプライエタリソフトウェアでは、バグ修正はベンダーのみが提供でき、プラットフォームの移行には別途購入が必要であり、製品の存在はベンダーに依存しており、ベンダーはいつでも製品を廃止することができます。[40]さらに、プロプライエタリソフトウェアはソースコードを提供しないため、ユーザーによる変更はできません。企業にとって、これはセキュリティリスクとなり、フラストレーションの原因となる可能性があります。なぜなら、製品を自社のニーズに合わせてカスタマイズできず、ソフトウェア内に隠れた脅威や情報漏洩が存在する可能性があり、アクセスや変更が不可能だからです。[17]
OSIの定義によれば、オープンソースとは、ソースコードを一般公開する広範なソフトウェアライセンスであり、コードの使用と改変に関する制限は緩和されているか、あるいは全くありません。オープンソースの明確な特徴は、ソフトウェアの急速な進化を可能にするために、いかなる組織やユーザーによる使用や配布にもほとんど制限を設けていないことです。[46]
フリーソフトウェア運動の指導者であり、フリーソフトウェア財団のメンバーであるリチャード・ストールマンは、彼らがフリーソフトウェアと呼ぶものに「オープンソース」という用語が適用されることに反対している。ストールマンは、この2つの用語がほぼ同じカテゴリのソフトウェアを説明することに同意しているものの、この2つの用語を同一視することは誤りであり誤解を招くものだと考えている。 [13] ストールマンは、どちらか一方の用語を選択することで、他の人に自分の目標が開発(オープンソース)なのか社会的な立場(フリーソフトウェア)なのかを知らせることができる点が主な違いだと考えている。[47]しかし、オープンソースソフトウェアとフリーソフトウェアには重なり合う部分もかなりある。[13]ストールマンは、オープンソース・イニシアティブの公言している実用主義にも反対している。FSFのソフトウェアの自由に関する理想的な基準に妥協することで、フリーソフトウェアの理想である自由とコミュニティが脅かされるのではないかと懸念しているからだ。[47] FSFはフリーソフトウェアをオープンソースソフトウェアのサブセットと見なしており、リチャード・ストールマンは、例えばDRMソフトウェアは、ユーザーを制限するにもかかわらずオープンソースとして開発できるため、フリーソフトウェアの資格を満たさないと説明しました。[13]
FSFは、「オープンソース」という用語は、ソースコードが利用可能であることと、それを自由に使用、改変、再配布できることを混同するような、別の種類の曖昧さを生み出すと述べています。[13]一方、「フリーソフトウェア」という用語は、「フリー」という言葉の曖昧さがビジネスでの採用を阻害すると考えられていることや、歴史的に曖昧な用法が用いられてきたことなどから批判を受けました。[47]
開発者は、フリーソフトウェアでもあるオープンソースソフトウェアを説明するために、フリーでオープンソースソフトウェア(FOSS)またはフリー/リブレでオープンソースソフトウェア( FLOSS)という別の用語 を使用しています。[29]
ソフトウェアはソースコード(読み取り可能なコード)とともに配布できます。このソースコードが閲覧可能な場合、ソフトウェアはソースコードが公開されています。しかし、ソースコードが公開されている、つまりFOSSであるためには、ソースコードにアクセスできるのはすべての人ではなく、そのソフトウェアのユーザーだけです。オープンソースの定義でソースコードが公開されていることが要件となっているため、すべてのFOSSソフトウェアはソースコードが公開されていますが、すべてのソースコードが公開されているソフトウェアがFOSSであるとは限りません。例えば、ソフトウェアがオープンソースの定義の他の側面、例えば改変や再配布の許可などを満たしていない場合、ソースコードが公開されていても、そのソフトウェアはFOSSではありません。[48]
ソフトウェア企業における最近の傾向として、オープンソース化、つまり、以前のプロプライエタリソフトウェアをオープンソースライセンスの下でリリースすることでオープンソースソフトウェアに移行することが挙げられます。[49] [50]これを行った企業の例としては、Google、Microsoft、Appleなどが挙げられます。[49]また、オープンソース化とは、オープンソースソフトウェアのプログラミングやインストールを指す場合もあります。[50]オープンソース化には、新しい視点や問題解決能力をもたらす外部貢献者を多く引き付けるなど、さまざまなメリットがあります。一方、オープンソース化の欠点としては、ベースコードを理解しやすくすること、新規開発者向けのコミュニケーションチャネルを設定すること、新規開発者が容易に参加できるようにドキュメントを作成することなど、新しいコミュニティを維持するために必要な作業が挙げられます。しかし、いくつかのオープンソースプロジェクトを調査したところ、新しくオープンソース化されたプロジェクトは多くの新規参加者を引き付けるものの、その多くがすぐにプロジェクトを離れ、彼らのフォークも影響力が薄い傾向があることがわかりました。[49]
オープンソースと類似点を持つ可能性のある他の概念としては、シェアウェア、パブリックドメインソフトウェア、フリーウェア、そして無料で利用できるもののソースコードを提供しないソフトウェアビューア/リーダーなどがあります。しかし、これらはソースコードへのアクセス、ライセンス、著作権、料金の点でオープンソースソフトウェアとは異なります。[17]
オープンソースソフトウェアの貢献者は、国際的な協力が可能にもかかわらず、シリコンバレーなどの大規模なクラスターに多く存在し、そのほとんどは内部で協力していることがわかりました。この現象の理由としては、OSS貢献者の人口統計が主にソフトウェア関連の仕事に従事していることが考えられます。つまり、OSSの地理的な位置はその分散と密接に関係しており、仕事やソーシャルネットワークを通じて協力が促進される可能性があります。[51]コードの受け入れは、これらのソーシャルネットワーククラスター内でのステータスに影響を受ける可能性があり、場所に基づいてコードの受け入れに不公平な傾向が生じます。[52]国際協力の障壁には、言語や文化の違いも含まれます。[53]さらに、インドを除く各国では、国内の貢献者からのコードの受け入れ率が高く、文化的に類似した協力者への偏りが見られます。[53]
2021年にオープンソースソフトウェアへの貢献度が最も高かった国は、順に、米国、中国、ドイツ、インド、英国であった。[51] 2021年の調査によると、人口1人あたりのOSS開発者数が最も多かった国は、順に、アイスランド、スイス、ノルウェー、スウェーデン、フィンランドであった。一方、2008年にSourceForgeへの推定貢献者数が最も多かった国は、米国、ドイツ、英国、カナダ、フランスであった。[51] [53] OSS開発者の分布と貢献度についてはいくつかの研究が行われてきたが、これはまださまざまな方法で測定できる未解決の分野である。例えば、情報通信技術への参加、人口、富、インターネットへのアクセスの割合は、OSSの貢献度と相関関係にあることが示されている。[53]
ジェンダーの多様性はチームの生産性を高めることがわかっているが、性別が特定できるオープンソースソフトウェアプロジェクトに貢献する女性は依然として偏見に直面している。 [54] 2002年には、国際的なオープンソースソフトウェア開発者のうち女性はわずか1.5%であったが、技術業界の役割の28%を女性で占めており、ソフトウェア分野における女性の割合が低いことがわかった。[55] OSSへの貢献には前提条件がないにもかかわらず、貢献者の間では性別は関係なく、コードの品質だけがコードの受け入れの唯一の考慮事項であるべきだという一般的な考えがあるため、このジェンダーバイアスは存在し続け、コミュニティが女性の代表性における体系的な格差に対処できない可能性がある。[40]しかし、2005年から2021年にかけて国際的に計算された女性のOSS参加率のより最近の数字は9.8%であり、そのほとんどが最近の貢献者であり、女性の参加が増加している可能性があることを示している。[56]
OSSコミュニティに貢献する動機は様々です。まず、コーディングやその他の技術関連能力といった複数のスキルを学び、実践する機会となるだけでなく、コミュニケーションやコラボレーションといった基礎スキル、そして課題追跡やバージョン管理といった技術関連分野で優れた成果を上げるために必要な実践的なスキルも習得できます。教室や仕事を通して学ぶのではなく、OSSへの貢献を通して学ぶことで、参加者は自分のペースで学び、興味のあることに取り組むことができます。OSSに貢献することで、貢献者は業界のベストプラクティス、技術、トレンドを学ぶことができ、さらにはOSSが技術分野でますます人気が高まるにつれて、次の大きなイノベーションに貢献する機会さえ得られます。OSSに無償で貢献することは、評判が傷つく可能性はあるものの、解雇される心配がないことを意味します。一方、OSSに貢献する大きな動機は、公開ポートフォリオを拡大することで得られる評判です。[29]
プログラミングはもともと女性の職業とみなされていたが、コンピューティングの世界では依然として大きなギャップがある。[57]ハイテク業界の女性は男性の望まない注目や嫌がらせを招いたり、技術知識において女性らしくないと思われたりするのではないかという不安に直面しており、 社会的アイデンティティが大きな懸念事項となる傾向があり、これが自信に大きな影響を与えている。[40]男性の技術関係者の中には、女性が文化に溶け込むことは不可能だと考えていることを明らかにしている人もおり、女性とそのハイテク業界での立場に対する不安を増大させている。さらに、オープンソースソフトウェアのような自発的な貢献環境でさえ、OSSへの貢献において女性と男性は同じ生産性を示しているにもかかわらず、女性は手動テストやドキュメント作成など、プロジェクトの技術的でない側面を担当することになる傾向がある。明示的なバイアスには、フィードバックに時間がかかること、コードがより精査されること、コードの受け入れ率が低いことなどがある。[54]特にオープンソースソフトウェアコミュニティでは、性的に不快な言葉が一般的であり、OSS貢献者としての女性よりも女性としてのアイデンティティに注目が集まっていると女性は報告しています。性別は関係ないという考えから偏見に対処することは難しく、ほとんどの貢献者は女性が特別扱いを受けるのは不公平であり、成功はスキルに依存するべきだと感じており、より包括的な変化を妨げています。[40]
オープンソースソフトウェアプロジェクトは、多くの場合ボランティアであるプログラマーのネットワークによって構築および維持され、無料製品だけでなく商用製品でも広く使用されています。[58]
オープンソースという用語は、もともとソフトウェアのソースコードにのみ適用されていましたが、現在ではオープンソースエコロジーなど、他の多くの分野にも適用されています。オープンソースエコロジーとは、技術を分散化して誰でも利用できるようにしようとする運動です。[13] [59]しかし、部分的にしか重複しない、異なる競合する原則を持つ他の分野に誤って適用されることがよくあります。[40]
オープンソースソフトウェアの根底にある同じ原則は、オープンソース、オープンコンテンツ、オープンコラボレーションなど、他の多くの事業にも見られます。[60] [3]
この「文化」あるいはイデオロギーは、営利企業で典型的に使用されるような、より中央集権的な開発モデルとは対照的に、異なる課題、アプローチ、優先事項の同時入力を容易にするために、原則がより一般的に適用されるという見解をとっています。[15]
企業の90%以上が、オープンソースソフトウェアを自社のプロプライエタリソフトウェアのコンポーネントとして使用しています。[61]オープンソースソフトウェアを使用するか、あるいは既存のオープンソースソフトウェアを改良するためにオープンソースプロジェクトに参加するかという決定は、通常、実用的なビジネス上の決定です。[62] [63]プロプライエタリソフトウェアがオープンソースの代替ソフトウェアと直接競合する場合、その競争がプロプライエタリ製品の価格と品質に与える影響について、研究では矛盾する結果が出ています。[64]
数十年にわたり、一部の企業は、企業ユーザー向けのオープンソースソフトウェア製品のサービス提供をビジネスモデルとしてきました。これらの企業はオープンソースソフトウェア製品を管理し、ライセンスや使用料ではなく、改良、統合、その他のサービスに対して料金を請求しています。[65]オープンソースコンポーネントをベースとしたSaaS( Software as a Service)製品はますます普及しています。[66]
オープンソースソフトウェアは透明性を高め、科学的結果の検証と受け入れを助けるため、科学的なアプリケーションには好まれます。[67]
{{cite journal}}: CS1 maint: DOI inactive as of July 2025 (link)