The difference in open source licenses

Recently, the Open Source Initiative shared the Top Open Source licenses in 2025. In the article, they note that the counts are approximate, AI bots scraping the content and other activities likely skew the numbers a bit. While the actual numbers may not be exact, we can assume the top licenses in the list are probably the top licenses that people are looking for.

It’s not surprising to see the top ones listed here:

  • MIT
  • Apache
  • BSD
  • GNU GPL

The Open Source Initiative goes on to list other licenses, such as the OFL, AGPL, Postgres, and zlib licenses, but the MIT, Apache, BSD, and GNU GPL licenses are definitely top of the list. After the GNU GPL versions 2 and 3, there’s a big gap in view counts until the next licenses, like the ISC license and LGPL.

These are the licenses that come up a lot, so it’s important to understand what each license means:

Permissive licenses (such as BSD) allow anyone to use your code for anything. Note that BSD allows people to reuse your code in proprietary projects, without having to share the source code with it. For example, the BSD 2-clause license says:

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The MIT license is also a permissive license. I use the MIT license if I’m releasing something that’s pretty simple, like a lot of the projects that I share as articles. These are not very complicated programs, and if someone finds that my sample code from an article can help their project, I don’t mind if they reuse that code.

The MIT license only requires that the copyright and permission get redistributed with the source code:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Free software licenses are at the other end of the open source license spectrum. GNU GPL is the most common free software license. Under the GNU GPL, if you reuse someone else’s source code in your project, your project becomes a “derived work” and must also be licensed under the GNU GPL. This means that software that is developed under the GNU GPL can never become proprietary software.

The GNU GPL is quite long, and includes details like the conditions for sharing free software projects in the license, such as in section 3 of the GNU GPL version 2:

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

I prefer the GNU GPL when I’m working on a larger project, and I’d like to ensure that it remains free. I use the GNU GPL version 2 as a matter of choice; before version 3 was a thing, I also used the “or later versions of the GPL” phrase in my license statements, but these days I stick to version 2 only.


Year after year, the MIT, Apache, BSD, and GNU GPL licenses prove to be the most popular licenses. And that’s for a reason: they are recognized and well understood licenses that offer clear terms for how others can use your software.

But note that not all licenses are the same. “Open source” doesn’t mean that you can mix and match different licenses. For example, while it’s okay to reuse source code from a BSD-licensed project in a GNU GPL project, the opposite is not true. You cannot reuse code from a GNU GPL project in a project covered by the BSD license; the GNU GPL defines that the other project becomes a “derived work” and must therefore be licensed under the GNU GPL.

In this way, licenses can be confusing. To help clarify when you can and cannot combine source code under the GNU GPL, the Free Software Foundation has a list of licenses and comments about them. If you’re planning to reuse source code in your project, use this list to check that the two licenses are compatible.

Leave a Reply