Do you think this is why people are abandoning the GPL license in favor of MIT/BSD? Something about the fight the GPL aims to win being a hopeless fantasy? In the face of the sentiment you and OP express, I'd think GPL usage would be widespread.
That said, I do wish people would be a little more nuanced about it. IMHO (generally speaking) make libraries permissive, make applications GPL
This is a pretty cynical "assume the worst" outlook, and it badly violates Occam's Razor. I think a much more likely reason that corporate lawyers disapprove of the GPL is that one of their main jobs (in some cases their entire job) is to protect the company's IP, and the GPL is a huge threat to IP. Any lawyer who didn't advise avoiding the GPL would be negligent. I personally love the GPL and encourage its use whenever possible, but I avoid it in decisions for my employers and customers because of the risks. I think generally speaking the risks are not nearly as serious as most people I think, but they do exist (otherwise the copyleft philosophy of the GPL would be pointless!)
The purpose of GPL and Free Software (which it has actually had resounding success in) is to develop a free commons which will stay free and not be exploited.
It's not for you to exploit to make a buck, and if that excludes your project, that's fine.
There are lots of things I would never consider free-licensing, but I think people badly miss the point of free software because they are stuck thinking only in terms of their own needs and personal benefit.
Again, if you don't want to use or contribute to free software, that is perfectly reasonable. But just bear in mind that the Linux kernel and GCC are incredibly valuable tools which are firmly in the commons and will remain free, and which you have benefited enormously from the use and free availability of.
It's not for you to exploit to make a buck
Of course it is... That’s what Google does, that’s what all companies who are large enough to know how to work around the GPL do. Every company who uses it on their own servers without telling you, or even compiles and distributes it hoping that no one notices, does. And when they do, they sometimes contribute resources back to the project, which helps it to thrive.The GPL is very ideological, and there’s nothing wrong with that but you can see the cost of that right here: where someone pointing out there is a hidden cost is shamed for doing so. Given the chance of contributing code or community to two similar projects, I prefer the one that’s more about building than it is about contracts.
The freedom to deny other people the freedom you are enjoying is not compatible with the notion of freedom. It's hypocrisy.
That's not to say there is no place for MIT/BSD licenses, but it is not with general application software or libraries used to build such.
To me that is just wrong.
I've made lots of money and I publish every piece of code I've ever written to do it.
What you are describing must have been written by someone who does not believe in software freedoms.
Software freedom is an ideology, not a license. If you license part of your software as free software but not other parts of your software, you do not believe in software freedoms for the users of that software.
It's sort of like a factory that only uses slave labor for one step of production. Does that factory operator believe in human rights if their line is 90% respectful of the dignity of mankind?
What you are describing must have been written by someone who does not believe in software freedoms.
That seems to be a common sentiment, that preferring non-GPL projects is about exploitation, and I don’t think it makes any sense. The GPL is a contact that takes away some rights of the people using it, and that makes everyone freer? I understand the goal of wanting users to have rights that they would not otherwise have, but binding every developer in the hope of eventually binding multinational organizations seems like an awfully high price to pay. I've made lots of money and I publish every piece of code I've ever written to do it.
If only this were the common case. I once asked Stallman if he had any ideas on how we might make that more common, and all he said was it wasn’t his problem. I agree that it’s not his problem, but the prevailing solution seems to be to avoid the GPL. I think that many people would love to hear your thoughts on it.I'm curious to know what your personal method is. Consulting, paid support, proprietary dual-licensing maybe? There are indeed many ways to make money and still publish code as FOSS; the tricky thing, as always, is to work out which way is the right one for you.
GPL's freedom is not about you as a dev, it's about me as a user.
This is true for you, now. But that's not to say it does not increase freedom over time, over a couple of generations of software enhancements.
This is why I do both. I copyleft some projects. Others, I don't. It all depends on the balance of needs.
Although, for me, the issue isn't releasing source code at all. That's orthogonal to the issue of whether or not to use an open source license. I have yet to release software, open source or otherwise, where I haven't made the source available. For my non-OSS projects, that source is only available to people who have purchased the software, though.
To put it another way, as a software developer I would personally like to make a living analogously to how a successful book’s author makes a living. Such an author can make a living primarily or even exclusively from writing each book, not from giving away the book for free and making custom versions of that book for individual readers, or by offering and charging for live, public readings of the book, or by asking for voluntary donations from those that download the book, or by selling merchandise related to the book.
I personally want to make a living making software products, not services. GPL doesn’t seem to offer me a way to do this.
It's exactly the opposite!
If you want to make a living making software, you make it GPL. Any corporation that wants it will need to pay you for a commercially licensed version they can use (it's your code, you can license it in as many ways as you want). The hobbyists can use the free GPL version and the companies can pay you for your work. Win-win.
If you make your software BSD/MIT licenses you can't make any money, every corporation that wants it just takes it for free so you can't make a living out of it. You could try selling support but if your library is great and easy to use, not much money in that.
Unfortunately for you (and me) even if you make a really awesome library and license it as described above, you still can't make a living because there are other similar libraries with MIT/BSD license and the corporations will use those (even if they are inferior to yours) to avoid paying you. Thus, the market for selling software like this has been eliminated and we're stuck selling subscription services.
If you don't feel right for open sourcing software you wrote for someone else, you could always offer your client a discount to let you open source the software. There are quite a few companies that now make their money supporting open source software, even when they aren't writing it themselves. I've done this myself, and I think it's a lucrative business model that still gives everyone involved freedom.
These two things are pretty unrelated.
For Android apps, a common model to have a paid version in the play store and still publish the source code on github with GPL. Here the GPL actively protects you against somebody coming, doing some minor modifications and then pushing their own paid-for version to the app store while not publishing the source code (which they could easily do with other licenses).
This creates an interesting and important second-order effect that allows it to accomplish its goals without needing to boil the ocean by ensuring every user has the same ability to develop the same software, blurring and reducing the line between user and developer, creator and consumer. Practical considerations often prevent the expression of this effect but the opportunity doesn’t even exist in most other situations, particularly when you get to web services.
I didn’t reply to the important issue of money, the fundamental developer problem, because I’ve never been in a situation to sell my own code: my own projects have zero to do with my rent work.
From my POV the GPL certainly seems alive and well, and the ideology of the Free Software movement remains sound and strong.
What I'm alluding to is the wider public. In <podcast-i-dare-not-mention> we literally walked around town interviewing young and old. Soon as I can, I'll share the results in a HN submission.
Please do!
I once inherited a GPL project, but I couldn't muster any community interest in working with it. Plugin authors would have been compelled to use GPL and no one seemed interested. We had to burn the project to the ground and start over with a new MIT licensed project. Now there's a flourishing community of plugin authors working with it.
GPL being a viral license is the core problem, I think. I get the intent behind that clause, but developers tend to not enjoy being mandated to like that.
I don't think GPL is bad, but it's not exactly pleasant either.
Most people want to write software, not worry about licences. MIT seems easier, so people use it. For commercial as well as pure hobby projects.
The FAQ also says that if "establish intimate communication by sharing complex data structures, or shipping complex data structures back and forth," then the that is essentially the same thing as dynamic linking, and so the GPL applies to your program as well.
Link to the FAQ: https://www.gnu.org/licenses/gpl-faq.en.html
The relevant FAQ questions:
----
> Does the GPL have different requirements for statically vs dynamically linked modules with a covered work? (#GPLStaticVsDynamic)
> No. Linking a GPL covered work statically or dynamically with other modules is making a combined work based on the GPL covered work. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
----
> When is a program and its plug-ins considered a single combined program? (#GPLPlugins)
>It depends on how the main program invokes its plug-ins. If the main program uses fork and exec to invoke plug-ins, and they establish intimate communication by sharing complex data structures, or shipping complex data structures back and forth, that can make them one single combined program. A main program that uses simple fork and exec to invoke plug-ins and does not establish intimate communication between them results in the plug-ins being a separate program.
> If the main program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single combined program, which must be treated as an extension of both the main program and the plug-ins. If the main program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.
> Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.
----
> Where can I learn more about the GCC Runtime Library Exception? (#LibGCCException)
> The GCC Runtime Library Exception covers libgcc, libstdc++, libfortran, libgomp, libdecnumber, and other libraries distributed with GCC. The exception is meant to allow people to distribute programs compiled with GCC under terms of their choice, even when parts of these libraries are included in the executable as part of the compilation process. To learn more, please read our FAQ about the GCC Runtime Library Exception (https://www.gnu.org/licenses/gcc-exception-faq.html).
And before anyone says "someone can make a closed fork of your code and then charge for it", I am aware of this. I also don't see the problem. My goals when sharing code are to share my work and help others by doing so. If some company uses my work to profit, I still have accomplished my goals. Moreover, others can still download my original code if they wish and reap the same benefits as the for-profit company did. This is a great outcome. Everyone benefits, nobody is harmed. While this scenario is often used as an argument that permissive licenses are bad, I think it is a very poor argument indeed.
For user-facing software, GPL is fine, but fewer people actually want to write that.