DEV Community

Cover image for Choosing Open Source License Wisely🤔
Kingkor Roy Tirtho
Kingkor Roy Tirtho

Posted on

Choosing Open Source License Wisely🤔

Licenses are really important part of a project. It’s one of those protector that’ll make sure no creation of one is used by another for self-profit without permission

Even though Licenses simple stuff but they can get overwhelming to choose while owning a growing/expanding project. And it’s more important when you’re an one man show & you project is open source. Of course, you can create your own licenses. But to save time you can use a free pre-created one

Here’s a List of popular Free Licenses, their basic breakdown & compatibility:

1. MIT

It’s basically like saying take my piece of code/project, do whatever you want (commercially/non-commercially) but don’t blame me if anything goes wrong

It’s the most favorite Open Source Software license & being used by many popular libraries, frameworks, organizations & applications

Here’s the license

Image description

2. GNU General Public License (GPL) v3.0

It’s mostly like MIT but instead of saying “do whatever you want” it says “do whatever you want but keep license term unchanged”. GPL is one of the famous license for most of the open source project built on the convention & tradition of Unix & GNU. It can be seen mostly in Linux/Unix related projects

It’s a great license but it’s also called an “infection” as once you publish something under this license, other projects copying/forking this projects have to use this license or other licenses compatible with this license. Making every fork based of this license, it makes the license contagious. But it’s a great way to make the world more open & that’s why it’s OpenSourceFoundation’s favorite license

You can view it here

3. Apache License 2.0

Created by Apache Software Foundation in 2004 for the community & their own services. It allows doing all the things with the software including commercial use but it strictly prohibits the use of the software’s name/trademark/logo

It’s a great choice for organizations as it secures the trademark & name/logo usage without affecting the flexibility of use of the product/software/library

View it here

4. FreeBSD / BSD 2-Clause License

FreeBSD License or Simplified BSD License or BSD 2-Clause License is one of the popular licenses for OpenSource projects. It’s super simple & quite similar to MIT. It just says, “do whatever you want but don’t blame me if anything goes wrong!”

Here’s the license

Image description

5. New BSD License / BSD 3-Clause

It’s similar to BSD 2-Clause License, but with a 3rd clause that prohibits others from using the name of the project or its contributors to promote derived products without written consent

Here’s the license

Image description

6. Original/Old BSD License / BSD 4-Clause License* (not accepted in OSF)

The original BSD License. It was later updated as the BSD 2-Clause. It wasn’t accepted by the the OpenSourceFoundation because of it’s advertisement related clause (Clause-3). It’s like saying, “Do whatever you want but keep License unchanged/compatible & have to give me my credits”

Even though its outdated, it has quite a lot meaningful things to it. It can be potentially helpful for small or one man army projects as it secures the “credit” of the developer which is often neglected by most of the Open Source Licenses

Here’s the license

Image description

7. Mozilla Public License

Created by the Mozilla Foundation for the community. It’s a great license balancing both the open source & the proprietary perspective of a project. As such, it allows the integration of MPL-licensed code into proprietary codebases, as long as the MPL-licensed components remain accessible under the terms of the MPL. It’s a middle ground between the permissive licenses & GPL licenses

Great choice for organizations/company which want to be as transparent as possible also keeping other super secret stuff veiled

View the license here

What to choose?

It’s complicated. But one have to be careful while choosing licenses. If you’re fine to expose “everything” you can. Or you can keep your trademark/logo/patent/credit restricted too

Here are some conditions to help differentiate & choose the correct license:

  • If you’ve a healthy job but want to serve the community in free time, I’d encourage to choose the permissive licenses (MIT, BSD 2-Clause, Creative Commons)
  • If you’re running an organization & need a bridge between OSS & proprietary, use MPL
  • If it’s a non-profit OSS organization, use Apache-2.0/BSD 3-Clause
  • If you’re an one man show & don’t have a healthy job or a student, I highly encourage to use BSD 4-Clause or a similar one to keep your credit secure & make it easier to get a job. Also good luck & don’t give up😉

In the end, I’m nobody to tell what to choose or not. But Licenses play a really important role in the long run. Yeah, you can change it later (like me) but keeping the ground solid from the beginning is always better

Which one’s my favorite? (Opinion)

It’s the Original BSD/BSD 4-Clause License. But why?

If you’re an opensource contributor/developer you might be aware of the faker.js story. In case you’re don’t know, here’s a video explanation from my bud Jeff aka Fireship,

Most of the time OSS developer works in free-time. But there are many scenarios where that person remain jobless just to maintain the OpenSource Project. Sometimes it’s profitable (sponsorship) & sometimes it’s not

Everyone just uses those libraries where a very few contributes to the project. That’s not a problem, this is how open-source works, mostly. But the problem is when you use too much of that product & make profits but never payback nor give the credits

I’m not saying, the user has to pay with $ money initially or at all but there are other ways to payback. Such as, contributing back, sharing the project or give credit in their own projects. It doesn’t cost anything.

Its only a few lines for others but can be a life changing opportunity for the project owner/maintainer

After all, someone’s helping you for nothing. At least, be grateful to that person & try help him/her back in his/her problems if you’ve the ability

BSD 4-Clause makes it compulsory to give credits to the developer which is most of the time neglected. OpenSource doesn’t mean only open. It means sharing & helping others too. But people are selfish (that included me too) & we can’t change that. But if we try we can do anything & I guess it’s high time we give the proper credits to the proper credit-holder. And there is no shame in giving others their legal credits

“Mega corporation, startup & consulting firms, all make tons of money on the shoulders of open source software” ~ Jeff | Fireship

IMO, BSD 4-Clause License is now a great solution to these open source developer burn out problems. If it’s not maybe we should make Licenses that actually cares about developer credits similar to BSD 4-Clause but even better

Clause-3 of original BSD License:

Image description

At the end, this is all my opinion & personal thinking. Of course I can’t be right always. Maybe there are way better solutions to this problem

Do more OSS projects and
DO NOT BURN OUT & TAKE BREAKS

Social

Follow me on:

Discussion (20)

Collapse
anisbarghouthi profile image
Anis-Barghouthi

There is no such thing as the OpenSourceFoundation, there is the Free Software Foundation and the Open Source Initiative, these are separate non-profit organisations, the term "Free Software" is coined and defined by the FSF (see gnu.org/philosophy/free-sw.en.html), while the term "Open-Source" is defined by the OSI (see opensource.org/osd).
Although both of these terms, in most cases, refer to more or less the same thing, there are some differences that you can find in this article:
gnu.org/philosophy/open-source-mis...

The opposite term for both of these is "Proprietary Software" or "Non-Free Software".

Collapse
krtirtho profile image
Kingkor Roy Tirtho Author

Thanks for the info. I thought OpenSourceFoundation & OpenSourceInitiative refers to same but now looks like not

Collapse
drsensor profile image
Fahmi Akbar Wildana

Some resource and article by blueoakcouncil.org might help.
Also check their premissive and copyleft license list categorization.

Collapse
krtirtho profile image
Kingkor Roy Tirtho Author

Great resource. TY for sharing

Collapse
pgirikishore profile image
P Giri Kishore

Question: Can I use a tool/framework released under GNU GPL license to build a non commercial application in my organisation?

Collapse
italypaleale profile image
Alessandro (Ale) Segala

The GPL doesn't forbid any use. The people who wrote the GPL license (Stallman and the FSF) have always been concerned about their ability to modify the software they are running, not preventing commercial use.

What the GPL requires is that if you distribute an application that contains GPL'd code (e.g. a library) in binary form (outside of your organization), then you ALSO must make the source code of the entire app available under the GPL license. Corollaries:

  1. If your app isn't distributed (outside of your organization), then you don't need to release the source code
  2. It's ok to make people pay for getting the binary form of the app. But you must also make the source code available under GPL license (and know that people can re-distribute that).

(Note: I'm not a lawyer and this is not legal advice)

Collapse
krtirtho profile image
Kingkor Roy Tirtho Author

Yes, you can. But your commercial application have to be licensed under a GPL/GPL compatible license

Collapse
dynnammo profile image
Dynnammo • Edited on

Great article, thanks. It's hard to give an exhaustive list of all available OS licenses, but I'd like to add the Affero GPL License, recognized by the Open Source Initiative. I see it very much in recents among open-source projects. It add a particular clause of enforcing developers to publish their modifications. The idea behind it is to address the flaw you describe at the end of the article, which is basically take profit of the software, modify it internally without having the need to make these changes available to the public.

Again, warm thanks for this article. It sums up the subject very well 👏

Collapse
finnhvman profile image
Bence Szabo

Good and timely writing! BSD4 seems like a vey nice choice!

Collapse
oli8 profile image
Olivier

Cool stuff, thanks for sharing

Collapse
tammy profile image
Tammy

I use leftcopy.org just because I think large companies are the worst offenders at freeloading.

Collapse
tankerguy1917 profile image
tankerguy1917

Question: When is says to use your full name, would I have to use my legal name, or could I use an alias, such as tankerguy1917, as my name, to help keep my identity a secret?

Collapse
krtirtho profile image
Kingkor Roy Tirtho Author

I don't know this for sure. But I guess one can do that
But I'd recommend licenses that do not mention the author's name such as GPL/Apache-2.0

Collapse
jonnyeom profile image
Jonny Eom

A very helpful read. Thanks! Didn't know how nice BSD-4 was

I've always used this site for my projects.
choosealicense.com/

Collapse
ksengine profile image
Kavindu Santhusa

There is another license named Unlicense. A crazy name but it exists.

Collapse
thumbone profile image
Bernd Wechner

The Hippocratic License is worth a mention IMHO.

firstdonoharm.dev/

Collapse
kwing25 profile image
Kendra Wing

Great article. Appreciate your research & knowledge 👍.

Collapse
katafrakt profile image
Paweł Świątkowski

This is a nice comparison. I've been using MIT because it's kinda default in Ruby ecosystem, but maybe I'd consider switching to another.

I also like Beerware license ;)

Collapse
krtirtho profile image
Kingkor Roy Tirtho Author

Beerware Awesome

Collapse
leon0824 profile image
Leon

I prefer 0BSD. It is the most simple, short, straightforward license.