GPL (GNU General Public License)
Definition
The GPL (GNU General Public License) is an open-source software license that allows anyone to use, copy, modify, and distribute software as long as any distributed modified version is also released under the GPL with its source code. It is used by developers who want their software and future improvements to remain open source.
The Problem That Led to It
The MIT License allows anyone to use open-source code, even inside closed-source commercial software. This meant a company could improve the software, sell it, and never share those improvements back with the community. Developers who wanted all future versions to remain open source needed a stronger license. GPL was created to ensure that improvements continue benefiting everyone.
What Problem It Solves
It guarantees that if someone distributes a modified version of GPL-licensed software, they must also provide the modified source code under the GPL.
What Happens If Not Used
A company can legally take MIT-licensed code, improve it, and release only the compiled software without sharing the new source code.
Easy Wording
"You can use my code, but if you share your improved version, you must also share its source code."
Layman Example
You share a cake recipe with this rule:
"Anyone can bake, improve, or sell this cake, but if you give your improved recipe to others, you must include the full recipe too."
Technical Example
MIT License
Open Source Project │ Company modifies it │ ▼ Commercial Product (Source code can remain private)
GPL License
Open Source Project │ Company modifies it │ Distributes Product │ ▼ Must also release the modified source code under GPL
For example, if a company modifies a GPL-licensed web server and distributes that modified version, it must make the corresponding modified source code available under the GPL.
Limitation
Many businesses avoid GPL because it requires distributed derivative works to remain open source. This makes it unsuitable for companies that want to keep their product's source code proprietary.
Solution
The next concept is the Apache License 2.0, which is more permissive like MIT but also provides an explicit patent license, giving users additional legal protection against patent claims while still allowing proprietary software.