Hacker News new | past | comments | ask | show | jobs | submit login
My Personal Journey from MIT to GPL (drewdevault.com)
413 points by robenkleene 38 days ago | hide | past | web | 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.


Thisnis because most businesses don't understand GPL.


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.


> 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.


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.


> 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.


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?


> 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.


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.


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...


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".


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.


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.


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


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.


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.


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.


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.


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.


> 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.


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]

mcv 38 days ago [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.

ben509 38 days ago [flagged]

> 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.


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.


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."


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.


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.


Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: