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 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 and 3.0 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 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?
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 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, Docker, Google Guava, FreeBSD 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 and the Nintendo Switch 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 and MIT License. I release all of my works under those two licenses (and also the MPL 2.0 for complete products, aka not libraries). If you want a complete list, check out this awesome site from GitHub and look for licenses that does not feature the Same license tag in the Conditions column. They are the weak-copyleft ones.
That's all for now. Thank you all for your kind attention, and happy coding! <3


Latest comments (54)
You have just proven your ignorance about software freedom and appeal to the status-quo at that post. I am convinced more to use copyleft licenses after seeing this.
You don't get it because free software has nothing to do with open source. GPL was made to enforce the free software philosophy, not open source. Stallman doesn't give a damn about open source.
Back in times, when internet was not such a thing and there were no git nor github, selling free software licensed under GPL as is was a profitable business model.
Today GPL and free software is more about enforcing transparency for the users. Spywares are everywhere in proprietary softwares, it's a thing. When license your code under GPL you refuse to take part on that. It's a political act.
GPL enforces sharing improvements too and improve the integrity of the project. But that's more of a side effect than the initial intent the FSF had when they first wrote the license.
Finally, Richard Stallman is not a communist. He's more of a libertarian anarchist, but who believes in a regalian state.
The point of releasing a library as GPL is to keep it's use to only Free software (it's explained better on the FSF website). Which license you choose depends on what you want people to do with it.
But if Linux wasn't GPL the world would be totally different now - it's because of this license I as an end user can force a company that made some IOT device to give me their kernel sources so I can make modifications, and - what's more important - verify that it's secure.
Same with Android - you wouldn't get amazing ROMs because device manufacturers wouldn't share the kernel sources and DTDs.
I think there's an important point to be made: the GNU GPL isn't about protecting the developers' (sender's) rights, so much as it is about protecting the receivers' (especially end-users') rights. It attempts to, at whatever cost, ensure that the receiving party can use, study, adapt, extend the program for their own use. They can also share the software, extensions and derivations, but at that point they become the sender and must abide by the rights of their receivers.
That's all there is to it, really. The GPL isn't against any particular form of use, but when sharing / distributing / "conveying" is involved, the receivers' rights are protected. It allows any use as long as the property of accountability / auditability is preserved. It's free for the user, not (necessarily) for the developer.
You beg people to give others the freedom to take the freedom of others away? I'd rather give freedom to only those who will reciprocate it. Public structures (such as real bridges) must have diagrams on file with the government for accountability. Also, with software, hiding the source does not result in security (Whitman, 2017). Maybe some or all types of software should be required to be open source at minimum (or GPL). Gerber can hold your cutter machines worth tens of thousands of dollars hostage until you pay for a maintenance plan (thousands per year) just to get pattern-making software and driver updates to make it work beyond XP if you bought it then. Similar situations exist with machining (CNC/milling) firmware: One tooling company near me with two branches went out of business after a firmware upgrade the manufacturer insisted on installing for fixing issues--it caused malfunctions, and they later admitted they never planned to maintain that firmware. Companies can buy out software then discontinue it, such as with MX Suite (had been used for many websites), trueSpace (had been used by indie game devs due to excellent x model format support), and many others, abandoning users who invested in it. Bre Pettis regrets closed policies for MakerBot and is back to doing small business developing hardware using an open platform. You disproved your own money argument, since the money is made from service, which is still possible and widely successful with GPL software and devices that use it. App stores or convenient hardware are good methods of making money on GPL too. See Free software, free society: Richard Stallman at TEDxGeneva 2014. References: Whitman, M. E. (2017). Principles of Information Security (6th ed.).
I am taking a quick work at break so I can't comment as much as I'd like.
Using a copyleft license vs. a permissive can be used side-by-side, and it's what I strongly encourage. Some of the benefits that OP mentioned about permissive licenses are also true about copyleft licenses; they are not necessarily exclusive.
Copyleft came about as a result of ensuring that user's of software maintained certain freedoms. Just because a project is permissive doesn't mean that it'll be the 'successful' version of a software. Often times, users of popular software only interact with the proprietary derivative, and the OS version largely remains only of use to developers.
Copyleft as a philosophy, as well as copyleft software, have influenced the software community for the better. This is epitomised with Bruce Perens, after having written the Debian Social Contract and Debian Free Software Guidelines, writing the Open Source Definition, a list of 9 rights that are required for any software to be officially Open Source.
Bruce Perens explains that, as the author of the Open Source Definition, he was largely influenced by Stallman and the Free Software Philosophy, and he based the Open Source Definition on the Free Software definition.
Bruce Perens, as author of the Open Source Definition, explains that he based his definition from Free Software. Likewise, Bruce Perens' license of choice is the GNU GPL. (NOTE: All of my claims are sourced from Bruce Perens himself in the documentary Revolution OS)
In the end, copyleft and permissive software both have roles to play in society. There's a documentary I've seen about 30 times (no joke) called Revolution OS that documents the rise of Free Software, then rise of the Open Source Movement, documenting the rise of GNU and Linux along the way. Furthermore, it goes into details about how proprietary software vendors (mainly Microsoft) tried to
out-competebully FOSS from expanding.Richard Stallman, Michael Tiemann, Larary Augustin, Bruce Perens, Eric S. Raymond, Linus Torvalds, etc. are all interviewed (so we get a first-hand account from the progenitors of our modern culture).
Revolution OS (it's worth mentioning twice!) is a great documentary to learn about Free, Open Source Software and their respective movements, as well as the rise of FOSS operating systems and culture. Finally, it will shed light on the respective movements (Free vs. Open Source Software), and it may help people understand why sometimes
$free > $permissive # => true, and vice versa.So much for a quick comment while on a cheeky break at work, haha. To everyone, please feel free to get back to me and I will elaborate more :).
I think that you have missed the point of GPL, which is about guaranteeing that you will always be able to know (and change) what your computer does -- and that's essentially all what it does.
It doesn't force you to distribute all your programs on GPL, nor to use GPL for everything.
In general, the idea of "using X for everything" is a rather bad one, regardless of X.
But if you happen to be using Linux, then you're actually using the GPL license. If that bothers you, don't use it.
I think you have missed the point of my post. Using a library or software component licensed under GPL in one of my projects requires me to use the GPL (or compatible) myself, which I may not want to do. I don't care about the license of the software that I use as a final user, I always respect them. But as a developer, I hate to be told how I should write and distribute MY software by SOMEONE ELSE's license choice.
GPL is not about distributing YOUR software, but SOMEONE ELSE's software. If you can't accept that its author wanted its users to guarantee the freedom to decide what their computers are doing, and you don't want your users to enjoy this freedom, then just don't use it.
But stop saying that if a license prevents you from taking that freedom away from people, then it's "all but free".
Also note, that GPL does not distinguish between users and developers (as you do), because - unlike the authors of proprietary software - it does not assume the developers to be demi-gods and users to be some inferior creatures. On the contrary, it assumes that users are competent to understand and modify the software they are running, and this sort of respect is the very point of free software.
This is a great point. Also, if you're the original author (and, therefore, the sole copyright holder) of something, then you can still release it in dual/multi-licensed form with GPL among the options for the receiver. GPL isn't against that in any way -- it can't take away your rights as the copyright author.
Wait are you discovering that now? Wasn't this settled back in the 90s'?
I may not agree to your usage of GPL and communism in the same sentence but you are spot on in terms of freedom for a certain kind of people and software.
There are virtues to consider in freedom over exploitation. And both licenses cater to a certain class of programmer mindset and software licensed in question.
I like Educational licenses for a simple reason that as a Student of CS or a general geek one should be able to see a reference implementation of a core system.
Which is why i am in favor of whoever wants to profit from making an Open source Educational License Software by making it closed source.
At the same time if you ask Linus Torvalds, he would say that there could not be a better license for the Linux kernel than GPL. So i think there is a place for both licenses.
And i would agree that Linux Kernel is one of a kind and too valuable to be exploited by some company for commercial gains at the cost of exploiting the community.
Though i am perfectly alright with Open sourcing Kubernetes with MIT license because of the nature of complexity of the software in question. A Basic implementation of Kubernetes could be done by a Reasonably techie web developer but the same is not true for the Linux Kernel.
Though the most highly regarded License in my mind is WTFPL – Do What the Fuck You Want to Public License wtfpl.net/
WTFPL is probably the best Non-Educational, Pro-Freedom License out there.
I love the WTFPL, that's the most pure and powerful way to free your software in my mind
Some comments may only be visible to logged-in visitors. Sign in to view all comments.