GNU Public License is all but free and you should never use it
Tags: opensource
Published: 2017-10-17 09:33:34

---
title: "GNU Public License is all but free and you should never use it"
published: true
tags: Open Source
canonical_url: https://matteojoliveau.com/gnu-public-license-is-evil/
---

 ![GNU Public License is all but free and you should never use it](https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/GPLv3_Logo.svg/1200px-GPLv3_Logo.svg.png)

The Free Software Foundation and its sprout the GNU Project are a core element of the free and open source software movement.  

They led to a new era of software development where sharing and improving as a community is more valuable than selling proprietary software (maybe because we [stopped selling software altogether](https://matteojoliveau.com/from-product-makers-to-service-providers) and started selling services).  

But there is a key thing in the most popular free licence of the world, a key problem that let me question if this license is truly free, or if it brings a distorted concept of freedom.  

And it's a problems affecting both version [2.0](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) and [3.0](https://www.gnu.org/licenses/gpl.html) of the GNU Public License.  

Is a license that sets limits to developers really "free"?  

Software freedom as intended by Richard Stallman and the FSF is not real freedom, just like communism is not really about sharing and loving each other.  

Communism is more like being at the bottom of the pit, and forcing everyone to stay down there just because you don't wanna be left behind by those who manage to climb.  

Software freedom in the stallmanian way of thinking is not about being free, is about not doing anything on your own.  

No commercial software, no code that you keep for yourself, no way to use it in a manner that makes you keep it private. Which is good, right?  

Well, not really. Not at all.

* * *

### Free not to be free

A key point of this whole text is about the definition of freedom. What follows is **_MY POINT OF VIEW_** and does not reflect any "official" definition of _freedom_.  

In my vision of software freedom, _free software_ means that I'm allowed to use it in my daily work, to make use of libraries and programs inside my projects. I mean, that is the whole reason I do open source in the first place. When I started the [PlugFace Framework](https://plugface.org) I decided to release it under the MIT License because I thought that it could be useful to other people in need of using plugins inside their software. I thought of other developers in my same situation, in need of modularizing their monolitic application at work with a simple and robust solution. I don't care if you want to use it in proprietary software, on the contrary I would be flattered by this.

**_GPL wouldn't allow that to happen._**  

A PlugFace Framework released under GPL would have never been used in enterprise environment because it would require to the user to release their software under the same license. Even with LGPL, which allows software linking to proprietary software, would not have been ideal since any customization (i.e. proprietary security features to validate plugins?) could not have been kept private.  

So if I'm developing a library, why should I want to use a GPL-like license?  

**Why should I choose a free license in order to limit other developers' freedom?**

![GNU Public License is all but free and you should never use it](https://i.warosu.org/data/g/img/0559/26/1470396293115.jpg)

> _But Matt, without a strong copyleft license $InsertNefariousSoftwareCompanyHere could steal your work and sell it with their name on it, and you wouldn't see a dime of it_.

I can hear you reply like that already.  

And my answer would be: **_THAT'S EXACTLY WHAT I WANT._**  

If you are reading this and you are a software company, please **_TAKE MY 
CHILD
 SOFTWARE AND DO WHAT YOU WISH WITH IT._**  

If my goal was to make money I wouldn't be doing open source, I would try with something easier. Like forex trading, ice-cream making or underground drug dealing.  

Instead, I'm doing open source software because I want people to use it, to solve problems with it. I imagine professional software developers like myself being stuck with a problem, finding out my [GitHub account](https://github.com/matteojoliveau) and thinking "Well damn, this guy has made a library that exactly do what I need".  

And it would download it, and link it into his software and proceding working, and I would send him a spiritual "You're welcome buddy" through the Force.  

That's why, if you write software libraries, you should **NEVER EVER USE GPL LICENSES**. The best enterprise software are released under weak copyleft licenses, like [Kubernetes](https://kubernetes.io), [Docker](https://docker.com), [Google Guava](https://github.com/google/guava), [FreeBSD](https://www.freebsd.org/) and many others.  

cLinux doesn't count. Linux is a final product, not a middleware. But still, remember that without weak licensing and with Linux as the only open source OS, products like the [PlayStation 4](https://en.wikipedia.org/wiki/PlayStation_4_system_software) and the [Nintendo Switch](https://www.reddit.com/r/NintendoSwitch/comments/5xbe5a/the_switch_runs_freebsd_making_it_nintendos_first/) would be very very different.

* * *

### Choose another license, please

There are many many great licenses out there that are truly free. They will make Stallman angry (and that's probably something that I would truly enjoy), but they will also make many fellow developers happy and thankful.  
My favourite ones are the the [Apache License 2.0](https://opensource.org/licenses/Apache-2.0) and [MIT License](https://opensource.org/licenses/MIT). I release all of my works under those two licenses (and also the [MPL 2.0](https://opensource.org/licenses/MPL-2.0) for complete products, aka not libraries). If you want a complete list, check out [this awesome site](https://choosealicense.com/licenses/) from GitHub and look for licenses that does not feature the _Same license_ tag in the _Conditions_ column. They are the [weak-copyleft](https://en.wikipedia.org/wiki/Copyleft#Strong_and_weak_copyleft) ones.

* * *

That's all for now. Thank you all for your kind attention, and happy coding! \<3