Hacker News new | past | comments | ask | show | jobs | submit login
My Personal Journey from MIT to GPL (drewdevault.com)
413 points by robenkleene on June 14, 2019 | hide | past | favorite | 417 comments



I can't relate to this at all, I feel like I went the opposite way. I started out putting all of my work out under GPL but slowly realized how restrictive and demanding such a license actually is, I think public domain is the license that provides the most good to the world as a whole. It enriches everyone, even those who I don't necessarily agree with. It is a much more powerful statement in my view to provide work in a way that allows the entire world, (corporations included) to enrich themselves and educate themselves in an open and free manner.

If this means that they are going to repackage and sell the work, that is their prerogative. If that means a professor wants to put the work into their course and help to instruct a class with it, that is great too. It is nice to attempt to force people to play by the rules I like in order to try to enforce the actions that I see as best for the world, like sharing, etc. But at a certain point you just have to realize that there are differing points of view, that is just the way things go, and "progress" includes all of them.


> It enriches everyone, even those who I don't necessarily agree with.

That's definitely a valid PoV, but you just have to realize/accept that it may empower people who have power over you. I'm mostly talking about economic power here, but with the absurd expansion of lobbying, etc., this may extend to political power, cf. Turbotax[1].

Again: It's ultimately up to you, but for me... I don't want to give big conglomerates an inch if I can avoid it. Both as an individual and as a software-development business owner. (We do bespoke software, so "overly-permissive" licensing isn't really much of threat in that space -- from either perspective: There's no software that does what we provide, nor would what we provide do much for anyone else except our clients.)

I'm not sure if this is too controversial, but I think BSD (permissive for developers, maybe restrictive for users) vs. GPL (restrictive for developers, permissive for users) is very similar to the Paradox of Tolerance in a way.

[1] Who knows if they're using MIT/BSD licensed code, but I think it serves as a good example of the power of lobbying at least.

EDIT: I don't grammar so good.


> I think BSD (permissive for developers, maybe restrictive for users) vs. GPL (restrictive for developers, permissive for users) is very similar to the Paradox of Tolerance in a way.

It very much boils down to tolerance, yeah. I've made the experience that in the communities where permissive licenses are common, there is much larger tolerance for proprietary software and services than in communities that revolve around GPL. I personally don't care much about GPL vs permissive per se, but I do care about the four freedoms and see copyleft as neccessary evil that's needed in some instances to prevent proprietary takeovers.


The GPL is not self-serving; it is a tool to achieve a type of society, and that is the society you seem to enjoy, too. After all, by what else should be measure the permissive licences vs copyleft licences if not by their influence on society?


Are you one of those "GPL is socialism" people? You are misguided. Yes, there are lots of marxists/communists in the open source / free software community and most people in it lean left.

But the GPL itself is compatible with a capitalist society. In fact, GPL can be the basis for making money with FLOSS software, by offering non-GPL'd commercial licenses. All the GPL ensures that if you want to make a proprietary fork of the software, its original author has to be made part of the equation. Some people see it as a tool to achieve communism and I think they are misguided in the view that the goal is desireable. The open source software they create is nevertheless a valuable and worthy contribution to mankind. You can't just reject someone's work because of idiotic ideology. As long as they share this view and allow me to have a productive working relationship with them on the open source component, I'm fine.


> Are you one of those "GPL is socialism" people?

No, not all. I don't even know why you'd assume so. I don't even see how you connect what I've said remotely to the left-right oversimplification of political opinions, let alone with one of those sides.


> I don't even know why you'd assume so.

In my comment I was talking about communities and you replied with a comment about types of societies. For me a community is focused to one thing like idk a specific game or fan community of a book author, while a society encompasses all aspects of life for its members. So for me, a "type of society" is about a general way of living together, be it capitalism, feudalism, socialism, etc. I've thought you meant that but apparently you haven't so my comment doesn't apply to you, sorry :)


I would argue if you had to paint the GPL with a particular brush it would either be anarchist or possibly (modern) Marxist. Neither are necessarily incompatible with capitalism (in the "free market" sense at least, they are incompatible in the Marxist sense of "employer/employee dichotomy").

The idea is that the GPL empowers users to modify and distribute software rather than enforcing a particular structure of developers and users.

Of course the GPL is not a system of government, so these comparisons are mostly "in spirit". In reality, it's a clever hack to give power to users by abusing the capitalist copyright system (which has historically morphed into a tool for corporations to oppress users).

But the GPL is definitely not communist nor socialist because it has no relationship to government intervention at all (other than relying on copyright laws for its strength). Marx had no interest in governments.


The above commenter may not be, but the author of the article very much seems to think that gpl is exclusively socialist. As a non socialist myself and a gpl fan, I hope people will see that gpl is perfectly valid in a non socialist context, as well.


> but I think BSD (permissive for developers, maybe restrictive for users) vs. GPL (restrictive for developers, permissive for users)

Strawman. MIT/BSD is not restrictive for users.

When someone derives from my permissively-licensed code and doesn't share back with me? Not my problem, but theirs. They now have a legacy fork to refresh every so often at some non-trivial cost. If I'm maintaining a codebase for them to contribute, then they might be better off contributing. If my codebase is their secret sauce, well, good for them -- perhaps they should consider paying me to help them, and they are welcome to try, but it's not a requirement. It's all good.

Now, if I'm building a project to monetize, I might not open source the secret sauce. The GPL wouldn't help me there anymore than BSD/MIT. So, what good is the GPL to me?


Neither the MIT X11 license (one should be careful to identify which MIT license is being talked about as MIT has used many licenses for software) nor the modified (or 3-clause) BSD license look out for patent treachery. For all the user knows, perhaps your organization holds patents which read on the software you're distributing and this program is a means to give them something that tempts users to run, modify, and share software landing them in a patent infringement lawsuit. It's great that you write and distribute free software, but if you insist on using a non-copylefted free software license the Apache 2.0 license is a better choice for users of your software.

But it is also in user's interests to look out for derivative works because that means users of those derivative programs get software that respects their software freedom. Proprietary derivatives of non-copylefted free software means software that doesn't respect a user's software freedom.


I read what you say and want to flip it around back at you - Aren't you just projecting your own power in lieu of your perceived loss of power?

Even your framing of your market space projects a sense of power.

GPL actually doesn't protect you from your fear. The AGPL does, but I don't know much that uses that.


Many years back, I bought an expensive android phone to discover that it did not support my native language. I have the necessary technical skills to add support for it, but because the phone was locked down (something enabled by permissive licenses but not the GPL), I couldn't fix the phone myself and ended up with a very expensive but useless brick.

Corporate interests rarely align completely with your own, and this small difference can be very damaging to your interests. The GPL, while not perfect, alleviates some of the damage caused by this misalignment by ensuring that users remain in a position to address it.


The problem is, in practice, the GPL doesn't assure as many rights to the user as it is claimed. The example of Android shows this clearly. While the base of Android is GPL and consequently freely available, nonetheless Google managed to mix it with enough proprietary parts, so that they could could block Huawai from selling their phones with Android. Of course, Huawai is able to build their own OS based on the open source parts of Android, but for all practical purposes it will be a separate OS.


Only the kernel is GPL, AOSP is Apache.


Well, right. Thats my point. They have enough parts in "Android" which don't fall under GPL and thus they can keep them proprietary.


"the GPL is ineffective because the non-GPL parts become proprietary" doesn't seem like a strong argument against the superiority of the GPL.


You are not getting my point. The point was, that the ability of the GPL to enforce source sharing is limited. Where source sharing and redistribution are not desired, GPL licensed software just isn't used. Or used in a way that it does not affect the propriatary parts.


The whole argument of Stallman is that you don't give companies the choice to use permissively licensed software (by making it economically impossible for them to rewrite the entire body of free software).

I think "there isn't enough software under the GPL" is not a criticism of the GPL's effectiveness. If anything it supports the GPL as a method for ensuring user freedom.


If the only open source software available to companies were GPLed software, they would not switch their product to GPL, but rather not use open source software. GPL isn't making companies share source which they don't want to share, they just avoid anything GPL. That is what I meant with the limited powers of GPL.

This isn't about not wanting to "give back" to the community, companies using permissive licensed software are contributing back. It is about that the GPL is incompatible with the business model of all companies which are licensing (selling) the software they produce.


> That's definitely a valid PoV, but you just have to realize/accept that it may empower people who have power over you.

Newtons Equations has also empowered the powerful for a while now but I think we are still happy that they are available for free for everyone without any limitations.


Nobody can take them, change them and close them and sell you a better version of them. So, I have no idea how you made the connection to MIT here.


In the same way nobody can take your MIT program and close it.

Create a better version? Sure. Make the better version closed? Sure.

But close it? No.

Same with math: once discovered and publish anyone can do anything with it.


What? I'm really struggling to find the nugget of 'point' in there, but... what?

Are you saying that Gravity is somehow biased toward powerful people?

Are you saying that refraction is somehow biased toward powerful people?

I'm left so confused by your comment. It's amazing -- hopefully in a good way!)


I believe etland might be referring to the knowledge provided by discovering the equations, rather than the natural phenomena themselves. But I may be wrong.


Yep, I'm referring to the fact that you can study, use and build on any mathematical or physics work from the past without understanding or complying with pages of what the idea of "GPL" might have looked like hundreds or even thousands of years ago.


> I'm left so confused by your comment. It's amazing -- hopefully in a good way!)

This is such a great positive way to reply, kudos


People who have power over you are, by definition, already empowered. Whether or not you give them something for free isn't going to move the needle.


"something" = "leverage".

Disprove that.

As a bonus point, leverage is exactly what you may be giving them by licensing with the BSD/MIT/... There's no guarantee that they'll gain leverage, but if they see and seize the opportunity then that's what they'll get.

EDIT: The APL 2.0 is kind of interesting here because it doesn't really do that much over BSD/MIT/... except for the patent grant thing. The patent thing actually brings it much closer to 'acceptable' for me, personally, because a lot of instances of conglomerates exercising their power has been through software patents.


It does cement their power over you even further though. An individual project may not make an appreciable difference, but in aggregate, if lots of people make similar choices, it may have an impact.


Easy counter example: cockroach labs & Amazon

Why did cockroach decide on their new business license?


I don't think that is a fair counter example since it isn't actually straight GPL and provides a different type of leverage than GPL does, which is what we were discussing. The Cockroach Community License[0] was created specifically to fit their needs, and it differs from GPL in several ways.

[0] https://www.cockroachlabs.com/cockroachdb-community-license/


The parent I'm responding to is trying to suggest that giving entities more powerful than yourself (eg better funded) doesn't help them.

That's obviously bs, and that's what I was responding to.


> It is a much more powerful statement in my view to provide work in a way that allows the entire world, (corporations included) to enrich themselves and educate themselves in an open and free manner.

That is the purpose of the GPL as well.

The GPL doesn't say that you have to be a free love hippie to use the software, in fact it says that everyone can use whatever.

What it does prescribe is that if you extract value from selling FOOS (not using, but distributing) you must play by the rules of FOOS. You can not sit on the sidelines and extract value without providing anything.

Nowhere does it say that you have to share my values. But if you sell my software you have to play by my rules, and that means contributing back.


I agree. The GPL is sort of a hack for people who don't believe in Copyright. In an ideal world, there would be no difference between GPL and public domain, but in our world the GPL forces people who use your code to behave as if everything were public domain.


Someday, that might come full circle and you'll be the one who won't be enriched because the original code was MIT and not GPL.

Here's an example: you buy some embedded hardware for a personal project, but you find out that the toolchain for that chipset is a pile of proprietary blobs built on Clang and it only runs on Windows. If it were built on GCC, then the GPL would force them to make the source available and people could adapt/update/rebuild it as needed.

Making something MIT/public domain is free for one hop, from you to the next person. After that it can become even more restrictive and demanding than the GPL (i.e. proprietary binaries).


I can't find the link, but I remember someone from the X Window System regretting that X11 was under the MIT License - it's the origin of the MIT License - rather than copyleft, precisely because so many companies just would not give code back.

Keith Packard on this in 2015:

https://list.waikato.ac.nz/pipermail/wlug/2015-September/013...

> Keith made it clear he prefers GPL-style (copyleft/sharealike) licences to MIT/BSD style ones. Net contributors of code tend to prefer the former, while net consumers of code (those who don’t want to give back to the community) tend to favour the latter. In other words, freeloaders.


> while net consumers of code (those who don’t want to give back to the community) tend to favour the latter. In other words, freeloaders.

I think this is a really unfair statement - "net consumers of code ... freeloaders".

While there are surely plenty of users of code who are not contributing at all, and they would be freeloaders, the phrasing "net consumers" means that some of the consumers are contributing back code, just not as much as they consume.

I would wager that most end users are freeloaders (they never commit code back).

I would further wager that most developers are closer to end-users.

Finally, I would wager that the vast majority of developers who contribute code are net consumers, not producers.

To me, it's not so surprising that a few people who put in the most public effort sometimes feel bitter that others don't carry their weight.


GCC has the GCC Runtime Library Exception: the resulting binary of code compiled with GCC doesn't need to licensed under GPL.


Grandparent is talking about a modified GCC. Not some binary compiled with GCC.


If they aren't distributing their modified GCC with the hardware, they have no obligation to release the source code either.


> If it were built on GCC...

This assumes that if the only option available to the embedded hardware company were the GPL, that they'd go with that option. (more likely, the product would never come to market)

In reality, releasing something under the GPL typically just ensures that it won't be used by businesses. This is a real bummer, because it means it is off-limits to me during my day-job.

I would love to try and convince my coworkers to write some Scheme, but the majority of that community uses the GPL, which makes it a bit of a non-starter.


Are you telling me nobody would sell cable boxes or TVs if they had to provide a URL where I could download the code? That sounds ridiculous.


Thisnis because most businesses don't understand GPL.


> It enriches everyone

Well, except the users.

Say EvilCompany takes the code, puts in in their buggy operating system, distributes it under a commercial license, and then you end up being prevented from fixing the code that you wrote.

Because that’s what happened to RMS, and that’s why we have the GPL.

It’s freedom; not for the author, and it’s not freedom for the developers or the vendors, it’s freedom for the users.


I'm sure you understand this already, but corporations can repackage and sell GPL code.

The main thing you're granting in choosing a permissive license is the right to deny others the right to enjoy future improvements to the code.

This is why in practice permissively licensed code is more successful in industry. Industries like to exercise the right to make proprietary improvements to open source code.


> can repackage and sell GPL code

Can you give me some detail about how/when this happens? I was under the impression that you can sell support(or other ancillary services) for GPL'd code, but not for the code itself.


"Actually, we encourage people who redistribute free software to charge as much as they wish or can. If a license does not permit users to make copies and sell them, it is a nonfree license."

https://www.gnu.org/philosophy/selling.en.html


Anyone can sell software built from GPL code, but if/when they do so, they are obligated to provide source code for that software to anyone receiving a copy, and those users are permitted to redistribute both the software and the source code as long as they also adhere to the GPL.


Now I understand, it's not the code itself that has a price(hence the 'THIS IS FREE SOFTWARE' notice at the top of GPL). It's the entire "product" they charge for. Thanks for the reply!


Not quite. FREE SOFTWARE in that context is "free as in freedom" not "free as in beer." I can most certainly sell you for money software licensed under the GPL (if I make the corresponding sources available) with no other obligations on my part.

Of course, today you're probably not going to have a lot of luck selling something that your potential customer can just download from elsewhere for free. So, in practice, you're going to have to provide other services/benefits that go into a commercial product.

But there's nothing in the GPL that prohibits you from just selling a bunch of bits subject to the requirements of the license and calling it a day.


That line has nothing to do with price.

The FSF started out selling copies of tapes with Emacs on them, and then later whole CD collections of free software, including a mixture of GPL and non-GPL code. They even had a service for a number of years where for $5000 they would compile up a whole ton of software for whatever platform you were using, and send it to your business with t-shirts and manuals for the software.


No, that interpretation is wrong. GPL'd code can be sold no problem. Yes, even the source code. No, it doesn't make much sense in an age when anyone can download it for free, but nobody is stopping you either.

In the past, when the internet was slower and fewer people had access to it, it made more sense to sell CDs of GPL'd code.


WordPress themes and plugins. They're all WordPress derivatives, therefore the code has to be GPL.

Theoretically you can give away a copy of the code. In practice, people don't.

(Usually includd assets, i.e. images, are kept proprietary, and the thing is sold as an aggregation.)

The thing they're really selling is security updates and maintenance.


> the right to enjoy future improvements to the code

Why is that a “right”?


Because the license gives you the legal entitlement to do so.


A permissive license doesn’t grant “the right to deny others” a so-called “right” it doesn’t define or even refer to.


> It enriches everyone

This is untrue. It might appear obvious that it does, because in the first instance, everyone can take and use it however they want. But as soon as anyone relicenses the work, everyone else loses out.

There are also more complicated benefits to the programmer-users of GPL software that get lost in the process.

I don't think the situation is clear-cut, and too many factors are hard to quantify, but I don't think you can safely say that non-copyleft "enriches everyone."


I wish the public domain were the least restrictive license, but unfortunately that's just not true globally. In many jurisdictions, notably Germany, there is no public domain or the concept of a public domain doesn't match with common law countries. MIT/BSD or another permissive license is a much better choice if you value openness. [0]

0: https://en.wikipedia.org/wiki/Public-domain_software


In fact, the MIT license originally came about specifically because just making X public domain wouldn't fly with at least one of the X Consortium participants.

https://opensource.com/article/19/4/history-mit-license


The public domain isn't recognized everywhere and licenses like Creative Commons Zero (CC0) which has a fallback of being all-permissive for regimes where a public domain won't work doesn't look out for patent treachery.

The FSF warns against using CC0 for software (see https://www.gnu.org/licenses/license-list.html#CC0 for the full comments): "For works of software it [CC0] is not recommended, as CC0 has a term expressly stating it does not grant you any patent licenses."

If you really want people to be free to use the software as they wish, you can't ignore software idea patents. That naivety actually works against the users as they would be lured into dealing with the software believing it to be free but then trapped by a patent infringement lawsuit.

> But at a certain point you just have to realize that there are > differing points of view, that is just the way things go, and > "progress" includes all of them.

No, this is too broadly accepting and not carefully discerning as reality requires to make sage judgments nor will it help us understand the ethical underpinnings of the software freedom movement (very much related to one of the major problems in the essay -- the author frames the issue around "open source", a developmental methodology which eschews ethics and is therefore of great use to proprietors. See https://digitalcitizen.info/2019/05/10/how-free-software-and... for more on this). Proprietary software is a "differing point of view" and your statement tries to get us to accept that it is merely another acceptable alternative among many. Seeing proprietary software as some form of social progress means accepting the inherent harm of proprietary software, the very reason why the free software movement was founded in the first place. I will call proprietary software harmful and in no way progress for anything worth defending. The goal isn't to maximize one's ability to have power over someone else, it's to ensure specific and well-identified freedoms for all. Strongly copylefted free software where license terms are defended does this.


I think it depends a lot on how valuable your software can be to $supermegacorp, honestly. If I write a competitor to $bigproprietaryapp I would probably decide to release it under a more copy-left license just so nobody can take a ready-to-run solution to market without recourse or compensation. I don't have a problem with proprietary software extending things I write, so such an app would probably be under something like the MPL - "you can use this and add extra features without contributing them back, but you still have to give changes to my code back" sounds like a pretty good compromise.

Some big company wants to use the silly little structured logging wrapper I wrote for SLF4J though? What do I care, go for it, it's a tool and your use of it has no ability to damage any use the community at large has for it.


>But at a certain point you just have to realize that there are differing points of view, that is just the way things go, and "progress" includes all of them.

This is really insightful, to me. Worth keeping in mind in today’s world.


"Progress" is an opinion/propaganda term -- you use it to paint whatever actually happened in a positive light.


he didn't say that all points of view lead to positive progress. Progress is even "quoted".

The GPL has that political nature : it makes you think about your own point of view and hence, the point of view of others. Figuring out if you want or need it by actually reading it is a super useful exercise.


Eh, is it really insightful? It just seems straightforwardly wrong to me.

Nazism is a viewpoint. Does progress include that?

I know I'm triggering Godwin's law here, but if you're literally saying that progress includes ALL viewpoints, you're really opening yourself up to including some really ridiculously outlandish ideals.


There's an addendum, regarding speaking out against actual nazism

https://www.thestranger.com/slog/2018/06/19/27874178/godwins...


I guess that applies, since "all viewpoints" does include actual Nazis.


"It's not even wrong."

Flat-Earther-ism is a viewpoint.

Anti-vaxxer-ism is a viewpoint.


> If that means a professor wants to put the work into their course and help to instruct a class with it, that is great too.

Just to be very clear, neither the MIT nor GPL licenses prevent this.


Under a strict interpretation of the GPL, a student who copied code out of a textbook to use in a commercial project would be infringing the license.

I've never come across this with GPL code, but I've been a bit uncomfortable about reading Numerical Recipes too closely because their code is restrictively licensed.


A large portion of programming books are still under neither a FOSS nor a CC license, and hence fully protected by copyright. (I've encountered some where the main text of the book is not under a FOSS license, while the code is, but that's also not universal.) In such cases, you're not allowed to just re-use large code segments from the book (commercially or in an open source piece of code). Hence the case of a book under GPL isn't any "worse" than that, except that you do have the option of using the code in a GPL-licensed codebase.

(Small snippets are obviously not covered by copyright.)


That's a good point. I suppose Numerical Recipes was one case where I was particularly aware of the situation because (a) the license is stated explicitly (b) the code is structured in ways that it WOULD technically make sense to reuse non-trivial portions as is.


If you infringe gpl code though, you're obligated to provide your source. If you infringe some other copyrighted code, you're just liable for damages.

Is this correct at all? Like if Microsoft accidentally included some gpl code in Windows, could they theoretically be required to open source it? Or would just have to stop distributing?


You're never forced to follow the license; you just have to accept that you've committed copyright infringement, and may have to pay statutory damages for each copy, besides stopping the distribution of any more.


No. If you're found violating the GPL, then you have some time (which I don't remember off the top of my head) to provide the source; if you don't do that you'll be treated as having infringed any generic copyright — being liable for damages, having to cease distribution etc.


> Under a strict interpretation of the GPL, a student who copied code out of a textbook to use in a commercial project would be infringing the license.

This interpretation is very surprising to me. Could you point out what language in the GPL you're interpreting in this way?


If the textbook code is GPLed, this applies. Most textbooks seem to be "all rights reserved" so the copyright would be infringed anyway.


It seems pretty straightforward to me that section 5 of the GPL v3, "Conveying Modified Source Versions" (and the corresponding sections of earlier GPLs) would be applicable to this situation (provided that a non-trivial amount of code is incorporated by the student).

What makes you believe otherwise?


A misreading of the section I copy/pasted. :)

I thought because you were responding to my post saying using GPL code in a class, that you were claiming professors couldn't use GPL code in classes (they can). But you weren't saying that--I misread.


Actually, you have it all backwards.

If it is a normal textbook with non-GPL code in it (which includes code taken from an MIT/BSD licenced source), then that's copyrighted, and using that code for anything else, commercial or not, would be copyright infringement.

If the code is taken from a GPL source, though, then at least the code in that book would have to be licenced under GPL as well, in which case you would be free to use it for commercial software, as long as it is licenced under GPL. The GPL does not forbid use in commercial software, it only forbids use in non-GPL software.


> ...(which includes code taken from an MIT/BSD licenced source) then that's copyrighted, and using that code for anything else, commercial or not, would be copyright infringement.

I don't think this is right. The copyright of the BSD/MIT licensed code remains with the original authors who should be attributed in the textbook (as per the license). Since these authors have permissively licensed their code you're free to use it in your own project (as long as you also include the original attribution). Copying other parts of the text book may be a copyright violation, however.


First, I'm not a lawyer, but I've always seen the MIT license as being more "free", whereas the GPL is more "fair". Both licenses are pretty much the same for users of the code. Where they differ is that the MIT license gives you the freedom to make an awesome change to the free code you were given, and add it to your closed source application with no obligation to give those enhancements you made to the code to anyone else. This is more "free". You made the enhancements, why shouldn't you keep them for yourself? It's not unethical since the developer chose that license knowing what it entailed, but it's just less "fair". The GPL is all about making sure that those awesome changes you made can be used by others so that they can make other awesome changes to the code. You were given free code that benefited you, so you should pass on any changes you made to the code to others so they can also benefit from it. And so on. That's my basic understanding of the differences, anyway.

I personally prefer the GPL way, but I have yet to use either license on code I've written.


I am a lawyer, and I really appreciated your "free" versus "fair" line.

One tidbit on the GPLs: They require you to share alike if you share the software with others, but do not require you to share the software with others. You can make changes and larger programs entirely for your own or your company's internal use, and not share anything.

The GPLs mention this explicitly, and implement it using concepts like "distribute" and "convey". Your obligation to share alike doesn't kick in unless you distribute or convey.

That got GPL into trouble later on, when it turned out folks often ran software for others to use over networks, rather than sharing with users in copies for them to install locally. That led eventually to AGPL, a kind of fork of GPL, but outside FSF, also to licenses that simply require sharing back whether you distribute your work or not.


> That led eventually to AGPL, a kind of fork of GPL

Yes.

> but outside FSF

Initially. The current version was published by the FSF in 2007.


I wasn't clear. The reciprocal licenses that require sharing alike, with or without distribution, came from outside FSF.


Ah, gotcha. AGPL also came from outside the FSF in its original form, but was adopted (and later extended).


Pre-FSF Emacs from Stallman came with a request to send any/all changes made back to Stallman.

https://www.oreilly.com/openbook/freedom/ch06.html


I don't believe the AGPL requires distribution of the sources unless you are exposing the software in some way. So, a company is free to run modified AGPL software on their intranet without having to offer the sources to anyone but their employees.


The first paragraph of section 13 of AGPLv3 reads:

13. Remote Network Interaction; Use with the GNU General Public License.

Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.


Mmm, I agree. I think I got tripped up by this line:

> That led eventually to AGPL, a kind of fork of GPL, but outside FSF, also to licenses that simply require sharing back whether you distribute your work or not.

...because I read it as "the AGPL requires sharing back whether you distribute your work or not", and felt like splitting hairs for the case where you expose the work, but only internally to a group.

Are there licenses that say if you run an altered copy, you have to contribute back sources, no matter who interacts with it?


> I read it as "the AGPL requires sharing back whether you distribute your work or not"

That's true, insofar as providing as a service isn't "distributing", or in (A)GPLv3-speak, "conveying". See section 13 of AGPLv3: https://www.gnu.org/licenses/agpl-3.0.en.html#section13

Compare how the Open Software License handles network services: by requiring they be treated as "distribution". https://zoo.kemitchell.com/OSL-3.0#5

> Are there licenses that say if you run an altered copy, you have to contribute back sources, no matter who interacts with it?

For an older license of this type, have a look at RPL-1.5. For a newer one, which I led, have a look at Parity.


That is fascinating. Do you happen to know of any good resources for pitfalls/downsides of other popular licenses (bonus if layman friendly)?


For example this? https://writing.kemitchell.com/ ;)

(GP is the author - it contains some very good explanations on the subject of licenses, imho of course)


I have been looking for exactly this content for years! Thank you!


Thanks for the link :)


This one is a good resource:

Software Licenses in Plain English https://tldrlegal.com/


You need to be careful though. For example for Commons Clause they accepted changes by Drew Vault (ironically the author of the article we are discussing here) which are misleading at best. Now it says that commercial use is not allowed [0], while it is really only selling that is not granted [1]. In other words, do read the license if you want to know about it.

[0] https://tldrlegal.com/license/commons-clause

[1] https://commonsclause.com/


> when it turned out folks often ran software for others to use over networks

aka the SaaS/cloud loophole


"ASP Loophole" or "The Google Problem" at the time.


I like the idea of a license that is "fair", but there's something about GPL that rubs me the wrong way where I feel it accomplishes the goal of fair in some antagonistic manner.

To me, GPL feels more like holding a legal gun to your head and say "You used my code, now play fair". It's not your Mum asking you nicely to share your toys with your brother. But then MIT is too far the other way where it's your Mum saying that if you don't want to give any toys to your brother even though he gave you a bunch then that's your ethical code and you have to live with it.

I wish there was a license that did feel like the "it's the right thing to do" argument without the threat, but I just don't know how you'd achieve that. Even something where you license the core as GPL and then the majority supporting libraries as MIT doesn't feel right to me.

As a lawyer, do you have any ideas along these lines?


Think of it more as the price you pay for using someone else's work. Just like when you pay $1k for a license to ship some proprietary software, you agree to instead pay for using this code by sharing your source, too. You're free to not pay either price and write your own, of course.


> I like the idea of a license that is "fair", but there's something about GPL that rubs me the wrong way where I feel it accomplishes the goal of fair in some antagonistic manner.

It kind of is antagonistic: GPL started when RMS wanted to fix his printer and Xerox said, "No." IIRC the printer software in question drew on or was based on his own prior work.

The GPL is a weapon to pre-emptively undermine sort of venal mentality RMS had already encountered. Free Software is a reaction to a kind of enclosure of the commons.


It's not as if they spring the GPL licence only after you use the code, though.

It's more like "hi there, if you want to use my code, these are the terms under which I've made it available" than "you used my code, now play fair".


The folks who regularly do GPL compliance work have a very reasonable set of principles they apply when doing that work. Legal action is a last resort and GPL violators are given every opportunity to comply. The only legal actions that have been taken have been from years of stonewalling or even blatant refusal to comply and the consequences of those legal actions have been reasonable.

https://fsf.org/licensing/enforcement-principles https://sfconservancy.org/copyleft-compliance/principles.htm...


GPL is pretty much a "it's the right thing to do" kind of license. GPL violations are widespread and the terms are rarely enforced. Even when they are, in 99.9% of cases there are no penalties(unlike most commercial licenses), just a requirement to publish your code and adhere to the original terms of the license.


> the MIT license gives you the freedom to make an awesome change to the free code you were given, and add it to your closed source application with no obligation to give those enhancements you made to the code to anyone else.

It's also the freedom to make zero changes to the free code you were given, reuse it in your closed source software, and pass it off as your own.

In a way, I feel like I should be a big enough person to be okay with this, but I'm not. The possibility bothers me.


> and pass it off as your own

No, the MIT license requires attribution by including the original copyright notice with any distribution of the software. You can claim credit for the parts you build around it, but you can't claim to have written the MIT-licensed part.


The decision between MIT-like licenses and copyleft licenses all depend on the contextual usage of the code. Is it just some quick and dirty script I wrote to convert some obscure binary format to another obscure binary format? I literally do not care who uses it and why/where/when/how. The script was complete the day I made it, it does everything it needs to do and nothing it doesn't. School assignments fall under the same category, they were useful for that moment and will never be needed again. Writing my own linked-list in C++ stopped being useful to me the moment I turned the assignment in so I don't care who uses it. It's not anything special and licensing it any other way would (in theory) only limit someone trying to learn. Did I actually write something clever that could actually be used somewhere helpful? Is it something that I can see others would want to build upon and improve? That's definitely copyleft worthy.


"In a way, I feel like I should be a big enough person to be okay with this, but I'm not."

One of the distinctions I like to draw strongly is between "nice" and "good". They are not the same, and at times, are actively at odds with each other.

It is certainly nice to give away your software to everybody, unconditionally, and not be bothered if your code does happen to end up being a fundamental component of some multi-billion-dollar company that gives you nothing.

But I'm less convinced that's necessarily good. In a world where you must live under the assumption there are bad actors, I think it's OK to put into your license that they can't necessarily do that. It is good to prevent the exploitation of anybody, and that goodness extends to preventing the exploitation of yourself, even if you also clearly have direct personal interests of your own.

I don't think "being comfortable with being exploited" is a component of "being a big person".

On the other hand, we often bring to mind mental examples of software where we slaved away for years and years to bring some unique new product to the world, only for it to be stolen by the big bad corporation for no compensation. My verbiage above about "exploitation" probably brought that to the reader's mind as the topic of discussion. If that happens, yeah, it's bad. On the other hand, that's not really the dominant case for software. There's a lot of open source put out there that's just a few day's work, which is still plenty valuable at scale, but if someone took one of these little things and incorporated it into their product, it's not really that big a deal.

I have several such small little things and they're all BSD. If a big corporation did somehow walk off with one of them, I'd legitimately be flattered, because I know that while it may have saved them a bit of time, it certainly isn't a core component of their product and had they needed to implement something themselves it would have been a trivial fraction of their time. I know I can say I'd be flattered because to some small extent, this really has happened, and I really was flattered and appreciative, so I'm not just hypothesizing about my future emotional states. I'm well aware on all levels that my ~two weeks total effort on the project in question, which I mostly did for my own purposes and for which the open source effort was essentially a bonus, doesn't entitle me to significant compensation for a product whose size is measured in person-decades.


> I don't think "being comfortable with being exploited" is a component of "being a big person".

In the context of the types of projects I was imagining, a company would likely just rewrite any code that wasn't available via MIT or similar. If I'm not getting anything in return either way, am I being exploited?

Logically, if the outcome is the same for me, there's no reason to make others redo work.


> there's no reason to make others redo work.

As a simplified example, consider Corporation G and Corporation P. One will eventually lose market share to the other, go bankrupt, and be replaced by Corporation R that bases its business practices on the more successful one (then the cycle repeats).

Both are evil, as corporations are wont to be, and in particular will never release anything under a less restrictive licence than they have to (so they will never release software under a MIT licence). However, G will release software under the GPL if this allows it to save work, whereas P will always release software under a proprietary licence, even if this forces it to expend more resources rewriting GPL functionality.

Releasing code under the GPL exerts a selection effect that favors G over P, and in the long run results in corporations that release somewhat more software period - and significantly more software under FOSS licences - than if P was not forced to redo work.


That's basically the logic I used too for my own code. As I hinted at but may not have been made clear, I was using "exploitation" quite deliberately as a loaded term in the beginning, only to try to defuse it in my final paragraphs as in many, perhaps even the vast majority, of cases you aren't really being that "exploited" no matter what anybody does. If somebody outright stole any of my projects and claimed them as their own work, I still would honestly be only annoyed, and maybe make a few posts in my README.md about the situation, and move on with my life without even a thought about engaging the legal system or anything.

But as rare as it may be, there have been many cases where an open source code base really was "exploited" by any reasonable sense of the term, with corporations slapping their logos on it and reselling significant works in violation of the license, and those cases are significant because of their size, even if they are rare.


Is this meaningfully different from being able to build a multi-billion dollar company like Red Hat on top of other people’s GPLed work?

Yes, because of the GPL, they have to give RHEL customers the source to all their patches, but what difference does this make in practice?


> but what difference does this make in practice?

they have to give RHEL customers the source to all their patches, and allow them to share it with the entire world.

In practice, that means everyone gets better software, and RedHat gets compensation for their hard work.


> but what difference does this make in practice?

CentOS is the difference; it is one of the most widely used distributions has the same stability and longevity characteristics and gets security fixes just as fast as RHEL.


That is a good point. Perhaps a better example would be FAANG making billions and running their servers on Linux, which (IIRC) is what things like the AGPL are designed to prevent.


The AGPL wouldn't prevent FAANG making billions, just ensure they respect end-user freedom while doing so.


Permissive licenses give freedom to the developers who use code under that license. The developer is free to restrict the users' freedoms.

Copyleft licenses grant freedom to the users of software: a developer cannot restrict a user.


>First, I'm not a lawyer, but I've always seen the MIT license as being more "free",

If you are a lawyer can you maybe be more clear about "more free" , more free relative to what? AFAIK GPL protects the user freedom and I think you are referring at the programmers freedom, GPL is a license that respects the users/society as a group, most people here are developers sothey will say that this is less free for them as an individual, less free to take freedom from others(the freedom to study,modify and distribute).


I was looking at it from the programmer's perspective. Specifically, from the perspective of someone who built something themselves and distributed it.

From what I can tell, the user's freedoms (assuming no changes) are pretty much the same. They can use the software without worry.


If I make a (A)GPL program, I can be certain that EVERY downstream user has access to the source code and the freedom to recompile, reuse, remix, etc.

That is not the case with MIT, where any developer downstream may choose to re-license as they see fit.

From a user's perspective, the rights are very, very different. When you choose a copyleft license, you are making a specific choice that downstream users should have their rights protected, even if that comes at the expense of the "freedom" of downstream developers--who are now prevented from doing anything which restricts user freedom.


The user does NOT have the same freedoms under MIT because there is no obligation to release the sources you have modified and distributed as a binary. A user may also be a programmer but if they have no source their options are limited.


Yes, the direct users of teh MIT program have the freedoms, the issue is the project can be hijacked and made proprietary and then sold to the users. As an example the fact Webkit is opensource is because it was impossible to close source the KHTML fork.


If “users” = “not programmers” (which I think must be the definition here) then neither license gives users anything except the freedom to hire programmers to do something they want more cheaply. (I include buying software and downloading free-as-in-beer software in “hiring programmers”.) With MIT/GPL the programmers can afford to charge a lot less to do the same job.

It’s fundamentally programmer freedom in either case. Any user freedom is an indirect side effect.


No, the GPL is primarily about user freedom, and programmer benefit is a virtuous side-effect. The GPL is entirely made up of restrictions on programmer freedom, which is why BSD/MIT partisans rail against it. It attempts to define the maximum amount of programmer freedom that can be allowed without impeding the user's freedom in any way.


You are correct if I am using an MIT/BSD program as a user I have all the freedoms the issue is if someone forks it and closes it up making it proprietary.

You need to think at the larger picture, compare Linux kernel and BSD and how the licenses affect the projects and all of the users. With Linux GPL prevents parasitic use, like you get Linux, put your proprietary thing on top, close it off and give it to some users, this users will have no freedom to know what the code they run does, no freedom to change it and distribute it. The fact that a user does not code is irrelevant because they ca always pay for others to modify things.


But if the proprietary fork is analogous to the original software the "user" can just seek out the MIT-licensed project and start from there. If the fork contains significant functional modifications then it seems fair to let the author of those changes choose how to distribute them. This doesn't restrict user's freedoms anymore than allowing greenfield projects to be proprietary already does. GPL is for people who are concerned with forcing their viewpoint into wider adoption. MIT is for people that are interested in truly gifting their work (and only their work) to society.


That is only possible sometimes, say I create ffmpeg, it can decode/encode 100 video formats, then Google/Apple forks it and support for a new proprietary format that only they use and not contribute it back, Now Google/Apple use this new properitary format and only their applications will be the only ones that can read all the videos formats.

Maybe a bad analogy, GPL - I make knives and if you want to use my knives you have to agree not to use them to injure/kill people because this taking their freedom

BSD - you can do whatever you want with my knives, you can kill people I am fine with it because I care only about you my customer freedoms but not about any other people freedoms(lives). Just don't remove my name from the knife.


Should go and watch any video in which RMS explains what free software aims at achieving.


Actually, that's not really true either. Usually, the company that holds the copyright can afford to charge more for proprietary software, but they also can afford to pay less for software developers, because they hold both the monopoly for the software the user wants, and the monopoly for the work the programmer wants to do/is qualified for. With free software, both sides can potentially just skip the middleman.


Even within the libre-sense there's differing axes of 'free'. You're describing one. Another is from the perspective of the software itself. Similar to the phrase "information wants to be free" (which sounds cheesy but gets the message across), if changes made to the software are kept isolated it's less free to spread which is the motivation for free software before it got fractured into open-source that's less free in that sense.


This may go either way for you, but I feel like the GPL is the closest thing that programmers have to a union. It guarantees that our obligations to users and other programmers always supersede the obligations that we have to our employer. They are a law hack that encodes professionalism.

edit: it seems obvious that a doctor's obligations should be to the patient, then to medicine, then to the particular institution they work for. A lawyer should protect the client, protect the legal profession, then protect whatever firm they happen to work for.

Programmers should make sure that users have access to inspect the code that affects their lives; that other programmers can work with, learn from, and help the users to interpret that code; and that their company makes money. The only way that companies can accept being pushed to the third priority is by a united front of programmers who unambiguously swear to uphold the first two without compromise, and making what you do GPL is attaching an oath to that effect to everything you write.


My problem with the GPL philosophy is that I can't find the mechanism that results in more general access to code in the world, when releasing your software as GPL versus BSD/MIT.

What determines what's out there in the world, the decision to release source versus simply doesn't come down to "well I can use this GPL code as part of my project if I also GPL it, so I guess I'll share my code too." The decisions about whether to release code are made entirely independently of what libraries or code to reuse, and there's basically no code out there that's so special and unique that it could flip people one way or the other.

The decision to release code along with the software is made due to other considerations, so claiming that GPL results in more code access seems impossible to defend, to me.


The GPL is the one reason why there is one "mainline" Linux kernel and a number of roughly compatible distributions rather than the incompatible chaos of the Unix wars of the '80s and '90s.

Take a look at imake and autoconf if you need convincing that the GPL is valuable.


Are you saying that GPL holds off forks better than BSD/MIT? If so, by what mechanism? Of all the pro-GPL things I've heard, I've never heard that one before, so I'm quite interested to hear this fleshed out into something I can follow!


The original license from Bell Labs for Unix wasn't BSD/MIT, but it had essentially the same effect (and in fact, BSD is a down-stream license of it): you could get the source code for Unix and do anything you wanted with it.

Most people started with the BSD distribution (because networking), many later incorporated System V things from Bell. They then added their own changes and released the result under their own proprietary license. "They" being Sun Microsystems, IBM, HP, Silicon Graphics, and a host of smaller organizations including NeXT. Each of these had some really neat feature, like IBM's Journaled File System, SiliG's graphics, and Sun's hardware and the fact that they hired Berkeley's CSRG people. But they were all as incompatible as they could be made to be and still be Unixy. They were also business rivals and fought each other constantly. (I was part of IBM's effort with the "Open Software Foundation"'s DCE (https://en.wikipedia.org/wiki/Distributed_Computing_Environm...), which attempted to fight off Sun's lead with NFS.) This was at a time when Microsoft was pushing Windows on smaller machines and those smaller machines were getting powerful enough to be a threat in the Unix "workstation" market. As a result, Microsoft won the Unix wars.

Linux, in contrast, is under the GPL, as are most of its basic user-space programs. You can modify the code to add some feature, but you have to distribute the changes if you distribute the whole thing. As a result, your feature gets incorporated into the mainline kernel, or you fork Linux. Forked Linuxes don't get a lot of traction, though, in part because nobody has a serious hardware advantage, but mostly because the mainline quickly grows a corresponding feature. It's very hard to lock your customers in to your own distribution.


Well, I hate autoconf, so maybe poor choice of example. :P


I think that's his point.


Yup. :-)


I don't really think any of what you said is actually true.

There are many types of software project where the license doesn't matter at all - what matters is that the software exists. Someone is willing to pay to get it made, and they don't really give a hoot about "licensing". I believe this actually constitutes the majority of software - it's just invisible because no one really has much incentive to release it. But I don't really see how, say, a festival's business model is undermined by making their lineup app open source.

Next, there really is GPL code that's simply too special to ignore. One obvious example is the Linux operating system. Designing an embedded device? You're almost certainly using Linux. Maybe Linux doesn't do quite what you want - say, support for a given bit of hardware. Guess what, you can't ship your patch without publishing it - and now every Linux user gets to use that hardware, if someone's motivated enough to merge it into mainline. This is a real thing that happens all the time.

We're not there yet (and we may never get there if people stop believing in the GPL), but you can imagine that if we get a world where all the important software is GPL, the sheer mass of it will overwhelm any other licensing considerations. "You can either participate in our ecosystem, or you can rebuild modern computing from scratch. Your call."


If somebody doesn't care about licensing, then it's trivial to convince them to use open source whether or not they want to tightly integrate with GPL code, so the GPL aspect isn't increasing the amount of open source software.

Your hardware driver example is pretty much the only example I can find where somebody is actually incentivized to release code, and willing to go against other concerns; so I appreciate that example! However it's certainly not universal for all hardware, there's plenty of binary blob drivers out there on Linux unfortunately. GPL doesn't need to universally make all software open source for it to be more successful, so I think it's important to look for the concrete overall results.

Let's contrast GCC and Clang here. For years, advancements in open source tooling was hindered by GCC's refusal to make improvements that could potentially be used by closed source software. Clang comes along, and all of a sudden an entire open source, tinkerable compiler/tooling/editing environment opens up, precisely because both open source and not GPL. People are willing to pay to improve it because they have the freedom to do what they want with their improvements, including the freedom to hold them back.

Despite not having the stick of the GPL, MIT-style license resulted in a better ability to tinker with the code, expand it to more areas, and improve software.

I don't see GPL as a crucial aspect for getting to that world where we have access to the important bits.

My goal is to enable as much as can be done with software that also has source available. There's a different optimization goal, that says "let's make sure that all software out there has the source available." This is a drastically different goal, however, because it can be achieved by creating less software capability overall, and just eliminating all the growth in capability that originates first in proprietary software but then gets reimplemented as code-available software. IMHO, the GPL seems to be aiming for the "any software out there also has source available" goal.


20 years before clang, MIT style licenses resulted in a huge number of duplicate, incompatible systems along with a general inability to improve software, to the extent that Windows became the de-facto industry standard OS.

There's a reason gcc became the best of breed compiler before llvm came along.


> but I feel like the GPL is the closest thing that programmers have to a union

But unions generally exist to make their members rich. GPL has the opposite effect, it means you can't sell your code so you become poor.

It's like the opposite of a union; a collective agreement among a group of professionals whereby they mutually agree to prevent each other from making money.


I agree a bit, maybe union isn't the right comparison - more like a bar association or medical register. It's enforceable ethics, but since programmers are not professional, we have to attach these ethics to the code rather than to the practitioner.

If you're a doctor or a lawyer and you do something unethical, you go to a hearing of your peers, and they can punish you up to and including banning you from practice with some legal force. All we can do as programmers is attach what some of us feel are ethical standards to the works we personally create, and make adhering to those standards with regards to that software the price of using that software. The GPL gives that legal force.

That's also why I'm sympathetic to weird licenses that ban the military, or the evil. But personally, as a programmer, I'm more concerned about the harm that programmers do than harm in general, and I think it's long been clear that Stallman targeted the particular exploitation that programmers can profit from like a laser.

Unions also do that, but their primary purpose is to make their members rich, like you said. It's sad that in many jurisdictions in the US, unions bargained away (or legislators signed away) their right to strike on behalf of their customers, over objectionable externalities, or anything that wasn't a direct financial benefit to union members.


> All we can do as programmers is attach what some of us feel are ethical standards to the works we personally create, and make adhering to those standards with regards to that software the price of using that software. The GPL gives that legal force.

This is only sane if you think making money is unethical.


Unions generally exist to make sure their members get a living wage and healthcare, not to make them rich.


The programmer doesn't sell code, the programmer sells time writing software. With proprietary software, the owner of that software has a monopoly on the work on that software, and as such can demand monopoly prices. With Free Software, that monopoly doesn't exist, you only have market competition.


> that software has a monopoly on the work on that software, and as such can demand monopoly prices.

This definitely isn't true.


Please explain?


Softwares don't form monopolies for that reason. It's easy for another programmer to go rewrite the code.


You did a switch-a-roo between the perspective of individual programmers to the perspective of organizations that produce software, and I think that doing so muddies the situation a bit.

Whether programmers sell their code or their time doesn't seem that important to me. (I've seen it work out both ways.) What is more important to me is what they're paid in. Personally, I like to get paid in money, because I can easily turn money into things like food and shelter. Because I like that, it's hard for me to hate on my employers - or anyone else's employers - for wanting money in exchange for software or SAAS or whatever.

From that perspective, a really devoted adherence to copyleft has always seemed kind of petulant to me. I don't want to begrudge anyone for the simple fact of trying to make a living any more than I want others begrudging me for the simple fact of trying to make a living.

I also don't begrudge people preferring to share their code under Free software licenses, mind. It's more that I take umbrage with thinking that choosing a license like MIT or BSD makes you some sort of capitalist patsy.

Also, point of pedantry: Simply owning exclusive rights to a particular piece of software does not give you a monopoly, and framing things in such hyperbolic terms does not do anything to advance the conversation.


> You did a switch-a-roo between the perspective of individual programmers to the perspective of organizations that produce software, and I think that doing so muddies the situation a bit.

The comment I replied to talked about programmers, and I was also talking about programmers, so ... where did I supposedly do that?

> Personally, I like to get paid in money, because I can easily turn money into things like food and shelter.

And how is that relevant to the question of licences? Do people who hire you to work on GPL software not pay you for your work?! What difference does it make to you in that situation whether the result of the hour of work that you are paid for is licenced under GPL or under a proprietary licencse?

> Also, point of pedantry: Simply owning exclusive rights to a particular piece of software does not give you a monopoly, and framing things in such hyperbolic terms does not do anything to advance the conversation.

OK, so, suppose you have worked for a few years on a proprietary code base, you know your way around it, you are an expert on that code base and how to extend and modify it. If your claim is true that the owner of that software does not have a monopoly on work on that software, please explain how you can use your expertise on that code base to earn money without working for or with the permission of the owner of that software?


> What difference does it make to you in that situation whether the result of the hour of work that you are paid for is licenced under GPL or under a proprietary licencse?

Directly, not at all. But most companies find it very difficult to turn a profit on GPL-licensed software without resorting to things that render the whole thing moot, like being SAAS vendors who never "distribute" the software in the first place. The whole "derivative works" angle on the GPL, then, makes it hard for commercial vendors to make distributable software that relies on GPL packages without putting their own revenue stream at great peril.

So commercial software shops tend to build on MIT, BSD or Apache licensed stuff. Which is typically NBD. My experience has been that fears about "not contributing back" are typically unfounded. Everyone submits pull requests for their bugfixes and enhancements, because nobody wants to deal with maintaining some special snowflake private version of cURL or whatever.

Consequently, I think that the elephant in the room is that, typically, when people complain that there's something akin to a moral obligation to use GPL, what it's really about is fears that someone might make more money than they think is seemly by shipping closed-source software that relies on open-source components. Which, fine, if you don't like that, you do you and license the software however you want. But don't begrudge the rest of us for not being quite so worried about that.

As far as the whole ownership thing goes, I'd say it was pretty clearly implied in your first sentence:

> The programmer doesn't sell code, the programmer sells time writing software. With proprietary software, the owner of that software has a monopoly on the work on that software

That statement tacitly denies the existence of freelance software developers, by implying that all programmers are working for another company for some sort of salary or wage, and don't ever individually own code themselves. Which isn't quite true, and subtly frames things in a way that strips developers of their moral agency.


> So commercial software shops tend to build on MIT, BSD or Apache licensed stuff.

That's just not true in this generality. If you do custom commercial software for a customer's own use, using GPL code can work perfectly fine. The customer pays for the development work and gets the code under GPL. The customer in such cases often will get the source anyway, and it really doesn't matter whether it's GPL or proprietary.

> Consequently, I think that the elephant in the room is that, typically, when people complain that there's something akin to a moral obligation to use GPL, what it's really about is fears that someone might make more money than they think is seemly by shipping closed-source software that relies on open-source components.

As for myself, that is just not correct, and I don't really think it's a common sentiment. I care about my own and others' freedom to control their own computers and data. If you use my GPL code to make money, good for you.

> That statement tacitly denies the existence of freelance software developers, by implying that all programmers are working for another company for some sort of salary or wage, and don't ever individually own code themselves. Which isn't quite true, and subtly frames things in a way that strips developers of their moral agency.

Well, yeah, it's not quite true, but largely, it is, including for freelance developers. If you work on a customer's proprietary software project as a consultant or whatever, you normally don't get to keep the copyright either. You get paid whatever price was agreed upon and the customer gets to own the code.

Yes, if you do independent software development and you only licence your proprietary software to your customers, then the above does not apply to you.


People should chose a software license the way they choose a screwdriver, not the way they chose a religion.

Choose the tool that accomplishes the job. Do you want to avoid commercial exploitation without repayment-in-kind in the form of contributing back? Use GPL or similar (although this is getting creaky in the case of SaaS deployments). Do you want total world domination for your new protocol? Release a reference implementation under MIT or similar.

License debates go off the rails because too often people try to compress a two-dimensional discussion (ideology and distribution rights) onto a single dimension and talk past each other.

So this blog post seems to say: "I have changed my religion." To which I say: "Consider choosing licenses more strategically."


> Do you want total world domination for your new protocol? Release a reference implementation under MIT or similar.

Not sure this would be the right strategy in this case (assuming by world domination you mean your protocol gets maximal use). Because your protocol/impl could be forked into a closed variant with proprietary extensions, defeating the purpose of an open protocol. At which point you might be stuck maintaining the mundane, laborious base code, and others do the exciting stuff and take over your project (aka embrace-extend-extinguish). As has happened multiple times back in the last decade when we still saw value in using standardized protocols such as WebDav, XMPP, etc.

For these cases, FSF recommends LGPL instead.


Well you are talking about control of the product road map, which isn't really something that the license can do much about. GPL is just as forkable as MIT or BSD. And as to being "stuck" maintaining code that you don't want to... well, just stop already.

Control over the evolution of a protocol isn't easy to bake into a license. It is probably better to look at tools like trademark where you can require passing compliance tests to fly a logo, for instance.

Again, be clear about your goals. Controlling the evolution of a protocol forever is different from launching and declaring victory once it takes on a life of its own. Both are legit, but require different tool kits.


Sorry this is off-topic, but can you expound a bit more on the history of WebDAV in this context?


Sorry I don't have really more knowledge above what's in the protocol specs and on Wikipedia.


> People should chose a software license the way they choose a screwdriver, not the way they chose a religion.

But your claim of what people should do is itself an ideological argument. Software creators have just as much right to choose their licenses for principled reasons as utilitarian ones. Heck, they could pick a license based on the number of contractions in the license text if they wanted. It's their software and their right to determine which reasons they care about most.


> It's their software and their right to determine which reasons they care about most.

We are pretty much in agreement here. All I ask is that people think for themselves, rather than farming out that decision to that persuasive sloganeer they recently met.


I'd s/religion/principles/, and then it becomes clearer why the topic isn't completely arbitrary and may have moral weight.


No, that substitution completely misses my point. One can have deep and well thought out principles and morals and apply that to the strategic selection of a license, and also in choosing which projects are worthy of contribution. Ideology-based decisions are in a different category.

When I look at RMS, I see someone who has thought deeply about the implications of various licenses, and has decided firmly what kind of projects are worthy of his time. He has an agenda, and acts upon it thoughtfully. Some of his followers are not nearly so thoughtful.

All I am saying here is this: before choosing a license, be clear in your own mind about your agenda.


As an example to back up your point RMS has explicitly supported the use of non-GPL licenses for codecs as a strategic move to avoid being shut out of that market by network effects.


RMS has also endorsed selling exceptions to the GPL, see https://www.fsf.org/blogs/rms/selling-exceptions

GPL/AGPL + fee for exceptions seems like a reasonable model to promote freedom and fairness.


Do you have a link to anything he's written about this? It sounds interesting.



Religion is a fair analogy, because it has a lot of weight to people who agree and no weight at all to people who believe something different.


The question that remains is basically "what is your stance on the Great IP war?"

I agree that the world would be better if all software was public domain and that the GPL is an inferior option.

In a world where proprietary software is the norm though, GPL is a way to fight back this trend.

I think GPL makes a lot of sense on software that make computers easier to use or that have privacy implications: browsers for instance.

Some other times, you just want to help the whole world, including the software industry, stop reinventing the wheel. Typically with a lib that solves a specific problem once and for all. There public domain or MIT/BSD make sense.


Or LGPL...

BTW even Richard Stallman agrees with you with respect to e.g. ogg vorbis libraries...


I use MIT (compared to GPL) because it's a low-maintenance library.

When I have published stuff in GPL, I would have had someone from (say) the Netherlands opening an issue asking "hey, can I use this library for doing so-and-so?". And I had to go and check so-and-so and check the again library and re-read the license and after I was not sure because I am not a lawyer and GPL text is fairly dense. Even if I was a lawyer, I would not be familiar with the legal requirements for someone from Netherlands.

One of the reasons I spend my free time doing open source is that I have fun. Reading legal text is the opposite of fun to me. So I moved to MIT. I did not have more of those legal questions.


You are under no obligation to answer those legal questions. In fact, you probably shouldn't.

Just tell them politely that the GPL is available for them to read and well documented, and to ask their lawyer if it's really important to them.


There is a really easy answer to that question: If you are unsure, hire a lawyer in your jurisdiction. The fact that you wrote some Free Software does not obligate you to help people with integrating it into their software for free, and that includes any kind of legal work required.


I feel like where this debate breaks down is in trying to apply the same license to both reusable libraries and finished products.

For a library, an MIT license is much more likely to get it adopted in a finished product that is accessible and maintained. A GPLed library can only get adopted in a GPLed project, which means there may be a ton of economic constraints that make the library's functionality inaccessible to anyone who doesn't have the time or expertise to build an entire application around it.

Also worth noting: to most ordinary people, GPL on a library is like a Post-It that says, "Free—take one!" on the door of a safe. It's nice to have permission, but it doesn't do much good if you don't know anyone who has the combination. The GPL-everywhere philosophy seems to assume a magical utopia where everyone is a skilled programmer fluent in multiple languages.

For finished products, though, an MIT license doesn't necessarily make sense, for the reasons lots of folks here have pointed out; namely, any big corp could compile the code unmodified, brand it, and sell it. If you want to make a complete application free and permissive for end users, GPL seems like the best way to guarantee that.


This distinction is part of the reason why the LGPL exists, and why many libraries are in fact licensed under LGPL instead of GPL.


LGPL still has enough restrictions that might discourage adoption of a library. I find the MPL (Mozilla Public License) is better if you want a GPL-style license for a library and don't want users to have to worry if they need to statically or dynamically compile, etc.


I have a feeling that the jury is still out on this one.

My observations are that:

* MIT license increases adoption of OS projects, increasing pool of potential contributors and derivative works

* People like sharing what they create, hence derivative works are likely to be shared with the world as well.

I know there are companies that utilize tons of free code without contributing enough back.

Overall to me the difference:

* MIT license increases throughput, hence increases participation in absolute terms

* GPL licenses limit throughout, but improves overall quality of participation


That's my observations as well. I'd add that people share derivative work not only because they like it, but because it makes sense: upstream means much less maintenance and infrastructure work, many more opportunities for improvements.

I believe in FOSS so much that I'm confident anyone smart enough will end up using it and contributing to it to some level. It might take a lot of time, but it'll happen. Companies not doing FOSS have a competing disadvantage in the long run.

Sure, not everything will be contributed back. And so what? It wouldn't have been anyway if the license terms had discouraged the use of FOSS in the first place. What matters to me it that /more/ is being contributed back.

Short version: part of much more > everything of much less.

So, I'm very fine with any non-FOSS reuse of FOSS projects. It directly increases the likehood of improvements to these projects and indirectly increases the likehood of improvements of FOSS in general, by making it more and more relevant in still-non-FOSS environments (the long tail of small FOSS projects is what makes it ubiquitous). Just don't ask me to use non-FOSS derivatives :)


> Short version: part of much more > everything of much less.

Well said. A net win for FOSS.


Historically, this is false. See Sun, HP, SGI, IBM, and a good host of others.


Here's my rant of the day:

The meme that the GPL is "less free" sounds very Orwellian.

What it really means is that I cannot freely use someone else's creation without restriction, and that I have to respect the wishes of the original author about how their work should be used.

That is because GPL was intended to be a hack on the copyright system (hence "copyleft"), but it always respected the idea of copyright - it does not call for the abolition of copyright.

This talk of GPL being "not free" smells of propaganda so that people (big corporations?) can reuse and repackage others' valuable work for free without any kind of compensation or acknowledgement. (TFA says the same thing)

Feel free not to use GPL'ed code if you find it too restrictive, but please don't contribute to spreading propaganda against it (and get off my lawn while you're at it)

[For the record, I work on proprietary software myself and haven't written any FOSS code, but I use GPL software daily - Linux, gcc, emacs etc]


Made me remember the free software song.

    When we have enough free software
    At our call, hackers, at our call,
    We'll kick out those dirty licenses
    Ever more, hackers, ever more.


I absolutely encourage people to choose the license that works best for them. My motion has been the other way, all my new stuff is permissively licensed. This is basically because I want my work to have broad impact, and have the possibility of collaborating with as many others as possible, including those making proprietary software.

I'm a fan of Drew's work, and also hope to help GPL projects such as Inkscape (I met many such developers at Libre Graphics Meeting). Choose the license that works best for you, and if you can articulate the reasons for your choice, as Drew has done here, even better.


It really depends what your goal is if you choose a copyleft license or not. As far as I know even the FSF acknowledges that for pursuing some goals (e.g. driving adoption of open standards) a more liberal license is an appropriate choice.


I personally agree with the philosophy of the author: I think all software should be free, and in the perfect world, I would license everything I do under the GPL. However, not everyone in the open source world has this philosophy. A lot of people prefer more permissive licenses like Apache and MIT, and using the GPL excludes these people and projects from using the code - by its viral nature, any single usage of the GPL would force the entire project to be under the GPL as well. Cooperation is the greatest strength of the FOSS world, and so I'm willing to compromise a bit to make that possible. As such, I personally prefer the MPL - it is a weak copyleft license that enforces all modifications to the source code itself are released back (important for me), but unlike the GPL is not viral and will not spread outside its own source files to other projects (important for others). This way I can keep the project and all modifications to it free, but also allow it to be used by others who don't share that point of view.


MIT-like freedom is the "freedom to sell yourself as a slave". GPL is "your liberty ends where my nose begins".

If you understand freedom as the removal of social constraints, you won't understand the value of something like GPL software or Wikipedia.

If, on the other side, you think of freedom as the capability to do things, the accumulation of knowledge in copyleft projects creates possibilities that are less likely in a permissive project, where anyone can capture a version under a proprietary license at any time and evolve it as closed source (compare the ecosystems of Linux and Android for a practical example).


> MIT-like freedom is the "freedom to sell yourself as a slave".

I don't think this analogy is strictly wrong, but the tone is insensitive enough that it is unlikely to be persuasive to the people you are trying to persuade. (Also, some will feel that it diminishes the gravity of actual slavery.)

I agree with your point, but I think you would be better off stating it in a different way.


You're of course right. I created that line for a different place, aiming for a provocative adage that would capture attention (by being aggresive) and make people think by getting straight to the point and highlighting the paradox of "pure freedom". For that purpose, being controversial and rough was a feature, even at the cost of causing initial rejection.

I copied it here to deliver the basic idea as fast as I could, but it certainly is out of context as the starter of a calm conversation with more time to expose ideas and ponder them, as is the style of this forum.


The classic dilemma of whether presenting the extreme version of your view will shock people towards, or away from your view.


I generally agree with the idea of the GPL but the thing I would encourage everyone to consider is: are you really going to enforce it when someone doesn't comply? If not, consider just adding a sentence (or more) to the top of the MIT license or public domain release that you would really like people to share their modifications but are not going to force them to do so.

Otherwise, the main effects of using the GPL are:

1) Projects that are actually open source but want to be available for closed source use will not use your code (maybe some people want this)

2) Lots of people who would contribute changes anyway will spend time figuring out what the GPL means in detail (it is not short)

3) Quite a few comanies will still use your code without releasing changes since they know that few projects try to enforce the GPL (or any other open source license)

4) It could potentially be helpful in a BSD lawsuit type situation, where companies that sue over copyright (or patents) will themselves violate the license of code that they use

I'm just saying keep in mind that a license does not automatically make people follow it and if you aren't willing to attempt to enfoce it legally then at least consider using a very short license.


and if you are willing to attempt to enforce it legally, consider doing it in a reasonable way like the FSF and SFC do:

https://fsf.org/licensing/enforcement-principles https://sfconservancy.org/copyleft-compliance/principles.htm...


It's a very natural human reaction to push back against the idea that someone else might profit from your work--whether or not you have any real opportunity to profit yourself. That was really one of the geniuses of open source licensing (including the GPL) as it developed. By contrast, in the PC world for example, there were a lot of licenses along the lines of "free for educational use only" or "you can't use this software if you're an evil defense contractor."

You still see this usage restriction thread of licensing in Creative Commons for example with non-commercial and no-derivatives being common--even though CC has basically been unable to come up with a workable definition of NC in a decade of trying and ND runs completely counter to the whole idea of remixing that partly drove CC in the first place.


> It's a very natural human reaction to push back against the idea that someone else might profit from your work--whether or not you have any real opportunity to profit yourself.

Purpose of GPL is not to avoid profiting from other people's work. It's to give user's freedom to inspect, modify and re-use the software.

I now have a mental blacklist of GPL violators, that I bought or were given the HW of, that is useless, bugged, or otherwise crippled, and can't be updated and fixed, or used for new innovative things, because they failed to meet their obligations under the GPL.


> It's to give user's freedom to inspect, modify and re-use the software.

The GPL is this, but I believe it is something else, too.

I believe that when you make your code GPL, you are saying to others who want to use your code, or especially to extend it and publish those changes, that you want to be paid. How?

In code.

You are basically saying "Yes, go ahead and have fun with this work, but - if you want to change it and pass it on to others, you need to put those changes out there for me and others to use."

Pay me for my work in code. Don't want to pay me in code? Then you don't get to use my code.

I think that's a completely fair bargain, and it also ensures that a company can't fork your code, go their own way, market it as a better solution to your users while they continue to extend it - to the point where their stuff no longer works with your stuff, even if it still looks identical.

Embrace, Extend, Extinguish?

Those words are often forgotten nowadays. And, while I give kudos to Microsoft's open source offerings and other recent gestures of similar merit, I cannot and will not forget their past, and I keep a wary eye on them just the same...


It should be noted that the GPL requires you to pay forward , not back. You are under no obligation to release the code publicly or contribute to the original project.


The parent comment as a whole made it pretty clear they were talking about modified code that is redistributed.

(I can, of course, take code and modify it for internal use and I don't have obligations under the GPL.)


Redistribution doesn't mean public. I've worked for years extending A/LGPL code that we redistributed, yet much of it never saw the light of day, since our clients have no interest in publishing it (although they are free to do so, of course).


You’re essentially working as contractors for the company in that case though. So you’re effectively part of the company and aren’t really distributing as the term is generally understood.

Of course there is some ambiguity as there always is.


No, there's no need for technicalities. The GPL only says you must distribute the source to the people to whom you have distributed binaries. It doesn't say you must publish it publicly.


I was assuming that if you were developing code for someone they would also get access to the sources. But you’re right. That’s not necessarily a given.


No, they did get the sources. What I wrote is that you don't have to "release the code publicly or contribute to the original project."

Obviously our clients (who got the sources) could have published them. But they have no incentive to do so.


I recently ran into a modified MIT license with a no-military clause. My company would not use the otherwise very nice package because, unfortunately, it includes an "indirectly" in the language. We don't have anything to do with the military, but our clients are large pharmaceutical companies, so they probably have military contracts.


Just purely from a practical perspective, lawyers tend to run screaming from a lot of usage-based restrictions. Even if they seem fairly straightforward at first scan, once you start asking questions (as in your case and non-commercial), all but the most trivial uses--in which the license doesn't really matter anyway--start to look like they might fall into a grey area.

If your job is managing business risk, it's just not worth it.


Nauty has a clause like this. Which is hilarious because Magma uses Nauty, and the NSA is one of Magma's biggest users if not the biggest. McKay apparently doesn't mind, but refuses to change the license


This very clearly and simply describes the differences between absolute freedom, limited freedom, and the value of limiting freedom.

In a way, it's similar to the paradox of tolerance, and a tolerant society needing to be intolerant of those that are intolerant.

Or to quote Team America: freedom isn't free.

I may be re-thinking my own use of BSD licensing in favour of something more copyleft in future too.


My view is: if you don’t care what people do with your software and just want anyone who finds it useful to use it, including anyone from Stallman-esque ideologues to cogs in the FAANG machine and everyone in between, then use BSD, MIT or similar.

If you care about “free software” as an ideological movement and only want to give your software to people who are, in exchange, willing to help advance it, then use copyleft.

I am sure that some copyleft fans will have different interpretations or motivations. I’m just giving mine :)

(This all applies to contributions done in an individual’s free time. Companies contributing to open source for strategic reasons might think about these decisions in different terms).


I use the GPL because I want every user of my software to have the right to use, examine, modify and create derivative works. Every user, not just programmer and entrepreneurs making products.

I want to live in a world where software, which plays an increasingly important role in our lives, can be modified by anyone. Imagine if only google could fix your plumbing

I've found that programmers tend to frame licenses in they way you have, placing emphasis on how the GPL affects them and describing the GPL as a way to enforce tit-for-tat but software is such an important part of everyone's life now that it's worth considering how licenses affect non-developers too.


> I've found that programmers tend to frame licenses in they way you have, placing emphasis on how the GPL affects them and describing the GPL as a way to enforce tit-for-tat but software is such an important part of everyone's life now that it's worth considering how licenses affect non-developers too.

That's the point people keep forgetting. GPL wasn't created to benefit developers, it was created to benefit end users.


My iPhone has a BSD-licenced kernel. Having that kernel under that licence benefits me as an end user of the product. Maybe having used another kernel would've resulted in a less stable mobile that would not have taken off.


I doubt any licensing makes your phone more stable, but if it were unstable, the GPL would certainly certainly make it easier/cheaper to fix.


> I doubt any licensing makes your phone more stable

Sure it does. Without open-source software to base their work on, Apple would have had to start from scratch and possibly never get the project into a usable state. (In fact, they did actually try several multiple times to replace Mac OS 9 with an in-house-developed OS, before eventually buying NeXT, whose OS was rebranded as OS X and ultimately became iOS).


But if it were unstable, the GPL would certainly certainly make it easier/cheaper to fix.


NeXTSTEP, by the way, was a proprietary OS based on the MIT licensed Mach and BSD code.


"if you don't care what people do with your software and just want anyone who finds it useful to use it, including anyone from Stallman-esque ideologues to cogs in the FAANG machine and everyone in between, then use BSD, MIT or similar. If you care about "free software" as an ideological movement and only want to give your software to people who are, in exchange, willing to help advance it, then use copyleft."

It's really not about advancing ideologies but advancing your software. For software under with a Free license, the source code to any improvements someone else made to your software would have to be distributed along with it. Without it, they could keep any improvements they made to themselves.

So using a Free license provides a tangible, non-ideological benefit to your software, in so far as the source to any improvements will be distributed and can be integrated back in to it to make it better.

The one wrinkle is that the traditional GPL was not designed for situations where the software is never actually distributed -- ie. "web services"/SAAS and the like. In that case, even software under the traditional GPL that companies like, say, Google uses could be improved by them without having to distribute the source, as the software only runs on their servers and is never distributed anywhere.

This is where the AGPL comes in, and why Google forbids using AGPL software inhouse.

This is also why I license all my own software under the AGPL.


Exactly the same for me. For most personal creations, I seriously do not care at all what happens to it. I just don't want to be successfully sued over it.


It's the difference between political freedom and metaphorical freedom (knowledge & rights).

Political freedom I define as not being subject to violence unless you're attacking someone or stealing (material objects) from someone.

Metaphorical (software) freedom is being in control of your computer, that means: you run free software (you know what you're running) and you can use and distribute it freely. There is nothing inherently violent in closed source programs.


Violence is usually too far removed from the relevant abstractions. It's not difficult to see violence behind everything, because rules don't mean much if they aren't enforced, and it's all too easy to conflate violence with a threat of violence, or a threat of force with a threat of violence, etc.

But that's not a very useful perspective; a well-functioning society filters violence so that it is only applied when things go seriously awry, and most of us should only ever threatened by minor inconveniences. To focus on violence is to be reductive; it is like trying to talk about programming in terms of electromagnetic laws -- yes, computers ultimately run on electricity, and social powers are ultimately enforced through violence, but the abstractions we've built atop those facts are actually very relevant and useful.

Political freedom is not simply about establishing when violence is appropriate. It's broader than that -- it's about the functional ways we can convert violence into something softer without abdicating our ability to govern ourselves effectively.

More to the point, closed source software doesn't need to be 'inherently violent' for it to cause problems. Nothing is inherently violent, and political freedoms are not defined by violence any more than computer programming is defined by electricity use.


Property rights are the primary domain of politics. If you personally define a certain formulation of property rights as a natural state, your opinions on how freedom should be defined are going to spring from that formulation.


[flagged]


I think you're not getting the paradox part.

If you're tolerant of intolerance, you may be tolerant, but others will be intolerant. If you want a tolerant society, you need to be intolerant of intolerance.

Of course to write it down like that, it sounds like they're the same kind of intolerance, but they're not, and that's also the solution to the paradox: it's intolerance of people who are simply being who they are, that's oppressive and therefore unacceptable, but intolerance of oppression is necessary if you don't want oppression.

Copyleft vs permissive is kinda the same thing. I hadn't really looked at it that way yet, but I see the similarity.


> If you want a tolerant society, you need to be intolerant of intolerance.

But what's the limit of this process? The end state will continue to be intolerant of intolerance, because people will continue to think bad things.

All that means is that your "tolerance" has a clearly defined limit.

This comes up all the time. I pointed out the case with war. There's also crime. We respect the rights of others, so we don't steal, except when we fine criminals, we don't imprison, except for the prisons we have, we don't kill, except in self-defense and to execute.

No one ever describes those as "paradoxes" because they're not.

As to why people would describe this particular case as a paradox, I'm going to avoid getting into ideology.



People keep posting this Wikipedia link as if it ended discussion on the topic. An idea is not automatically true just because it has a Wikipedia article. Even the linked article has quotes from people who disagree:

Thomas Jefferson had already addressed the notion of a tolerant society in his first inaugural speech, concerning those who might destabilise the United States and its unity, saying, "...let them stand undisturbed as monuments of the safety with which error of opinion may be tolerated where reason is left free to combat it."


Jefferson may have changed his mind had he seen the horrors that Nazi ideology led to in WW2 -- and may do so again, the way Europe (and the US) is going.


Maybe he would have, maybe he wouldn't have. We'll never know. We'll certainly never know if Jefferson would have thought the wholesale slaughter of jews to be an appropriate topic to broach when discussing the relative merits of the GPL vs MIT. Instead of resorting to temporally impossible hypotheticals, why not talk about people who actually had the sort of experiences you think are most relevant to the discussion?


Please post your thoughts rather than dropping a link with no commentary.


the paradox isn't about what you are or aren't. but about what you should be.

it is certainly a subtle nuanced issue.


It's really not all that subtle.

If you want to laud yourself as tolerant and pure, and then do bad and intolerant things, one way to avoid the obvious inconsistency is to furrow your brow and say, "well, it's a paradox," and then change the subject.

Look, I was in the Army. My job was to close with and kill the enemy. I can say, "well, a peaceful society sometimes has to make war, it's a paradox!"

Or I can cut the bullshit and accept that we're really not very peaceful.


> Or I can cut the bullshit and accept that we're really not very peaceful.

I'm peaceful. But I'd violently defend my peace - I think it's a paradox.

The "paradox of tolerance" was formally defined in 1945, at the height of WWII. It's the result of grappling with a complicated moral issue - how do you remain peaceful when Nazis are dropping bombs on your city so as to march in and start rounding up minority populations for extermination? You have to abandon your peace value, at least for a moment.

"Cut the bullshit" is an extremely dismissive thing to say about a highly debated philosophical moral concept. Maybe it feels good to say, maybe it feels like an intellectual high ground, but I say it's intellectually dishonest. It's the imposition of your philosophical viewpoint as "right" because you claim your viewpoint is more "simple" or "natural."


Written by a philosopher amidst the height of Nazi power:

>Less well known is the paradox of tolerance: Unlimited tolerance must lead to the disappearance of tolerance. If we extend unlimited tolerance even to those who are intolerant, if we are not prepared to defend a tolerant society against the onslaught of the intolerant, then the tolerant will be destroyed, and tolerance with them. — In this formulation, I do not imply, for instance, that we should always suppress the utterance of intolerant philosophies; as long as we can counter them by rational argument and keep them in check by public opinion, suppression would certainly be unwise. But we should claim the right to suppress them if necessary even by force; for it may easily turn out that they are not prepared to meet us on the level of rational argument, but begin by denouncing all argument; they may forbid their followers to listen to rational argument, because it is deceptive, and teach them to answer arguments by the use of their fists or pistols. We should therefore claim, in the name of tolerance, the right not to tolerate the intolerant.

If nobody had fought the Nazis (an intolerant culture), they would rule at the very least all of Europe.


Nonfree software is often malware, https://www.gnu.org/proprietary/proprietary.en.html , and it's nowadays built on top of permissively licensed free software. Its not just a difference of opinion and its not about "selling" the software. Red hat happens to sell lots of free software.



There are many, many companies selling Free Software. I personally worked five years for one, getting paid for writing A/LGPL licensed code. It's just that they're small companies working as a network, not behemoths, since the economics of sharing code favour that. And to me, that's just an extra plus, not an issue. But I'm sure Peter Levine partner at a16z doesn't like it - VCs are generally unable to extract profit from these companies.


I worry that the downturn of GPL use will have consequences in the future. I understand why the GPL has its issues in context/s, but I don't see why it shouldn't be the default for open source where possible.

The political argument that gave birth to GNU/FSF seems to have lost it's bite in this day and age (perhaps due to a feeling that now open source is the de facto default, it will always be this way?)


Open Source failed. It remains as something that is useful to build software, but its political aims were defeated.

The political goal was to give users absolute control over their computational environments. In reality, we have less and less control, because computations moved to the cloud (corporation-controlled servers) and the most used devices regressed to a non-hackable state (mobile gadgets).

Even if you use a Linux desktop with 100% open source software, you will still probably do a good part (and the most sensitive part) of your computations on someone else's computer, that you do not control. Open Source ended up making it easier for companies to build this new world, because it provided them with perhaps billions of man-hours of free effort.

The strategy of Open Source as a political movements made sense in the 1990s, but we need something new for 2019...


> The political goal was to give users absolute control over their computational environments

No, that was Free Software. Open Source was created as a reaction to that, with the goal of removing the ethical implications and making it "business friendly". And it succeeded, unfortunately.

See: "Why Open Source misses the point of Free Software"

https://www.gnu.org/philosophy/open-source-misses-the-point....


Arguably GPLv3 was a step in that direction


That's an interesting take. Somewhat random question that came to my mind: Do you think it's more important for a user to be in control of their computation, or of their data, or are they equally important?


I'm not the parent, but IMO the end-user should be in control of the computation on a computer... and that concepts of "ownership" don't really apply to data. So when you say "their data", it is very unclear what that should mean.

I'm a copyright abolitionist, so I think when you write a book, you can only "own" that physical copy. When someone reads that book, the words in the sequence that they read them are now part of their memory and autonomy of thought. And so on.


Actually I think free software is more important than ever, as many people don't get the difference and think open source is sufficient. What they do not get is, that there are no ethical values beyond literally an "open source" are implied with open source, while free software does pursue ethical values as well.

Since many are so uneducated about the difference, it is especially important to highlight this difference wherever one can.


> The GPL is the legal embodiment of this Golden Rule

Sort of. It's a bit more like a golden pact with teeth. You can get excommunicated for not following the pact you agreed to. I suppose that's fine. But I prefer not to tempt others to agree -- let them find their own way. Contributing helps the contributor by avoiding having to have local patches, and by getting them reputation and good will points. Sure, a big company might fork an MIT codebase forever and keep it closed, but that's OK with me.


One thing that's worth considering making an exception for, no matter your ideological stand point, is cryptography libraries.

I want everyone to get cryptographic code right, ideally with one implementation that is correct, and then that's the end of it for everyone. Because if commerical vendors do their own thing because of copyleft on a piece of cryptographic code, the one that really ends up suffering is all the users that didn't have a choice in the matter of using said commercial software.


Or, if its a permissive license then the company makes changes to it which break it so that it's less secure and the end user can't even check that (or ask someone to check that) it's not broken. Then the user ends up suffering because they didn't have the choice in the matter of using to be able to check if everything is ok. This is even worse because it pretends making security better but does not deliver. Then it would be better if this commercial software would not exist.


This is illogical because (1) why would the company break the algorithm? (2) it's relatively easy to hide backdoors in plain sight (it just looks like poorly written code)


Incompetence is the simple answer.


Do the LGPL and similar weak copyleft licenses not satisfy this goal?

As long as the company publishes any modifications to the library itself, they are free to use it, whether or not they open source their project.


I don't think that the LGPL can satisfy this goal when it comes to embedded devices, where the whole notion of “dynamic linking” may not reasonably exist in the first place. The state of IoT security is a hopeless trashfire already; every bit of help is needed there.


I use the GPL and I long for the day that it is no longer needed -- when we finally abolish copyright. I GPL to help virally encourage an ecosystem of software that will not abuse my freedom via the tyranny of copyright, in the meantime.


My problem with the GPL is more low level. It (in my opinion) doesn't work well over very long periods.

I work on an open source system which is over 20 years old. For a long time it was GPL v2. We had to either go GPL v2+, which assumes the FSF will never go crazy, or stick with GPL v2, which is incompatible with v3, which causes various problems.

The GPL v2 and v3 are really strict compared to most other licenses, they don't really "play nice" with anything, including each other.


> [...] We had to either go GPL v2+, which assumes the FSF will never go crazy, [...]

This is a rather common common misconception. If you use the "Version 2 of the GPL or any later version"-clause in your specific GPL licensing lingo, then any re-distributor may CHOOSE to distribute under GPLv3, or GPLv4 (if it ever exists), or, for that matter, also GPLv2. You're not bound to re-distribute under GPLv${latest} because of that phrase - so it is, in my pov, completely safe to go with the "or later"-clause. (But that also may be because I do trust the FSF to not "go crazy" in the forseeable future :))


A future GPL v4 could say "Your code can be converted to the MIT license", or even "your code can be used by company X" in the event of a takeover (which I don't consider an impossible option).


> "your code can be used by company X" in the event of a takeover

The FSF is a tax-exempt 501(c)(3) charity; if it would institute policies to benefit a single for-profit entity, the inevitable IRS audit would be excruciatingly painful and likely result in jail time for directors.


  Even once I started using Linux as my daily driver, however, it took a while still for the importance of free software to set in
same here. Even though, I'm a Linux user since 1995, I just understood the true meaning of free software last year (maybe because I'm not a native English speaker). I realized that it means the software is free, not me. It's kind of respect to the software as something important in our lives.


Linux probably wouldn't have gotten the investment to become the server OS of choice if it wasn't for Microsoft and Oracle licensing. Chrome only has user concerns now because of business constraints around adblock, and only then do users gravitate back to Firefox (I am guilty of this). GPL in this sense might get in the way of providing user impact, and IMHO positive user experience with FOSS is critical to sustaining FOSS development.

I'd love to see hard metrics on enterprise Linux tech stacks; I would hazard to guess most business-critical FOSS is Apache/BSD, the latest Javascript framework is probably MIT, and most UNIX-philosophy FOSS (those with a "done" point) is GPL.


I think the distinction between "download and run" software vs. "libraries used to build new programs" should always be stated in this GPL vs. not discussion.

For "download and run" software, having it be GPL IMO doesn't limit too much who will ultimately be using your software. But if you are writing a programming library that would be used to create new software, GPL and even the LGPL will scare away a lot of commercial users, as well as projects that themselves hope to attract commercial users. If you don't care about commerical users, then it doesn't matter. But I think most people that write programming libraries care a lot about this.


For me it's rather simple. I like GNU/Linux, the whole free/sharing ecosystem helped me learn so much, it allowed me great productivity, to modify anything and everything, etc.

I like others to have the same opportunity, so GPL it is, even for libraries.


Well it doesn't always work that way. I have a bunch of MIT licensed libraries that are very widely used and I'm 100% certain there are no commercial forks of it of any particular value. Because then they'd not have my support when their stuff breaks. Im sure there's lots of other libraries like mine, the MIT license is not limiting anyone's access to the best versions of my code.


Your argument doesn't say anything about GPL not always working that way. It just says that MIT license may work that way too, if noone else will make any useful closed modifications. Which is actually an uninteresting case.


I'm a big fan of Social Architecture by Pieter Hintjens, and it's explanation for why he picked GPL instead a BSD license.

BSD tends to fracture the community, and the community is generally even more important than the code, per se.


> Your parents probably taught you about the Golden Rule when you were young: do unto others as you would have them do unto you. The GPL is the legal embodiment of this Golden Rule

Funny. For me, the Golden Rule still leads me to the opposite conclusion: I want people to share their work with me open-handedly, without telling me what I can do with it or what other software I am allowed to combine it with. The more strings are attached, the less it feels like it's really sharing. The most annoying example of this is when companies open-source their works under a copyleft license in an obvious attempt to get free labor from the community while reserving the ability to actually profit from that work for themselves.

And therefore, when I share the software I work on, I prefer to share it open-handedly.


>The most annoying example of this is when companies open-source their works under a copyleft license in an obvious attempt to get free labor from the community while reserving the ability to actually profit from that work for themselves.

Similar to this, Qt has a LGPL license option, but when using it for a proprietary product, they really push you to buy their commercial license, and have basically no info on how to actually do LGPL compliance in the specific case of Qt's libs.

I get that it's not their responsibility to make it easy for me to use an open source lib in a closed source product, but it just feels like they're using LGPL compliance as a threat if you don't pay their license.


Their messaging on that can be a bit (probably intentionally) unclear sometimes (and from what I hear they have pushy salespeople), but many companies use it successfully under LGPL terms, and for typical desktop apps the compliance effort isn't that large. (embedded devices etc are a different problem, I suspect that's where they make most of their licensing money)

They also are providing a lot of value to the open-source communities building on Qt, so I don't think they are a great example for what GP mentioned.


Lately there's been a lot of relicensing stories this year, mongodb[1] being the one I thought of first. It seems like the GPL is just a way for groups to protect their own assets without getting ripped off, and more permissive licenses (BSD, MIT) don't give the creator of that software the same protection. However, if you do violate the GPL and release a closed-source product, who's to tell? Who will know? Always struck me as weird.

[1] https://www.zdnet.com/article/its-mongodbs-turn-to-change-it...


A number of organizations are actively involved in GPL enforcement. The most active these days is probably gpl-violations.org, in Europe. https://en.wikipedia.org/wiki/Gpl-violations.org


I went the other way around. I used to mostly release GPL code, and then one day switched to MIT and never turned back. I've profited from code written by others; others should be able to do the same under whichever license they prefer.

There's a simpler way to address the problem outlined by OP: just refuse to consider binding software dependencies whose source you can't read. (It doesn't necessarily mean FOSS, as in I'm OK with paying to get the software; but I do want to be able to read the source code.) To me using such a dependency whose source code I can't read is just a non-starter.


GPL is about user freedom. The user must always be allowed to inspect what code they're actually running.

That is restrictive on developers, but that's just the cost of doing business here. If you don't share those ideals, that you should be able to inspect and alter the source of the code you run, you will likely never "understand" GPL.


I teach Physics and Math. As a student, I enjoyed the freedom to consult textbooks, learn about new computation methods and be able to use them later when needed without worrying about potential restrictions. And I want my students to enjoy the same freedom. In my first projects, I used the GPL license but have moved since to almost always using the MIT License or, sometimes and when appropriate, CC-0.

When I find some interesting looking project on github or elsewhere, I am always tempted to look at the code. However, if I notice that the code is licensed under GPL, I refrain to do so as I do not want to have to worry about finding some "cool trick" but not being able to use it later in my own code without fear of violating the license.

I do get why some people swear by the GPL license, and I respect their choice and commitment to what they see as the greater good. However, I see it as a barrier to those that simply desire to learn.


I think you misunderstand copyright... you can't violate a license (that's based on copyright) by using ideas you saw in the source code. You really have to actually copy, verbatim, a significant chunk of code to be in violation of a software copyright. Sure, what constitutes a significant chunk is somewhat open to interpretation, but nobody who releases their software under the GPL is likely to ask a court for a ridiculously restrictive interpretation! I'm pretty sure Richard Stallman would be horrified by what you're saying here.


I'm interested in this. From what I have read unless you do a 'clean room' rewrite, that is a team reads the code and describes the algorithm to another team with no view of the code, your work can be classified as a derivative work?

Now there are grey areas for sure, but my problem with the GPL is knowledge should be a commons, not a field day for lawyers and a creator of 'thought crimes'. Maybe I have misunderstood that regarding derivative works but it still seems by enforcing obligations GPL doesn't meet my personal definition of free.


This is really only an issue for project where you're trying re-implement a whole piece of software, and not when you pick up some "good ideas" looking at a piece of code. If you're creating a functional clone of some software and suspect that the owners of that software might take legal action against you, then you'll need to make extra sure that no part of your reimplementation resembles the original source code. Hence the whole "clean room" approach.

But if you're just looking at some code and get some ideas and use them in a totally different kind of program, you're definitely not violating the spirit of copyright, and as far as I know no court has ever decided that you're violating the letter of copyright in such a case either.


Ah thanks for clarifying, I guess there's a sort of size cutoff where stuff goes from fair use to a derivative work.


You mention "algorithm"... algorithms can't be copyrighted, and although it can be argued that they shouldn't even be patentable (as mathematical equations aren't), in the 1990s courts in the US effectively allowed algorithms to be patented "when part of an implementation". Also in some other countries algorithms were always patentable.

But that's patents, we're talking about copyright here. You absolutely can't copyright an algorithm. And "not looking" doesn't protect you from a patent anyway, so go ahead and look at the code unless you want to write a functional clone and claim that it's in no way a derivative work.


Strictly speaking, as soon as you looked at the GPL code you are tainted. A developer with a good memory will struggly not to pick up code he read through. After all, if you are looking at others people code, you are looking at the interesting parts - and if you see a cleverly written function - so anything which is longer as a single expression - you are in risk violating the copyrights of the creator. As I am respecting the works of others, I try to keep legally and morally clean and not just "being caught". So, being a professional programmer, I usually avoid looking at GPL code myself.


So do you provide attribution to every MIT/BSD project you look at? Otherwise, you're also in risk of violating the copyright of the creator.


Not for code I just looked at. But if I find the MIT/BSD code useful enough that I want to have such a functionality in my program, I would just use the code and give attribution as the license requires.

In all the cases, where I not intend to include GPL code in my project, I consider it unethical and legally improper to look at it and then write my own version of such a functionality.


Hehe that is what I tell my friends who ask me to help them to install some windows software to filter something for their children, etc. will happen:

"Fun fact: the first time I used Linux was as a teenager, in order to get around the internet filtering software my parents had installed on our Windows PC at home. ↩"


I used to release all my code as GPL. But the more time I spent witnessing the madness that is license wars, the less I felt like contributing to the mess.

I spend a lot of time and effort on my code, and I don't mind sharing it for free. I would prefer if other people tuned into that mindset rather than greedily raping the world for profit.

But adding more rules never seem to help, it always causes more division.

My current perspective is that its simply not my responsibility to push others into doing what I believe is the right thing.

Which is why g-fu [0] is released as MIT.

[0] https://github.com/codr7/g-fu/tree/master/v1


I think it varies and the world needs and can utilize a mix of licenses. ISC/MIT are good in some scenarios, often client libraries and frameworks work well here. LGPL is great for libraries that have a lot of busy work that can be part of a larger system, but don't need the license to take over the larger system. GPL works when you don't want commercial derivative works. AGPL applies where you don't want online services to subsume your work.

In the end, it will depend on the goals one wishes to accomplish. I tend to avoid certain licenses and scenarios. Most of the time I will favor MIT or ISC, but have been considering how to apply some things I've been working on.


> The GPL is the legal embodiment of this Golden Rule: in exchange for benefiting from my hard work, you just have to extend me the same courtesy.

This is a great article that's focused on just explaining why GPL is good. But I'm wondering what people think about enforcing this part of the GPL.

I was very disheartened to see the Linux community's and other GPL projects' attitude to enforcement actions brought by individuals.

If you ask people to contribute under the terms of the GPL, I think that it is fair for those contributions to be enforced. And unless a project has some kind of CLA that excludes it, the individual contributor should be able to hold violators to the copyleft portions of the license.


> I was very disheartened to see the Linux community's and other GPL projects' attitude to enforcement actions brought by individuals.

Can you share some examples of what's happened that's disheartening? I'm assuming based on context that the reaction to individuals enforcing GPL violations have been negative, which I would agree is disheartening. If you don't enforce the terms, the terms are valueless, and you might as well just use a more permissive license.


The big case recently was in Germany against VMWare [0]. They lost that case. But it was controversial partly because the person (who contributed a non-trivial amount of networking code) was asking for monetary damages in addition to bringing the company into compliance.

But setting the money aside, even the enforcement part was flamed by Torvalds and Greg KH [1]. The gist was that they're able to bring more people into compliance by working with companies behind the scenes. And lawsuits shut down all that backroom handholding. So ultimately, the lawsuits result in less compliance and less Linux adoption.

Linus mentions BusyBox specifically, where attempting to bring companies into compliance just led to fewer users and a shitty closed source alternative that these companies started using instead.

From Linus' perspective that's lose-lose: fewer users and more closed source software. But from people interested in GPL enforcement, they are more interested in not having their contributions abused by companies for profit. So if they won't give up their bad attitude, that's not the GPL projects' problem.

[0] https://lwn.net/Articles/635290/

[1] https://lists.linuxfoundation.org/pipermail/ksummit-discuss/...


This almost smacks of the discussion yesterday in the thread about gorillas that were dismantling poacher traps. There was a subthread about intelligent parrots stealing bait from traps that were set to capture artificially introduced predators of the parrots. Thus the parrots were unknowingly harming themselves, though benefiting themselves in the short term.


I believe you are mixing up two separate Linux related lawsuits: the case against VMWare by Christoph Hellwig, who is known for his filesystem contributions, was supported by SFC and the goal was compliance with the license.

https://sfconservancy.org/copyleft-compliance/vmware-lawsuit...

Some years earlier, there were lawsuits brought by Patrick McHardy, who contributed a non-trivial amount of networking code, that asked for monetary damages; these lawsuits were not supported by any organization.

https://sfconservancy.org/blog/2016/jul/19/patrick-mchardy-g...


That's not really being against enforcement. It's having a tactical argument that sueing is not the best way to get enforcement. Given that they did lose the lawsuit, a big part of the Linus/GregKH argument seems vindicated.


Only if you want to maximize use of open source software in general and/or that specific open source project.

If you're goal is to minimize the number of people using your work without following the agreed terms, it is worth it to shoo away non-compliant companies or companies that don't share the values of open source.

Like another poster said, why use GPL if you don't actually care that companies are violating the terms.


>Only if you want to maximize use of open source software in general and/or that specific open source project.

>Like another poster said, why use GPL if you don't actually care that companies are violating the terms.

Both of these are wrong according to Linux/GregKH. They both very deeply care about both those things and argue very convincingly that you get more of both of them by their strategy than with lawsuits. They cite very specific cases of that both in the kernel and in BusyBox, and the fact that the lawsuit was lost is further support of their argument.


I don't think you understand. From the perspective of a pro-lawsuit person, there can only be upside. If they lose the lawsuit, it's the same effectively as the status quo. The company will continue abusing your contribution. But if you win, you win. Similarly, if you scare off people that are not interested in open source values (ie. they're using open source only b/c people have convinced them that in practice it's better b/c they can offload maintenance of their code to the project), that's basically fine too.


That's only true if your only options are a lawsuit or sitting on your hands. Linus and Greg explain how they do a bunch of other stuff that ends up actually working. So that's a false dichotomy.

And it's not even true that there's no downside to losing. You may get a precedent settled that actually invalidates enforcing the license. Then you've screwed up your own enforcement and everyone else's.


> You may get a precedent settled that actually invalidates enforcing the license.

Which means the license is unenforcible and a new legally enforceable license is needed.

> Then you've screwed up your own enforcement and everyone else's

Nope, they would have been screwed already, they just didn’t know it yet. And fewer future people would end up screwed as new licenses would be created in the aftermath.

Untested enforceability is not better than tested and confirmed un-enforceability.

Or to use an absurd example in an even more absurd context, it’s better to open the box and know your cat is dead than to leave the box closed and believe it might still be alive.

(EDIT: I was wrong)


>Untested enforceability is not better than tested and confirmed un-enforceability.

This is addressed by Linus directly and it's simply not true. That the license can be enforced without testing in court is evidenced by the fact that they are being able to enforce it without lawsuits. If you get a legal precedent that somehow says the opposite you are now deeply screwed. Courts are fickle beasts. You now get to spend a bunch of time/money trying to reverse that, or even worse, launch the worlds largest open-source relicensing effort. For the kernel that's basically impossible. You'd basically destroy copyleft completely.


You're right, I hadn't considered the potential ramifications for the Linux kernel specifically, and how variably educated court judges can actually be.


What's the closed source BusyBox alternative?


I'm not involved in those communities. Do they generally dislike when people go after individuals legally for violating the license?


My favourite license is still MPLv2. In my opinion it hits just the right spot between giving back source and not limiting potential uses significantly. So many languages link statically nowadays, making LGPL fundamentally pointless.


Not a troll question, so please bear with me...

From the perspective of the author of a piece of software wanting downstream changes contributed back, I think GPL makes total sense.

From the deontological perspective of a consumer that considers closed source code immoral (aka Stallman's view if I understand it correctly), it doesn't make much sense to me.

Consider the example where you go to a bakery and ask for a cake. Most people, I think, would agree that it would be unreasonable for a buyer of the cake to consider it immoral that the baker doesn't release the recipe to the cake. What makes software special?


>Capitalism is about enriching yourself - not enriching your users and certainly not enriching society.

Is all capitalism bad? I bought Alfred, Fantastical, Little Snitch and Better Touch Tool. I certainly feel my life has been enriched because of those tools. Does all enrichment have to be direct and linked, by say, bartering code or work? Such a binary representation of ideologies very conveniently forgets that humans operate on shades of gray. Crony capitalists need to be dealt with but that doesn't imply the system itself is shit. Even in a socialist system, the power gets concentrated somewhere and if you try to implement a flat organisation, a lot of projects slow to a crawl because everyone has different needs and expectations. And if I'm enriched, isn't the society also enriched? If paid software improves my productivity so that I can focus on more important tasks that help improve society, isn't that an indirect benefit? Does all "enrichment" have to be direct, linkable and traceable?


I have a project (X.509 certificate lifecycle manager for bootstrapping CAs, issuing certs, like Lemur or Vault PKI backend) I would like to provide this free for any solo system administrators, small companies for internal use, software developers, freelancers, but I don't want to give the possibilities for big companies to repackage and resell it as their own and I also want to force them contributing back.

What license should I choose and why? I thought GPL or AGPL, but I really don't want to scare away individuals and small teams (who this software would help the most).


I agree with the author that the GPL engenders a sharing atmosphere, and given its wild success, much more than any other license. It would be amazing if all software could be like this, but you also need to take into account how you're going to make money, and not just for subsistence, as a sustained income so people can take up a job, enjoy a decent life, and save some $ for retirement. Only a handful of high profile GPL projects, probably (wild guess) 0.0001% of the total number of projects have achieved this. Would you take up a job if you had those odds?


Plenty of people make average developer salaries writing GPL code, you just never heard of them. Look into open source business software, especially custom development, and you'll find thousands of small and medium companies hiring. I've worked for them over a few years, in multiple countries.


... Linux?


There is no one-size fits all, you should use the license that best suits the product you have, as well as the ecosystem in which you're releasing it. See the EFF's documentation on this: https://www.gnu.org/licenses/license-recommendations.html https://www.gnu.org/licenses/why-not-lgpl.html


I about to launch an open core SaaS and all these articles about open source software getting exploited and how copyleft should be the way to go is getting me confused. The software is for e-commerce. So if users use it to make more money, is that considered commercial use? Would the copyleft license require them to get a commercial license then? Would this cause less adoption and less use of the software? What kind of license would protect us from someone coming along and replicating our open core model using the open source app?


No, copyleft doesn't prevent commercial use. In fact, preventing commercial use is impossible with the GPL.


Sorry I was under the impression copyleft meant that commercial users must purchase a license and normal users could use it for free. Is this what CockroachBD just did?


From the Open Source Definition[0]:

>The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

From the FSF's "What is free software?" page[1]:

>A free program must be available for commercial use, commercial development, and commercial distribution.

Licenses like CockroachDB's with restrictions on commercial use are "source available", which is a form of proprietary software.

[0] https://opensource.org/docs/osd

[1] https://www.gnu.org/philosophy/free-sw.html.en


In my experience advising clients who haven't already spent years reading about open source licenses, those lines confuse more than clarify.

The dominant mode of commercial software development is closed. Many commercial firms forbid the use of copyleft software components that might compel licensing choices about company work.


That's absolutely not what copyleft means. The concept of copyleft is the core of viral open source licenses like GPL. CockroachDB did something completely opposite - they migrated away from open source licenses.


Thank you for clearing that up. I’m going to read more into it.


No, copyleft means anyone can use it for anything they want, commercial or otherwise, but the product and any modifications to it must be made available to others to do whatever they want with it.


They moved from Apache2 (a permissive license) to a no-compete license basically.

Copyleft means the license leaves the right-to-copy for the user. But copyleft (AGPL, GPL, LGPL) means that you can't remove the copyleft itself even from the new parts, whereas permissive (Apache, MIT) means that you can.

edit: I mixed up weak copyleft and permissive :o


> weak copyleft (Apache, MIT)

The term you're looking for is "permissive license". [1]

[1] https://en.wikipedia.org/wiki/Permissive_software_license


Apache and MIT are not copyleft, since you do not need to share your code modifications.

weak copyleft would be things like MPL, that limit the modifications you have to share to only parts of the program.

CockroachDBs new license isn't even Open Source following the common OSI definition of the term.


I can offer some general principles, but when it comes time to apply those generalities to your specifics---to give legal advice---you'll need to speak with a lawyer who will stand professionally accountable to you. I won't.

Let's put licenses for public software projects into three general categories: permissive, copyleft, and noncommercial. MIT is a classic permissive license. GPLv2 is a classic copyleft license. Prosperity (https://licensezero.com/licenses/prosperity) is a recent noncommercial license.

Heavily simplifying, and ignoring a lot of details and variations:

Permissive licenses allow you to do more or less whatever you please with the software, as long as you make sure that copies of the software you share with others come along with copies of the permissive license terms and the developer's copyright notices.

Copyleft licenses are permissive licenses plus one extra rule: In at least some circumstances, you have to share and license your own software work the same way. When you have to share, and what code you have to share, varies by specific copyleft license.

Noncommercial licenses are permissive licenses plus a different rule: You may not use the software for commercial purposes.

So what's the deal with developers releasing code under copyleft licenses, and then charging individual customers for "commercial licenses"? To understand that, we have to read the licenses in context. It's not just about what the licenses say, but about how that fits into the broader picture of the software industry.

Most companies producing software insist on keeping their software closed, rather than releasing it in the open. That way they can sell access and permission to use it. These companies will not share their work alike. So they intentionally avoid and reject software under copyleft licenses that would require them to do otherwise.

However, sometimes these firms really want to use software under a copyleft license in their products. If possible, they'll often try to buy a license from the developer that allows them to ignore the copyleft rule, so they can have it both ways.

Meanwhile, these firms often use tons and tons of permissively licensed software. They're free to do that, without paying anyone, so long as they follow the rules about copies of license terms and copyright notices.

Hopefully that gives you a broad picture to work from. Good luck with your project.


Thanks my man. Any articles or documentation you can point me to so I can better understand what kind of license I should use?


You may be confusing the GPL with the Creative Commons "non-commercial" restriction. (I do find the latter a bit confusing myself.)


Common wisdom says to use the best tool for the job. Why wouldn't the same thing apply to licenses? The MIT vs GPL argument seems silly to me. Use whichever one best applies to your situation.

Writing a library and want maximum adoption? Use MIT.

Worried about patents? Use Apache.

Want to ensure the code stays open-source? Use GPL for an application or MPL for a library.

Obviously these are grossly oversimplified examples to make my point. But I wouldn't write a web application in C or a device driver in JavaScript. So why use the same license for all of your code?


Consider licenses like MPL (or arguably LGPL) which are a halfway house here. If someone uses your library, your code is copyleft, but the rest of the app may be something else.


If you feel your work is valuable enough to be worth receiving compensation for, use GPL and/or a proprietary license. If not, use a permissive license.


> [more free vs. less free]

The intuition that helped me understand this was noticing that the GPL is trying to maximize societal freedom, and in contrast the BSD is trying to maximize individual freedom. So, is the GPL less free than BSD? Answer: For whom? Single individuals or everyone together?

An analogy: a society would have more individual liberty if dogs were allowed to poop on the sidewalk, because fining dog owners who don't clean up after their dog is reducing the individual liberty of those dog owners.

But the society with this individual liberty curtailed is a better society.

The same distinction holds across politics in general -- we might approximately map GPL vs. BSD onto, say, socialist vs. libertarian.


What about a society where individuals are free to let their dogs poop all over but most choose not to since it's unattractive and they've been raised in a society where personal responsibility is of paramount value?

This is the society I want to live in, and I think if you look at it pragmatically this is a society in which a lot of us already live (I have heard of very few cases where someone has actually been fined for not picking up their dog poop and I also see relatively little dog poop lying around).


I guess I just don't believe cooperation problems scale.

e.g. https://slatestarcodex.com/2017/02/22/repost-the-non-liberta...


It's the same cooperation problem regardless. GPL only works because enough people agree to respect the system that allows it to function. If no one payed lawyers to argue over licensing issues and no one supported courts in which to hear the arguments then the GPL would just be words on paper. Since we fundamentally live in a world where cooperation happens all the time I know that a utopian interpretation of this world is also possible. In fact, it's been my observation that people's willingness to cooperate increases as a function of societal excess, so if we are going to keep putting all our eggs in this maximize-production maximize-efficiency capitalist mindset that has taken hold in the last century it seems almost inevitable that natural cooperation will increase and we can rely less on codified regulations with the threat of force.


I don't think people are especially willing to cooperate in the absence of enforced rules, even with regard to the GPL. They didn't "choose" to live in countries where governments will perform force against them if they break the rules -- that's a very rosy view of consent and cooperation. And even in such a world, GPL violations are so common that for a while I think most Android phones in existence weren't even trying hard to pretend to comply with GPL.


Governments aren't strange 3rd party alien entities enforcing their "rules" on a captive population. All governments (and corporations) consist of individuals. Some day governments will consist entirely of people who haven't been born yet, so it seems a little disingenuous to imply these people are just being born into an authoritarian world that they have no power to change. Governments continue to enjoy legitimacy because populations choose to continue to accept them.

My argument was that these massive social structures are already the result of unprecedented levels of cooperation and their global influence and homogenization appear to be expanding. Are we at peak cooperation yet? Apparently not, some companies abuse the GPL and I still occasionally have to clean up other people's dog shit. And realistically there will probably always be a few "Mikes" somewhere polluting the lake for their personal profit, but I believe we are moving in the right direction and we will be able to reduce the freeloaders to a tolerable level as long as we continue to produce way more than we can possibly use. In the meantime I prefer to walk the walk, I'll continue to gift my extra time and energy to help others achieve their goals and I absolutely will spend an extra $50 on widgets if I find out Wanda is up to something shady.

I'm not against people who choose to use the GPL, I think it's an extremely clever legal hack, but I look forward to a world where people don't feel like they have to.


I agree with most of that. But like.. most software is proprietary, right? Left to their own devices, Microsoft and Apple didn't decide to cooperate with the world and share software; instead they became the richest companies in the world by instituting a de facto computer tax. What you describe as "cooperation" really seems more like "people complying with rules enforced by force to the smallest extent possible", even in this software example.

There are obviously some cases where humans work together really well -- times of conflict or disaster are probably a good example. But as society contains less scarcity, it seems like we move farther away from that massive cooperation, because there's no overriding need for it anymore.


> The reality, however, is that we live in a capitalist world. Our socialist free software utopia is ripe for exploitation by capitalists

Amusing point of view, when you realize that the largest GPL (or FOSS) projects (like the Linux Kernel for example) are developed and maintained by capitalistic corporations more than anything else - GNOME is developed/maintained by RedHat/IBM, Confluent develops Kafka, Facebook develops React, Google develops Android and Chromium, Dart, Go, Kubernetes, Tensorflow... the list goes on and on.


Every time this debate comes up, I think of MINIX:

https://www.zdnet.com/article/minixs-creator-would-have-like...


It doesn't require the GPL to know who is using your software - choose BSD with advertising clause.


I've gone the other way; the last time I put a GPL on anything was more than a decade ago. (I mean on something completely new, not a modification to someone else's GPL-ed program).

I won't ever be GPL-ing anything going forward; two-clause BSD all the way.


I agree. I use Apache 2 for code examples in my books but otherwise I prefer GPL. I have a many repos in github that are private and I have been considering releasing everything under AGPL, sharing but forcing improvements to also be shared.


All of us should be thankful that the tools we rely on (like gcc and Linux) were available under the GPL, since otherwise proprietary extensions to these programs would have made the OSS versions obsolete.


The links to 'blogs I follow' with preview at the bottom is neat;

> Generated by openring

https://git.sr.ht/~sircmpwn/openring

Nice.


> If the people with their fingers on that button held these same ideals, we wouldn’t need the GPL. The reality, however, is that we live in a capitalist world. Our socialist free software utopia is ripe for exploitation by capitalists, and they’ll be rewarded for doing so. Capitalism is about enriching yourself - not enriching your users and certainly not enriching society.

We like to talk in favor of abstract ideals and moral arguments, but I think a lot of our underlying motivations come from our feelings towards (and relationships with) other people. If you see the world in this way (good socialist free software utopians vs. greedy capitalists) then all of the rest of the argument basically falls into place.

I'm not even saying that's right or wrong. I'm saying that no amount of abstract argument will convince someone out of their position if their underlying feeling towards other people is already firmly held. I'm including myself in this.


Hmm, I may have misunderstood your point, but as someone socialist / communist leaning I actually intensely dislike the GPL, as far as my admittedly limited, understanding of it goes.

GPL needs enforcement which requires the force of law and loss of personal freedom. Perhaps I actually do agree with you after all then, but there's a second axis, Libertarian vs Authoritarian, where I think GPL requires Authoritarian enforcement?


GPL vs MIT/BSD

Code is free vs orgs that make use of code in their products are free


I feel like OP is naive. If he thinks Capitalism is so bad, why is he insisting that people pay him back in their own labor when they use his code? Isn't that what the GPL is? You use my code, and then you must pay back to me your improvements on the code.

What if someone doesn't want payment in labor, but instead wants some carrots? If they make a license that says, use my code, but send me carrots, is that worse than OP's insistence that he should get paid in the code of his users? And if asking for carrots is okay, then why not asking for cash, which is more fungible?

This isn't about morality. Everyone is seeking something ... even those that use BSD or MIT are seeking something. They are seeking recognition, or adoption of their protocol so they can build a symbiotic business, etc. True altruism exists, but it doesn't have a widespread impact. If altruism really did work like that, without a care for personal well being and on a large scale, then we would all be immigrating to a thriving Soviet Block right now, while the USA would be collapsing ... instead of the other way around.


> Isn't that what the GPL is? You use my code, and then you must pay back to me your improvements on the code.

No. You're not obligated to pay me back, you're obligated to share the code with the public. You can't exclude me, because I'm part of the public, but you don't have to have any contact with me at all.


>you're obligated to share the code with the public. You can't exclude me, because I'm part of the public

Not with the general public, nor with you as the original author, but only with users of your GPL-derived software. This might be a technicality, since users can re-publish to the general public; but then I'm not sure since they aren't required to.


This recent talk by DHH also discusses this topic. https://www.youtube.com/watch?v=VBwWbFpkltg


This is an interesting read, but it's almost ironic because over the last decade, the argument between MIT and GPL has become less important, IMHO because of the rise of SaaS. And by that, I mean, that we've seen a recent push back towards both Apache and GPL licenses from companies that take umbrage with other companies using their source code to sell hosted SaaS versions of their work, without contributing back. Of course, the problem is that the GPL doesn't solve that problem any better than BSD or MIT or Apache and it is debatable if the AGPL does either. The fact is, modern OSS/FOSS licenses really weren't designed for the age of server-side software where there isn't a distributed client or locally compiled code.

And while I'm incredibly sympathetic to companies who see Amazon and others (and disclosure, I work for Microsoft but my opinions are my own and I don't represent my employer) using their work to sell hosted versions of their products that directly compete/undercut/undermine their core businesses, that's also just a natural side-effect of using an OSS license in the first place. If you, as a business, are unable or unwilling to account for that possibility, perhaps you shouldn't have used that license to begin with. It seems unfair and wrong to attempt to relicense or reframe the rules after you have already benefited from the source used by others, which is why I look at things like Common Clause with disdain. Own that you are proprietary or GTFO, don't try to do this bullshit middle-ground approach, which doesn't do anything.

So in a SaaS situation, MIT vs GPL is irrelevant, and yet many of the renewal of licensing discussions are around those ideas.

My personal philosophy around open source has also shifted over the last decade or so, but it has largely cemented why I personally prefer BSD/MIT licenses. Having said that, although I prefer BSD/MIT licenses, I'm also of the opinion that in many cases, it is beneficial to everyone to contribute changes back to the main projects. Period.

I used to be much more in favor of proprietary software -- or, at least the right for a developer to choose to make some or all of their software proprietary. I still believe that -- because even though I would argue that open source is often a better development model, I'm not in favor of the FSF POV that deems all software must be free. True freedom means the ability to do things that are not in the interest of the public or maybe, even ultimately, the developer herself.

My position has changed insofar as I now think that the business case (and not just the moral/ethical case) for FOSS or OSS is stronger -- but I still feel strongly that aspects of the GPL make it overly cumbersome when releasing software. My feeling has always been, if I choose to make my code available, I'm making that choice -- I would like you to choose to contribute any changes back. It would probably be better for everyone if you did that -- but I don't want or need reciprocal access to any code you use alongside what I wrote, and I don't feel you're obligated to share any specific changes back with me. If I wanted to enforce that someone has to pay me for my work in order to potentially profit from it, I would need to make my work proprietary and sell it that way.


I always thought of the GPL being more about the distinguished self-importance of programmers than software freedom. Imagine if mathematicians started putting licenses on their contributions to math. They'd be laughed out of math-town.

Look, if you want to contribute to the commons of programming, use a permissive license. If you want to cut out certain people who can't or don't want to use copyleft, use the GPL. If you can't stand the fact that someone might profit off of your work while you get nothing, don't publish anything.

Another good but seldomly given piece of advice: don't publish all your half-assed crap on Github. This is software pollution. Nobody wants to read the source code to such garbage as "stfupy3.org", but it will show up on search results regardless. No employer or potential client wants to sift through a list of trash to find the one good thing that you did that one time, that actually shows you know how to finish a program. Less is more!


> Nobody wants to read the source code to such garbage as "stfupy3.org"

How do you know? It could be exactly what I need for some esoteric reason!

Within the past year, I've found several useful projects on Github that their authors who appeared to consider them worthless.

---

Edit: As an example, I really wanted a simplistic dictionary app for my iPhone, which used the definitions built into iOS so it could work offline without taking up lots of storage space. Apps like this are explicitly against App Store guidelines.

After a chance search on Github, I came across this. Licensed under the WTFPL. https://github.com/forresty-archive/Dictionary

I'm not really a developer of any kind—I know basic Javascript—but I was able to figure out enough to get the app working on modern iOS, with modern fonts and such. The result was https://github.com/Wowfunhappy/Dictionary

Here's what really surprised me—I posted this to the /r/Jailbreak subreddit and I still get PM's once every other week thanking me for the app (which, I think I made quite clear, I didn't write). Apparently english language learners in particular find it very helpful.

Suffice to say, I'm really happy that "forresty", whoever they are, posted their rejected iOS app to Github.


> How do you know? It could be exactly what I need for some esoteric reason!

No true scotsman wants to read that garbage.

> Within the past year, I've found several useful projects on Github that their authors who appeared to consider them worthless.

If the authors truly believed it was worthless, they wouldn't have expended the energy to publish it.

But that's not the point anyway. If you drown out your good work with all the crap you may have written over the years, your overall portfolio becomes weaker. In the arts, pretty much everyone knows this. In programming, apparently only the people that are hiring know this.


Take a look at the example I edited in above (it looks like our posts crossed). I really do think that app's author considered it fairly worthless, it barely has a readme and it was explicitly given a WTFPL license.

I would have thought my barely-tweaked fork was worthless to, and almost didn't share it, but I'm glad I did.


Just because that one thing happens to not be entirely worthless, doesn't mean that anything has value.

Also, since you're not even a professional developer, I'm not directing that advice at you.


> Also, since you're not even a professional developer, I'm not directing that advice at you.

I think your implicit assumption that most Github projects are created as a form of resumé building is incorrect.


I'm not assuming that and it's irrelevant anyway. I'm concerned with what matters, not what represents some majority. The Github profile is (part of) your portfolio and if your portfolio sucks you are worse off professionally.

If that doesn't apply or matter to you, that's fine. You can move right along.


This includes a cynical view of capitalism, too.


Software is full of tiny monopolies and it's standard consensus that monopolies cause the market to fail.


There’s no such thing as a tiny monopoly.


An example of a tiny monopoly would be a program with no alternatives that performed a task worth a few thousand bucks to 20 people on Earth. It doesn't have to be Standard Oil for monopoly pricing to take effect, if the market is small enough the mere fact that two vendors couldn't survive at the same time would be enough to keep out competition. Another example would be proprietary data formats, if your program is the only thing in the world that writes and reads an Oracle database, you can charge monopoly prices to anyone who has an Oracle database - and unsurprisingly, Oracle does.


The alternative is for those 20 people to learn to code, or spread the word that they are looking to pay for an alternative.

A monopoly occurs when competition is actively prevented, in spite of its ample competitive ability. The monopolist uses its power to block the entry of new competition, even if that competition has the product, know-how and so forth. In some cases monopolies are geographical, like utility companies. Another utility company is just as capable, but it and its wiring/plumbing is in another district.

The mere difficulty of mustering a viable competitive effort (e.g. it being difficult to write a replacement program that those 20 people are willing to use instead) is not a monopolistic entry barrier.


There is no monopoly in either case you describe.

In both cases there is competition from other solutions.

People can and do migrate away from Oracle all the time, and that does constrain the price.

Your other example is obviously not a monopoly since the supplier has no pricing power.


Of course there is. What else would you call a company store in a remote logging camp? When the market is small, a monopoly can be small.


Is that camp the only one in the world?


Do you think it is?


Of course not and therefore there is no monopoly.


Self preservation or self interest is important. You can't really do much for others if you dont have your own stuff together. Having said that, modern capitalism is moving toward pure self interest and even exploitation of others. The author correctly identified the one freedom the GPL denies - the freedom to exploit the work of others purely for your own gain.


capitalism was always about exploitation of others


Capitalism is about providing others with products and services they want.


Capitalism is not "about" anything really. It's a description that sometimes applies (if private individuals can own (and buy/sell) equity, and operate the means of production for profit) to economies.

Of course there are good and bad parts, of course there are good and bad implementations/representations/manifestations of such big concepts.

For example using a price system and voluntary exchange is usually a great way to get clear signals about what people want and value. But if the market is in a pathological state (monopoly, oligopoly, or monopsony, high barriers to entry, etc.), then the market becomes exploitative. Is this the systems's fault? Well, maybe, but it's not because people can own equity/machines, it's because that particular system/market is fucked due to various reasons. (Either due to historic reasons, eg. enormous income inequality led to a small clique of people owning all/most of capital coupled with a political system that wasn't able to represent the capitally-disadvantaged; or due to other failure of politics - eg. a group consolidated power into a totalitarian system which then dismantled competition.)


I'd say that a system whose essence is to concentrate capital in a few hands, and where concentrated capital provides the power to tilt the system in your favor, is very prone to ending being fucked up. It's not that other political doesn't also suffer from this problem, but capitalism is not exempt from it.


This question screams for some quantitative analysis. What's the model, then let's crunch the numbers. Otherwise I fear we get into a yes it is, no it's not, yes it's inherently that, no it's not inherently that.

What is the essence of capitalism? That private property protection extends to capital goods, they can be legally bundled up and sold and bought.

Does this have any inherent dynamic about concentration?

I don't see it.

Throughout our history we always had inequality. Maybe capitalism mirrors that. (Does it exacerbate it? I don't know. It usually allows for competition, which should force inefficient markets to turn into efficient ones - which would provide a niche for everybody, but of course there is nothing inherently there to guarantee this.)

So I have to agree with you, basic bitch capitalism is too vague and as such most of its implementations are bound to fail due to human nature.


In a system of exchange, even when the rules of how exchanges take place is completely random, you necessarily end up with wealth inequality:

http://www.decisionsciencenews.com/2017/06/19/counterintuiti...

Now, in capitalism, where exchanges can be influenced more by those who have more wealth to begin with, it's pretty obvious that it will naturally lead to extreme concentration of wealth. So I don't believe this question "screams for some quantitative analysis" but there you have it anyway.

The essence of capitalism is indeed the protection of private property and the resulting dynamics will lead to the aforementioned results. I don't know how you cannot see it.

As for inequality throughout history, it is actually a pretty recent phenomenon. Considering humans have been around for 100k+ years, and that we were all pretty equal up until around 6k years ago, inequality is very much an exception in history rather than a norm. And you can make a strong argument that inequality only really took place once humans became sedentary and started to implement a practice of private property.

This is also how I think about human nature. The "nature" of hoarding and greedily taking everything and leaving your fellow humans with barely enough to scrape by is not something we have always done. In fact, we only became so successful in nature originally due to our innate capacity for co-operation and our social behaviour and language. The fact that our "nature" for over 90% of our existence was very different to the brutality of capitalism that we see today goes to show that there is no fundamental "nature" that explains inequality. It is clearly a function of the current system rather than an inevitability resulting from the nature of its participants.


Both assertions are not incompatible.


No, capitalism is about enriching yourself by, among other ways, providing others with products and services they want.

There's a slight but important difference between providing people what they want/need in exchange for money, vs. trying to make people give you maximum amount of money for minimum value provided. A lot of the problems attributed to capitalism are consequences of companies doing the latter rather than former. Instead of serving customers, they mine them. The current euphemism for that is "monetizing".


> Capitalism is about enriching yourself - not enriching your users and certainly not enriching society.

Capitalism is not about enriching anyone, it's about being free to do whatever you want with your resources.

Free software developers use their resources to enrich society (and I applaud their work). Mark Zuckerberg uses his resources to enrich himself. Both are being capitalistic, as long as they don't steal or kill (I'm sorry, Hans Reiser). They freely decide who to work for.


There's a category error in treating commons as property.

Even though Wikipedia copyright is nominally owned by the respective writer of each individual edit, the fact that it's licensed as copyleft allow anyone to treat it as a public good an benefit from something that you don't own.

See a framework like the Universal Basic Assets (UBA)[1] manifesto: it distinguishes between Private assets, Public assets, and Open assets - each having different roles and expectations in relation to society and how each resource can be exploited.

Trying to reduce everything to XIX century economical and political concepts is limiting in terms of discourse; we have acquired much better understanding of society-wide dynamics since then.

[1] http://www.iftf.org/uba/


Ideas can't be property in the capitalistic sense. Intellectual "property" doesn't enhance freedom in any way.

Conflating real (material) property with false, intellectual "property" is one of the biggest lies that have been fed upon our society.

I approve the efforts of Creative Commons and other initiatives to get around the sick copyright system. But I don't believe in their premise of "commons" because it implies a dependence in a political system or society at large deeming things as commons.


We are always going to depend on politics or society in deeming some resource as "public", as "commons" or as "property", because those are concepts that get their meanings from how people think about them. Whether they are defined by custom, by the legal system or because everybody shares the same ideology, they are necessarily social constructs - there's no such thing as "real" and "fake" property except as understood by people.

IMHO the biggest lie of our society is not property about physical vs intellectual goods, but the ideology that applies the same concept of "property" to the gadgets you can keep in your pocket and you can keep control personaly, and equate it to the large multinational company encompassing the work of thousands of people on several continents. They simply don't have the same behavior nor expectations, and yet somehow we're supposed to apply the same legal framework - in order to uphold the decisions made by the few people who are in control of the large organisation.


Wikipedia states both, operation for profit and private ownership, as defining characteristics:

"Capitalism is an economic system based on the private ownership of the means of production and their operation for profit."

Classically free software works more like a gift economy: https://en.wikipedia.org/wiki/Gift_economy

No capitalist society ever worked without a state that enforces rules and social constructs (such as private property or contracts).

Simple example of how simply talking about (some abstract notion of) freedom misses this: A gift based (ideas) economy could work without a state enforcing copyright. A capitalist (ideas) economy requires a state enforcing copyright.


> A capitalist (ideas) economy requires a state enforcing copyright.

No. Copyright has nothing to do with capitalism. In a completely capitalistic system, there would be no intellectual "property".

If you read the founders of right libertarian (pure capitalist) thought, the whole system is based around freedom. And property is justified based on the fact that it's necessary for freedom. Intellectual "property" doesn't enhance freedom in any way, to the contrary.

Granted, Marx created the term 'capitalism' to refer to the private ownership, and he conveniently bonded that private ownership to for-profit operation. But there can be ownership that's not for profit, and libertarian theory considers owning things without operating them for profit a perfectly acceptable stance.

Marx doesn't say anything about copyright or intellectual property, as far as I know.


And no true Spartan...

Some schools of thought use some weird notion of freedom to derive some abstract structure that has never been tried anywhere and claim it has some hypothetical properties. You want to call that "true capitalism".

I like theory, I do theory, but the post was talking about existing social systems within which we operate. Your private definition of "true capitalism" has nothing to do with that system.

Nor does it have anything to do with the accepted use of the term capitalism. E.g. in state capitalism [1]. Therefore it is a bad definition that hinders clear communication, and you have failed to convince me to use it.

[1] https://en.wikipedia.org/wiki/State_capitalism


If state capitalism is capitalism, then National-socialism is socialism.


You still can't define words to mean what you want them to. Common use of the term capitalism disagrees with you, and the use of the term in the posts you replied to does not align at all with your definitions, but with common usage.


[dead]


We just asked you (https://news.ycombinator.com/item?id=20137064) to please stop breaking the guidelines with generic ideological comments, and it hasn't slowed even a bit so we've banned the account. We're happy to unban accounts if you email hn@ycombinator.com and we believe you'll start using the site as intended.


> Capitalism requires that it’s participants provide value. Capitalism rewards providing others with things they want.

No, and it's surprising this is still believed even though most of the market economy around you screams otherwise.

Capitalism requires and rewards amassing capital. It may incidentally involve providing others with things they want, but it doesn't need to and frequently doesn't. Consider advertising, or the job of salesmen: the whole point is to convince people to buy your product/service where, left alone, they wouldn't. In a world where capitalism would reward providing others with value, these jobs would not exist. They're needed because there are more efficient ways of making money than giving people what they want.


"the whole point is to convince people to buy your product/service where, left alone, they wouldn't. " - your implication is cynical. Some of the time the reason you wouldn't is that you're ignorant of a better way. Certainly you don't want a better mousetrap if you don't know they exist. In that context, advertising and sales is just a way of getting the word out that something better is available.


I strongly disagree. My implication is down-to-Earth realistic, whereas your argument is a Motte-and-Bailey defense of the advertising industry. Yes, informing consumers about what's available on the market is crucial for good operation of the market. No, that's not what the advertisers do.

Informing consumers is putting yourself in Yellow Pages / catalogs of companies. Informing consumers is making a catalog of your products available. It's having a product page available with full specifications up front. It's showing up on trade shows.

Informing consumers does not require spamming them with e-mail and snail-mail, banners, billboards, leaflets or interstitials. Informing consumers does not require branding, or polluting every inch of space available to you with said branding. It does not require tracking people, spying on people, or manipulating people with dark UI patterns, dishonest journalism (aka. native advertising), paying people to lie to their audience (aka. influencers).

Most of money and effort in advertising is not spent on honestly informing people about availability of a better mousetrap.


Capitalism has an enormous blind spot, in that it doesn't contains ethic provisions on what happens in a free market to people not able to create value that others are willing to pay for. Given the relentless tendency of capitalism to optimize towards eradicating any inefficiency, it contains as a natural consequence the propensity to expel those people out of the system - i.e. the ethical proposition of capitalism is essentially "produce or die".

There are some relief provisions against this outcome of people being expelled from the system, supported by those who reject it as immoral; but they are typically frowned upon by those who see capitalism as an ethical system.

The first one is building an unconditional safety net to take care of those who have run out of resources to compete inside the system. There's also the possibility to create make-believe work so that everybody will be able to earn a living; not exactly efficient, but for some reason this tends to be better accepted by free market supporters.


(Replying to lone_haxx0r here, as the thread went dead while I was writing this):

> Why don't you 'steal' from your own pocket and help the poor?

See? That's exactly what I was referring to with "frowned upon by those who see capitalism as an ethical system" and with "capitalism has an enormous blind spot".

There's a rational argument perfectly consistent with libertarian free market principles, by which a government collecting taxes is not "stealing", as long as you don't take "anything a government do is evil" as a premise. If you begin from the assumption that people can willingly enter into contracts as long as their terms are legal and free from coertion, the argument goes like this:

- A country's land is owned by the state (or by its ruler, in case of a monarchy or a tyranny).

- There's a "social contract", willingly enforced by the citizens in that country (either explicitly or tacitly)[1], that the government has a duty to protect its citizens, and the citizens in turn will obey the government and pay due taxes in order to support the country.

- You were signed into that contract by your parents when you were born, as they had the legal authority over your rights to decide on your behalf.

- As soon as you legally become an adult, you can step out of that social contract by leaving the country at any time. By remaining in your country, you consent to its social contract, so you pay taxes to the government by your own will.

- Therefore, as an adult, you are not forced to pay taxes to that country where you acquired citizenship; but you don't have a right to be a free-rider by using the services provided by that country (military, roads, social welfare) without paying the required fee for those services.

- There's a free market of countries with open borders; people can vote with their feet in this market and migrate to their preferred one. You have no obligation to pay taxes at any one of them, but they have no obligation to accept you nor provide you with services if you're not willing to play by their rules.

TLDR version: creating governments and establishing taxes is the strategy we use to "'steal' from our own pocket and help the poor" in a sistematic way. Anyone not willing to participate is free to leave, but good luck finding a country that will not do the same.

[1] https://en.wikipedia.org/wiki/Social_contract


> - You were signed into that contract by your parents when you were born, as they had the legal authority over your rights to decide on your behalf.

> - As soon as you legally become an adult, you can step out of that social contract by leaving the country at any time. By remaining in your country, you consent to its social contract, so you pay taxes to the government by your own will.

This is where you're wrong. By saying "you can step out of that social contract by leaving the country at any time." you could justify any political system, including monarchy, dictatorships, etc. as long as people can leave the country.

You might as well say: "If you don't like the country you were born in, just kill yourself." because you're rejecting the discussion about justice entirely.

> - There's a free market of countries with open borders; people can vote with their feet in this market and migrate to their preferred one. You have no obligation to pay taxes at any one of them, but they have no obligation to accept you nor provide you with services if you're not willing to play by their rules.

That would work if switching countries had a negligible cost. Switching to another country is not as easy as choosing a pair of shoes.


> you could justify any political system, including monarchy, dictatorships, etc. as long as people can leave the country

Exactly! Can you point at how precisely this is "wrong"? I thought that was the essence of libertarian free-market capitalism as described by people who propose it, that any possible consensual arrangement is valid as long as it is entered without coertion and it doesn't affect third parties? (Sometimes, even when it affects third parties; I've lost count how many times free-market proponents will skip over the topic of externalities, abandon the conversation when politely pointing them to the externalities involved, or simply insisting that those externalities could be magically solved by applyinng more private property to the problem).

It's not a system I personally believe in, but the people proposing it always put it in those absolute terms, with "private property" being an absolute moral value, and any system (like taxes) which limit it being considered evil; so hey - what's wrong with exploring it to its ultimate logical consequences, just from an unconventional angle? Or maybe rationalism is only valid when you use it to arrive to the same exact consequences that you started with?? Playing devil's advocate to show the contradictions of an ideologic system is a valid argumentation strategy.

> You might as well say: "If you don't like the country you were born in, just kill yourself." because you're rejecting the discussion about justice entirely.

Not at all. I'm merely exploring a definition of justice different from "private property good, government intervention bad" that I inferred from your comment considering tax-supported social programs as a "steal".

> That would work if switching countries had a negligible cost

People proposing free markets as the ultimate moral good typically do not take into consideration these concerns of the cost suffered by the people who least benefit from applying the immutable axioms; in my experience, they will justify people suffering poverty because they have a plausible way of escape by engaging in private initiative and consensual contracts. So how exactly is that way of thinking, that I have often encountered in the wild, any different from my thought experiment above?


I have a question for the author.

How does he pay his rent? Where does the money come from? Is he a software professional?


For me this all copyright / license topic is non sense, that's why I don't even bother adding a license to my projects, some years ago I used to add MIT licenses when requested, however these days I just ignore those requests, they can use it or not, but I'm not doing any effort to fulfill these copyright / license claims.


Can somebody clarify for me - if you write 9,990 lines of proprietary code and include 10 lines of GPL code, the whole 10,000 becomes GPL, right? And then the whole 10,000 becomes public property according to the GPL so the person who wrote the 9,990 lines of proprietary code starves to death and dies because you can't monetize public property, and our food system only accepts money in exchange for food, not "good deeds" or whatever?

If so, then this is what people mean when they say the GPL is a "general public virus".


> if you write 9,990 lines of proprietary code and include 10 lines of GPL code, the whole 10,000 becomes GPL, right?

No. The 9990 lines remain under whatever license you desire. The 10 lines remain GPL. You can't distribute the whole work.

> And then the whole 10,000 becomes public property according to the GPL

The GPL doesn't make software "public property", whatever you think that entails.

> so the person who wrote the 9,990 lines of proprietary code starves to death and dies because you can't monetize public property,

No capable programmers starve to death, or even earn poorly because of the GPL. Approximately 90% of programming work is in-house development.

> because you can't monetize public property,

I don't know what this means; the GPL isn't about commercial software but proprietary software.

>and our food system only accepts money in exchange for food, not "good deeds" or whatever?

Again, I don't know what this means or what money (or even food), have to do with anything.

>If so, then this is what people mean when they say the GPL is a "general public virus".

If so, they are woefully misinformed and shouldn't be writing any sort of detraction lightly disguised as a very poor analysis online when the GPL is being discussed.


>> if you write 9,990 lines of proprietary code and include 10 lines of GPL code, the whole 10,000 becomes GPL, right?

> No. The 9990 lines remain under whatever license you desire. The 10 lines remain GPL. You can't distribute the whole work.

It would be more accurate to say that if you distribute a combined / derivative work that incorporates those 10 lines of GPL code, you have to do so under the terms of the GPL. To do otherwise is copyright infringement of the GPL code.


> if you write 9,990 lines of proprietary code and include 10 lines of GPL code, the whole 10,000 becomes GPL, right?

NO. GPL mentions no where about 10 being the minimum # of lines. All it says is that if your work is a "derivative" of the GPL code, then it must be GPL'd. Courts will determine whether including 10 lines of GPL code make your product derivative or not. The assumption is that a reasonable criteria will be evolved to determine when is something derivative and when it isn't.


> Courts will determine whether including 10 lines of GPL code make your product derivative or not.

OK but in reality that means the cost of including those 10 lines is that you are exposing yourself to an unknown amount of legal risk, and our legal system has a highly nonlinear penalty system, so it's basically as if the 10 lines infect your whole codebase with GPL.


I feel this is a bit of exaggeration. You are copying someone else's work without complying with their license. That act, not the fact that it is GPL, is exposing yourself to unknown amount of legal risk. Legal system does have nonlinear penalty system but at the same time, judgments are expected to be reasonable and fair. Courts will not force you to GPL your code, but they may stop you from distributing your work - which is EXACTLY what they'd also do in case of a plain old copyrighted work. In the best case, GPL gives you more freedoms and in the worst case, it reduces to standard copyright law.

To reduce the risk, you can go through how courts have interpreted and applied the definition of what a "derivative" work is.


> You are copying someone else's work without complying with their license. That act, not the fact that it is GPL

Right, so the correct conclusion is to never use, never contribute to and never write GPL-licensed software. Then you comply 100% with GPL, you have no legal risk and you also have money to pay for your Gatorade.

In fact the best solution would just be to completely rid ourselves of GPL?


> Right, so the correct conclusion is to never use

It depends on how you "use" GPL'd software. You _can_ run proprietary software on Linux. Clearly, using GPL'd and proprietary software together is legally possible.

> never contribute to

If simply contributing to projects licensed under GPL were such a huge problem, we would have industry-wide blacklists for employment. Contributing to _some_ projects can be a problem for _some_ positions but generally you are in the clear.

> never write GPL-licensed software

You, as the author, have the right to relicense code you have written yourself. GPL'ing your own code doesn't increase your legal risks.

So no, the correct conclusion is not "to never use, never contribute to and never write GPL-licensed software" and the best solution is not to "completely rid ourselves of GPL". I'm not even sure what the problem you are trying to solve is. People can and do profit off GPL'd code. It is not an instant death sentence like you seem to imply.


> People can and do profit off GPL'd code

how?


Your issue seems to be with copyright itself and not with the GPL.

If you copy anyone's work you need permission because copyright is automatically assigned and without it you are violating the law.


> Your issue seems to be with copyright itself and not with the GPL.

Copyrighted code is fairly simple to understand - you make something, you own it. Alice makes something, Alice owns it.

I don't really have a problem with this kind of code existing, and I think that we have very clearly seen that open source with a permissive license is capable of "beating" secret or copyrighted code.


The correct conclusion is that you must never use or look at software that you yourself didn't write.

Of course, then there's patents. You might want to avoid having any ideas at all.


No you can use software with an MIT license etc. Because that doesn't cause problems.


If you wrote 9,990 lines of proprietary code and included 10 lines of proprietary code from another company, I imagine that your entire program would have to be approved of by the other company in writing, or you wouldn't be able to distribute it.

What's supposed to be the difference here?


> proprietary code ... What's supposed to be the difference here?

The difference is that GPL is claiming to not be proprietary...


Which is why you don't need to ask for permission, just follow the license.


If you're a business, the license effectively says "you can't use this software" though, because as discussed previously it makes all the software that it touches into GPL software so you can't sell it, which is the point of a business.


You can sell GPL software. It paid my salary for years.


I don't understand?


What is there to understand? We sold GPL licensed extensions to a GPL application, and made money. All perfectly valid under the license: https://www.gnu.org/philosophy/selling.en.html


If I make a movie and include your copyrighted song for just three minutes of the intro, my whole movie violates the law. Or if I write a book and copy-paste just one chapter you wrote on your blog into it, the book also violated your copyright.

And I "starve to death and die" because yes, in this world you can't just take things that other people have made and use them in whatever way you like -- if you can't obey the terms that someone else has given for the use of their creative work, then don't use their work.


> if you can't obey the terms that someone else has given for the use of their creative work, then don't use their work.

Yes I agree, but the conclusion to this is that you probably should never use the GPL.

If you want other people to be able to use your code, use the MIT license.

If you want to monetize your code/keep it secret/sell it, then don't try to open-source it.

The GPL makes code radioactive and useless to everyone.

I get the intent in the OP that people should obey the golden rule and only build open source on open source. But what actually happens in my limited experience is that when a company comes across GPL code, the boss asks you to find equivalent code with an MIT license and ditch the GPL code.

If no such MIT code exists, the boss asks you to find another way, or to rewrite the GPL code yourself and keep it secret, or maybe even release it as MIT code.

GPL code is a dead end because it poisons other code.

And the fundamental reason for this is that programmers have to get money somehow, which almost always means being able to have some of the code they write as closed-source.

MIT allows closed and open source to exist side-by-side. You can write some code that does something, release it under the MIT license on GitHub, and also use it as a component of your company's proprietary product which ultimately pays for you to eat and live.

And this problem recurses. If I am not in a corporate setting and I am choosing between a GPL library or an equivalent MIT library to use in my own open source application, I should choose the MIT one because otherwise my open source code becomes "infected" with GPL, meaning that people in a corporate setting can't use it. If I'm deciding which library to learn as a hobby I should choose the MIT one because that will be useful for getting a job. Etc.

GPL will IMO be radioactive for as long as we insist that most programmers have to sell something in order to have a house to live in and food on the table. If the rest of society sets up a big fund to hand out money to programmers who make useful software, then we can talk about GPL.

But actually even if such a fund existed I still think MIT would be better.


useless to you != useless to everyone. Linux is GPL'd and very useful. Just ask Red Hat if you don't believe me.


GPL is an activist license. They have a worldview that they think is more right than others. It's of course not optimal for everyone. They think that closed source software is "morally wrong", and therefore "allowing closed and open source to exist side-by-side" is not really their goal.

As a user, I prefer GPL's activist stance, rather than MIT license's non-activist approach which essentially translates to an ethics of "might is right".


> They think that closed source software is "morally wrong", and therefore "allowing closed and open source to exist side-by-side" is not really their goal.

OK, that's nice but can these people explain to me how I should pay rent?


Work for one of the thousands of companies that pay you to write GPL licensed code? I can give you some references, having worked for one for a few years (specifically, we wrote Odoo modules for various businesses).


And how does the company get money?


Sales of the modules, optional support contracts, and SaaS hosting of the GPL application and our GPL modules for people who prefer it to self-hosting.


Except that analogy doesn't quite work. If you use a copyrighted song in a movie, you can choose to license that song (and the terms of use and cost will be up to the rights holder) -- licensing that song doesn't give the rights holder reciprocal access to your film.

So yes, I agree with you that you need to obey the terms someone else has used for their work, or else you shouldn't use the work -- but your analogy with regards to a film or a book isn't accurate.


You are welcome to negotiate a second license to avoid the GPL.


> You are welcome to negotiate a second license to avoid the GPL.

I have seen this in real life a few times. Usually something gets released under the GPL and then the authors ask for $ to hand it out with a commercial license on a case-by-case basis.

But in practice it is difficult to negotiate a truly fair price if the market is somewhat thin and the size of the code is relatively small. I've seen this for ML datasets for example, collected using taxpayers' money and the author wants $50k per license to allow a company to use it. But that $50k represents what the author thinks they can get away with, not the true value of the dataset to your algorithm. In reality companies (in my experience) stay away from this, and for good reason.

In cases like this I definitely wish GPL didn't exist, because if the academics who made the dataset had to choose between MIT or secret/proprietary, they would not be able to get away with Keeping their taxpayer funded dataset secret. (Because then taxpayers would be like "yo, wtf are we paying you for?").

One reason open source is good is that code markets just don't seem to work very well. But the good kind of open source is MIT licensed code.


"But that $50k represents what the author thinks they can get away with, not the true value of the dataset to your algorithm."

That is how the market works, right? The price of something is set not by the "value" but by what the seller can get. Researchers "get away" with keeping their data proprietary all the time.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: