私と同じようにソフトウェアライセンスについて混乱している人がいるなら、私は今、ソフトウェアライセンスをどのように見ているかを次のように示します。ソフトウェアライセンスは、ユーザーがコードで何ができるかを制御します。 MITライセンスにより、人々は何でもできます。MITライセンスでJSON解析ライブラリを構築したとします。スタートアップは、あなたのコードを取得し、変更し、有料の API サービスの一部として販売することができ、あなたに何も返すことはありません。コードコメントに著作権表示を記載するだけで済みます。React は MIT を使用しているため、Facebook はそれを独占的にすることもできましたが、オープンにしておくことを選択しました。これは「やりたい放題」のライセンスです。 GPLは共有を強制します。GPLの下でWebフレームワークを作成すると想像してください。誰かが新しい機能を追加するためにフレームワークを変更する場合、それらの変更も GPL としてリリースする必要があります。彼らは独自のバージョンを販売することはできません。WordPressはGPLを使用しているため、すべてのWordPressテーマとプラグインもGPLである必要があります。WordPressの上に商用CMSを構築すると、CMS全体がGPLになります。これにより、すべてがオープンソースに保たれます。 Apache 2.0 は特許をより適切に処理します。機械学習ライブラリを作成し、誰かがアルゴリズムを提供します。その後、彼らはそのアルゴリズムの特許侵害でユーザーを訴えようとします。Apacheライセンスを使用すると、ライブラリを使用する権利が自動的に失われます。それはパテントトロールに対する保護です。Kubernetes が Apache 2.0 を使用するのは、クラウド企業が特許の問題を心配しているためです。 BSDは基本的にMITで単語が違う。BSD の下にネットワークライブラリを作成します。MITと同じルールで、人々はやりたいことを何でもできます。FreeBSD はこれを使用しているため、Apple は macOS のソースコードをリリースせずに BSD コードを取得して macOS に入れることができます。ほとんどの開発者は、MITがより明確になったため、MITを使用しています。 LGPLはライブラリのGPLです。LGPL で PDF 生成ライブラリを構築します。企業は、アプリ全体をLGPLにすることなく、独自のソフトウェアでライブラリを使用できます。ただし、ライブラリ コード自体を変更する場合は、それらの変更は LGPL である必要があります。VLC メディア プレーヤーは LGPL を使用しているため、他のアプリは GPL にならずにビデオ再生を含めることができます。 プロプライエタリとは、すべてをコントロールできることを意味します。データベースエンジンを構築し、それを独自の状態に保ちます。企業はそれを使用するためにライセンス料を支払います。彼らはソースコードを見ることができず、変更することも、再配布することもできません。Oracle Databaseはこのように機能します。ライセンスからお金を稼ぐことができますが、それを使用できる人は制限されます。 デュアルライセンスはオプションを提供します。データベースは、GPLライセンスと商用ライセンスの両方でリリースします。オープンソースプロジェクトはGPLバージョンを無料で使用します。GPLの制限を望まない企業は、商用ライセンスの料金を支払います。MySQL はこれを行います。スタートアップは無料のMySQLを使用し、大企業は商用ライセンスを購入することがよくあります。 パブリックドメインはすべての権利を放棄します。ハッシュ関数を作成し、それをパブリックドメインに配置します。誰でも何でもでき、制限や帰属は必要ありません。SQLiteはこれを行います。法的リスクがゼロであるため、政府機関はそれを気に入っています。 みんなに使ってもらいたいライブラリーを作りたいですか?MITを選んでください。改善点がコミュニティに確実に還元されるようにしたいですか?GPLを使用してください。エンタープライズソフトウェアの特許が心配ですか?Apache を使用してください。コードを中心にビジネスを構築していますか?独占的であり続けます。ユーザーに最大限の自由を与えたいですか?パブリックドメインをお試しください。 重要なのは、目標とライセンス制限を一致させることです。他のプロジェクトがそのライセンスを選択した理由を理解せずに、他のプロジェクトが行っていることをコピーしないでください。
22.32K