
「GitHubにあるコードを、自分のプログラムにコピペしても大丈夫?」
「MITとかGPLとか、ライセンスの種類がいろいろあるけど、何が違うの?」
プログラミングの世界に足を踏み入れると、私たちは**OSS(オープンソースソフトウェア)**という、偉大な巨人の肩の上に立つことになります。
OS、プログラミング言語、ライブラリ、フレームワーク…。開発に必要なツールのほとんどが、世界中の開発者たちの善意によって、無料で、そしてソースコードと共に公開されています。
それが、「ソフトウェアライセンス」**です。
一言でいうと、ライセンスとは**「そのソフトウェアの作者(著作権者)が、利用者に対して、『このルールさえ守ってくれるなら、自由に使っていいですよ』と、使い方や条件を定めた、法的な『利用許諾契約』」**のことです。
この記事では、プログラミング初心者の方が、知らず知らずのうちにルール違反を犯してしまわないように、わかりやすく徹底的に解説していきます。
-
なぜ、ライセンスの理解が、プログラマーにとって「必須教養」なのか?
-
OSSライセンスの基本的な考え方
-
代表的なライセンス**「MIT」「Apache 2.0」「GPL」**の決定的な違い
-
ライセンスを確認する方法と、扱う上での心構え
なぜライセンスは重要?「無料=無制限」ではない!
まず、大前提として理解しておくべきことがあります。
たとえオープンソースであっても、著作権は、そのソフトウェアを作成した作者(または組織)にあります。
もし、ライセンスという「ルールブック」がなければ、私たちは、他人が作ったソフトウェアを、一切利用することも、コピーすることもできません。
それは、著作権法で固く禁じられているからです。
ライセンスは、作者が**「私の著作物ですが、このライセンスに書かれた条件を守ってくれる限りにおいて、あなたは、これを自由に利用、改変、再配布することを、特別に許可します」**と、私たち利用者に、法的な「お墨付き」を与えてくれる、非常にありがたい存在なのです。
逆に言えば、ライセンスに書かれた条件を無視することは、契約違反であり、著作権侵害という、法的なトラブルに発展する可能性を秘めています。
「LinuxっていうOSが、無料で使えるって本当?」「WordPressを使えば、無料で本格的なブログが作れるらしい」「GitHubにあるコードって、自由に使っていいの?」 ITの世界に触れていると、このように[…]
OSSライセンスの基本的な考え方
OSSライセンスには、何百種類ものバリエーションが存在しますが、その多くは、利用者に対して、以下のような権利を許可しています。
-
利用する権利:ソフトウェアを、個人利用でも、商用利用でも、自由に使える。
-
複製する権利:ソフトウェアを、自由にコピーできる。
-
改変する権利:ソースコードを、自分の目的に合わせて、自由に改造できる。
-
再配布する権利:複製したり、改変したりしたソフトウェアを、他人に配布できる。
代表的なOSSライセンス:3つの性格を知ろう
ここでは、数あるOSSライセンスの中から、特に重要で、よく目にする3つのライセンスを、その「性格」と共に紹介します。
1. MITライセンス:「どうぞ、ご自由に」- 寛容な自由人タイプ
-
正式名称:MIT License
-
採用例:jQuery, Ruby on Rails, React, Vue.js, .NET Core, VS Code
-
性格:非常に制約が緩く、寛容。オープンソース界の「自由人」。
-
利用者に課せられる、たった一つの義務:
-
「著作権表示と、このライセンス条文を、あなたのソフトウェアにも含めてくださいね」
-
MITライセンスは、これだけです。
あなたが、MITライセンスのコードを使って、新しいソフトウェアを開発し、それを販売したとしても、
-
あなたのソフトウェアのソースコードを、公開する必要はありません。
-
あなたのソフトウェアを、どんなライセンスで販売しても構いません。
「私の名前さえ残してくれれば、あとは好きにしていいよ!」という、非常にシンプルで、ビジネスフレンドリーなライセンスです。そのため、多くの人気ライブラリやフレームワークで採用されています。
2. Apacheライセンス 2.0:「自由だけど、特許には気をつけてね」- 現実主義な優等生タイプ
-
正式名称:Apache License 2.0
-
採用例:Android, Swift, TensorFlow, Docker
-
性格:MITライセンスと同様に制約が緩く、商用利用しやすい。ただし、特許に関して、少しだけ追加のルールがある「現実主義者」。
-
利用者に課せられる主な義務:
-
著作権表示と、ライセンス条文を含めること。(MITと同じ)
-
もし、あなたがソースコードを改変した場合は、その箇所を明記すること。
-
特許権に関するルール:あなたが、このソフトウェアに関連する特許を持っていたとしても、他の人がこのソフトウェアを使うことを、その特許で妨害してはいけませんよ、というルール(特許ライセンスの許諾)。
-
Apacheライセンス2.0も、ソースコードの公開義務はなく、非常にビジネスで使いやすいライセンスです。
3. GPL (GNU General Public License):「自由を、次の世代にも」- 強い信念を持つ思想家タイプ
-
正式名称:GNU General Public License
-
採用例:Linux, WordPress, GCC
-
性格:「ソフトウェアの自由」という、強い信念を持つ「思想家」。その自由を守るため、利用者にも、同じ自由を保証することを求める。
-
利用者に課せられる、最も重要な義務:
-
コピーレフト (Copyleft):もし、あなたがGPLライセンスのソフトウェアを改変したり、一部を組み込んだりして、新しいソフトウェアを公開・配布する場合は、その新しいソフトウェアのソースコードも、同じくGPLライセンスで公開しなければならない。
-
この**「コピーレフト」**という考え方が、GPLの最大の特徴です。
これは、「私たちが保証した『ソースコードを見る自由、改変する自由』を、あなたが独り占めして、ソースコードを非公開にしてビジネスをすることを許しません。
あなたが受けた恩恵は、次の人にも、同じ形で引き継いでくださいね」という、自由の連鎖を強制する、強力なルールです。
そのため、GPLのライブラリを、自社のプロプライエタリ製品(ソースコード非公開の製品)に組み込んで販売してしまうと、自社の製品のソースコードも、すべて公開しなければならなくなる、という重大なライセンス違反になります。
ライセンスは、どこで確認できる?
-
GitHub:リポジトリのトップに、LICENSEやLICENSE.mdという名前のファイルが置かれているのが一般的です。
-
公式サイト:ソフトウェアの公式サイトの、ダウンロードページや、ドキュメントの中に、必ずライセンスに関する記述があります。
-
ソースコード内:ソースコードのファイルの先頭に、コメントとしてライセンスが記載されていることもあります。
まとめ:ライセンスは、感謝と尊敬の「ルールブック」
ソフトウェアライセンスは、面倒な法律の話、ではありません。
それは、素晴らしいソフトウェアを、無償で世界に提供してくれている、先人たち(開発者コミュニティ)に対する、**「感謝」と「尊敬」の念を、行動で示すための、具体的な「ルールブック」**です。
-
ライセンスは、ソフトウェアの「取扱説明書」であり「利用許諾契約」。
-
MIT, Apache 2.0は、ビジネスでも使いやすい、寛容なライセンス。
-
GPLは、**「コピーレフト」**という、ソースコードの公開義務を持つ、強力なライセンス。
-
何かを使う前には、必ずライセンスを確認する癖をつける。
オープンソースの世界は、このライセンスという、紳士的なルールの上に成り立っています。
そのルールを正しく理解し、尊重すること。
それができれば、あなたは、世界中のエンジニアたちが何十年もかけて築き上げてきた、巨大な知識と技術の資産を、自由に、そして安全に、自分の力として使うことができるのです。
将来性のあるIT業界で、専門スキルを身につけて活躍したいでも、 何から勉強すればいいの? 実務経験ゼロで本当に採用される?」膨大な求人情報の中から、自分に合った企業をどうやって見つけるの? 現代において[…]