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
Top comments (55)
Without GPL and its viral behavior open source would not become a thing. Everything would be proprietary and closed. Open source would be exploited and its code would be used in proprietary software without any benefits.
Maybe, or maybe not. Firefox was never GPL, and yet it single-handedly broke Microsoft's proprietary hold on internet browsers and protocols. "The Cathedral and the Bazaar" is the paper that inspired it, and it is not based on Free Software Foundation philosophy. It generated the entire idea of "permissive" licenses and led to the Open Source Initiative being founded. The OSI cooperates with the FSF while keeping distance from RMS's philosophy.
I agree that the GPL had an important role, and still does at times, but that doesn't take away from the fact that the FSF has done more to divide the programming community than build it. Some of our largest open source innovations come out of so-called "permissive" licenses. The large corporations contributing massive bodies of work do so under OSI's support and framework, not FSF's. Open source isn't quite as weak as some would believe.
Just think about docker, all the Apache softwares, Firefox, near all the Google softwares... None of them uses the GPL and still no one is abusing of them. Even Microsoft now contribute to free software. There is no more need to force people to go open source. Sharing is caring, not forcing
Newton one said the reason i am able to see so far ahead is because i am standing on the shoulder of giants.
Yeah, it certainly took these specific efforts to get to where we are now, but open source is fundamentally valuable enough that I think that progress could have happened under other circumstances. We only get one timeline, it's literally impossible to know.
While we're talking about theoretical history, by some interpretations, it may have been easier for open source to gain a footing without the FSF, simply because it took years of hard work to peel the "viral and divisive" label off the open source movement. It wasn't until relatively recent years that the OSI managed it, and larger companies started seeing the value in open source.
In that same vein, peer-to-peer technology might be a lot further along if its primary and/or famous use cases weren't immediately so anti-establishment.
"The Cathedral and the Bazaar" is a paper that only inspired a degenerate market term, which is widely used by megacorps as a new way of exploitation today. OSI does nothing but gets donations from those companies (such as Microsoft) for their "innovations" of showing free licenses as their beloved market term "open source". You need to remember that permissive licenses are also free software, and that so called innovative paper is based on the existing free software movement.
I find your assessment interesting, if utterly baseless. I'm a member of the OSI, and well familiar with the activities of the OSI, and the issues surrounding it.
You need to do a lot more reading.
cough cough Sun microsystems before acquisition cough IBM and Eclipse stuff cough Apache and their long list of free but business friendly software
I think most of your post goes around the fact that the license "limits the freedom of others"
Others that want free software in their proprietary. That actually makes me feel like when fascists asks for tolerance.
Tolerance required intolerance to the intolerance. I feel kind of the same with free software. And as other people stated. It was totally needed for open source to be a thing.
I think the person that publish its software under the GPL license doesn't want a company using their code and keeping it for themselves. It's so much better if a developer can use it, make it better and keep sharing it and continuing...
But that's my 2 cents.
Yeah like in capitalism we have a bunch of people climbing with only 1% of people having most of the money in the world :P
That's, of course, assuming the false dichtomy of "communism vs. pseudocapitalism", or "proprietary vs. GPL". It also assumes that the closed-source companies are mostly mustache twirling villains looking to make a dollar by any means necessary...which is true of some and not of others.
In reality, there's more complexity to it. A true free market system (ergo why I said "PSEUDO-capitalism") allows anyone to create and compete, without unfair advantage. We could (but shouldn't here) debate whether that actually exists, but that's the aim that open source and the OSI aim for. It isn't 'everyone must horde' (pseudocapitalism) nor 'everyone must forcefully share' (communism), but simply that we should be open to the idea of sharing, of building bridges.
Comparing ends, FSF and OSI are very similar. Comparing means, it's the difference between assuming the worst about people's motivations, and assuming the best. Only one of those means breeds collaboration and community.
Again, as I said in my other comment, GPL has its place. Actually, so does proprietary - it isn't always "I want to limit freedom, muahaha", it's often "there is no way to keep my company operational under an open source model." Try selling an open source game, you'll see what I mean. ;)
Not really wanting to start anything about Capitalism-Communism but just refer that comment :) I get your point. The major issue with this post is the
never use itthing that I don't really share.
And I get the fact that having a company under open source is hard and sometime almost impossible. Selling a open source game is a good point. Although not as a way of living. Having an open source game is a good project for other reasons more than to monetize it.
Yeah, "never use it" is overkill, but the arguments are ones that we've needed brought out in the open for a while.
Yes, it's a problem that the post says that "free" should mean the freedom to be non-free, and yet discourages the idea that I should be free to use GPL, entirely from a moral stance.
Need to say some stuff
1- "Open Source" is just a market term that is promoted and funded by corporations to erase the historic and avant-garde importance of free software movement, which consists the permissive licenses that this person claims to be different.
2- Freedom that limits the freedom isn't freedom. Opening your software for proprietary usage does that. Its like having the freedom of slavery.
3- You lack basic info regarding Marxism. Communism doesn't have anything to do "being at the bottom of the pit". That is a meaningless bs mostly said by people like Thatcher and Reagan, politicians famous for austerity, corruption and economic crisis afterwards. Communism is the name of stateless, classless, moneyless society while Marxism is mostly about laborers owning their labor. I suggest you reading some of the Marx and/or Engel's work.
I have read some of Marx's work, and the history of the twentieth century should tell any of us all we need to know about the impact of seductive, single factor explanations of class or group conflict, and Marx's disgusting legacy.
For anyone who wants to know how ideas like Marxism turn into horrors like the Soviets, the Chinese Communist Party, the Khmer Rouge, North Korea, and Venezuela, I recommend the following book:
The patterns are consistent enough for an easy comparison.
The "never use it" is there to light up the flame. And it worked apparently. I don't give a dam if you love gpl, use it and I'm ready to die to defend your right to use it. The whole article is just a giant pretext to discuss the theme.
Your damn clickbait technics!!! Yeah I can't deny it worked 🔥🔥🔥
I know I already commented, but this seems worth separate mention: why do we assume that proprietary use of open source code is such a horrible thing?
If an open source security protocol is developed, and it is used by Microsoft, doesn't that mean more people are secure? If a faster sorting algorithm is written, and Amazon uses it, doesn't that mean our browsing experience on Amazon is faster?
I think we feel "cheated" sometimes - "the big boys have everything, why should they be allowed to borrow my crayons too?" - but that actually seems a little petty when you think about it. We can't compete merely on moral high ground! Open source doesn't succeed because it is more righteous, open source succeeds because it is technically superior. The big boys aren't gaining an advantage over us by using our open source code, because we still use it! If Big Corp sells a product which does all the same things as Open Source Group, won't the free product win? Sure - it already has time and again.
By contrast, when we're operating on this "compete by moral ground" attitude, like the FSF does, it harms our quality. Some of the worst code I have ever seen comes out of GNU and GNOME. If you read the source code for
libstdc++, it is a crufty nightmare! They have no need to try and improve, because they don't feel a need to compete - they are morally superior, with the "holy blessing" of RMS.
Contrast with LLVM's
libc++- an open source implementation of the exact same library. It is clean, well documented, and better performing. They compete on grounds of technical superiority, not grounds of moral superiority. Apple uses them, but that doesn't matter - so does FreeBSD and many open source projects.
So, ultimately, I think half the "point" of FSF's platform is actually proven null and void.
The FSF assumes that because of the Embrace, Extend, Extinguish practice, and the Unix wars where proprietary vendors tried to assert their own flavour of Unix as "standard". (A closed one.)
This isn't like some paranoid fantasy of Stallman's, this is documented history. You might argue we live in a different age these days, with New Microsoft being all cuddly wuddly, but that doesn't mean the FSF ideology is completely unjustified.
No, that's fair, that has been a factor in the past, and one I had momentarily forgotten about.
Ironically, that article mentions the anti-trust lawsuit against Microsoft, and it was the Open Source Initiative which helped get the ball rolling on that, after the leak of the infamous Halloween Documents (read the book form of "The Cathedral and the Bazaar" for more history.)
I don't necessarily trust Microsoft these days, but there is a different legal precedence in place now. Attempting an "embrace, extend, extinguish" would probably go down quite differently today.
Even so, remember, I'm an OSI member - I believe there is a time and place for the GPL. Linux and many of its major pieces are best off with that license - especially factoring in the Unix Wars. The two problems you mentioned aren't "moral superiority" or "the big guy shouldn't borrow my crayons" issues, arguably by sheer scope and nature of operating system components. Applications and libraries are generally very different animals (and there are still places for the GPL there, as I said).
All this said, it still doesn't justify the sweeping 'all proprietary is evil' stance. RMS recognized a legitimate problem, but he responded by going philosophically overboard.
For the application developer that needs to make a living, that's an understandable position. For users however, in practice it comes down trading their freedom zero - which is arguably the important goal of the FSF - for said developer's freedom, usually without having much say in this. Nobody can meaningfully run or modify Facebook, or AWS, or most of the software defining to their own ends, regardless of how free or not their authors were to use whichever libraries they used to develop that software.
The wars of the past aren't all that this is about, they're just a motivator for a given position that still applies today. (Albeit a motivation that undermines attempts to explain it.) Whether that position is "good" or "bad" is not a trivial issue to reason about even on terms of software development philosophy, and can't be neatly reduced to "going overboard" vs. "being naive"; or handled by staking out what "really free" and "not free" is. (Which is a game of idealist semantics, and arguably materially irrelevant. Compare and contrast: the opinions of marxists vs. liberals on individual autonomy.)
The Facebook issue is more of "vendor lock-in" kind, but based on relationships.
Instead of devices and technology interoperability lock-in, Facebook is locking people's interoperability and communication to a single platform. If I wouldn't be on Facebook, I would loose asynchronous chat-based communication to half of the people I'm regularly communicating with. And, everybody who is on Facebook, is there, because of almost everybody is on Facebook.
I wouldn't care if Facebook alternative was closed source, as long as I'm not locked to that alternative and I can switch a provider or application whenever I decide to. For example, it doesn't matter which email hosting I use, I can still contact any other email. This can't be done with a centralized solution like Facebook.
That’s because one could argue that even the AGPL doesn’t go far enough and we need something even more restrictive (that we’re never getting) on developers that addresses user data like the social graph and acting upon it.
As great as the open source movement was for the needs of programmers, it’s hard to argue that the history of software in the past decade or two has been anything but a series of tragic defeats delivered to the users, the sharecroppers on the big data plantation.
For the records, the article is voluntarily harsh to make fun of the people thinking GPL is the only viable option for making the world open source. I do agree that the GPL has its merits, Linux is a fantastic example of that. I just wanted to expose the other way of looking at it.
GPL is for freedom to the end-user of the software, not to the developer reusing the code.
GPL also does not limit commercial use, you just have to make the software available to all end-users when they request it.
Which means death to all the commercial software. Even the great gpl-licensed softwares like MySQL actually sell a different licensed version
Yet mysql is GPL licensed and there are several large companies around it.
Red hat is a big business all around GPL software
Sure there is a place for other licenses but there are big advantages to GPL, where it puts everyone participating in a project on the same level
Actually most Red Hat software are under Apache license. They used GPL for RHEL because of linux
I would imagine that Red Hat chose GPL not because of Linux, but because of the majority of utility software being GNU software.
There are a wide variety of open source licenses that a developer can choose. It is even possible to choose multiple licenses, and give the freedom-of-choice to derived works.
Stallman's campaign is to promote open source, that stays open source, along with all derived works. (The "viral" part of the license.)
The "Free as in Freedom" book is a biography on Stallman. It's an interesting read. It's also free under GFDL.
I think both GPL and LGPL have their place. But for some projects they may not be suitable. Bottom line is: research your options carefully, and choose wisely.
You are arriving at this discussion some 20 years late and did not do your homework. This seemed like a classic FUD Microsoft article from 1997.
You have LGPL for libs
Actually LGPL is very suitable for libraries, that it preserve the freedom of the source code with copyleft. As a radical copyleft and GNU supporter I use LGPL for libraries.
I would say there was a time when we needed the GPL more widely, as a protective shield that allowed open source to take root. And there are still cases where the GPL is appropriate, as it does offer excellent protections for products which are meant to be "share-and-share-in-kind," such as Linux. It additionally makes dual-licensing possible, whereby you can either comply with the GPL or pay the developer for commercial use.
All that said, I agree that the GPL is often the wrong choice, for the reasons you stated. The philosophy behind it is often as divisive as Steve Ballmer's "don't **** with Microsoft".
I am a strong believer in the four software freedoms, but I also believe in a fifth: the freedom to share. A developer should have the basic right to truly share what they created with others, not be forced to lock it down to the GPL because it touched GPL code in some manner.
(For the record, I'm a card-carrying member of the OSI.)
I love OSI. I'm thinking about getting a membership myself. The movement OSI promote is exactly what I imagine when thinking about open source. In contrast, I think of the FSF as something too extremist and dictatorial to be really sane and useful for both us developers and our usere
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.
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 :).
Great article. There are certain types of software that I think GPL is well-suited for, and I think we should recognize it for the great things it's done for the software industry, but it's become a dinosaur fronted by an ideological nutjob whose arguments only work in a hypothetical domain where the world is filled with mostly bad actors.
There are a lot of good arguments to be made against GPL, many of which you point out in the article, but the greatest point IMO is a counter to the oft-repeated claim that "Big bad corporations can steal your work and profit off of it."
Look at the biggest MIT-style licensed software: Angular, React, Node.js, Atom, Visual Studio Code, etc... These are all corporations using their resources to develop software and giving it to us to use for free.
Thanks! You are one of the few that saw beyond the mere flame I tried to light up and brought some meaningful considerations to the discussion.
And I totally agree with you. I work for a company that makes proprietary software using open source component, and we release some open stuff too whenever we can.
It's the whole point of my article. Being free of developing proprietary software
FWIW I license any libraries I create under MIT for the reasons you cite in your article. Basically, anything that is designed for reuse gets licensed for reuse. However, I have started to appreciate the GPL for applications that I create. I like knowing that derivatives of those will stay open.
That's a perfectly reasonable use of the GPL and I definitely agree with you. Thought you might as well consider the MPL 2.0 (the one used for example by Firefox) which still protect your code without influencing other's application that might link to yours, for example through some API of some kind
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.).
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.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.