back

by epaga·5y ago·view on hn ↗
I'm still bummed out that for years, GPL was the "standard" go-to open source license. So many projects became useless for any commercial projects whatsoever.

GPL advocates say it's so that your code isn't exploited by corporations.

But I'd say that choosing GPL means it's more important to you that your code "is not exploited by corporations" than that it can be used for good by people with commercial interests.

Those two things do not have to be synonyms. I'd much rather allow the second if it means tolerating the first.

(Edit: Seeing the downvotes, I'd be genuinely interested in counter-arguments or thoughts on this)

(Edit 2: Just because it keeps coming up, let me make absolutely clear that I do NOT in any way think GPL might never be a valid choice, nor that anyone, myself included, should feel "entitled" to "free as in *.*" code.)

24 comments
The GNU Foundation--and the GPL--put one thing at its most important focus: that "users"--the people who are actually using the software and entrusting it with their data or their lives--have guaranteed freedoms. People--such as myself--who use the GPL believe that these freedoms are extremely important: that "users" should be able to get access to the source code for programs and be able to modify them (...and before anyone whines "but users don't know how to modify programs", users know how to hire people to modify programs... most people also don't know how to do woodworking or autowork and yet people routinely get their cabinets done or their cars tricked out: a healthy aftermarket for software exists, and in fact if you look at stuff like jailbreaks for phones, advertising "we jailbreak your phone here" was a good way for such stores to make money).

https://www.youtube.com/watch?v=ReKCp9K_Jqw

If you believe that users should have such freedom, then letting someone who isn't a "user"--and I think this is where people get so stuck on forums like this, as most of the people here are developers and they want everything to be maximally biased in their favor--be able to modify your software and then not grant the freedoms we GPL-folk care about to actual "users" is unacceptable: it simply isn't why we are writing open source software, as the open source part is supposed to be able to benefit "users". So it frankly shouldn't be at all confusing why the GPL has the properties it does: if you think my open source code is so beneficial to your project that you want to use it in your project, you are more than welcome to do so!!! Only... you have to be willing to respect the freedom / rights of "users" that is codified in the license.

You kind of gave up the game by pointing out that GPL-folk distinguish between developers and users. It’s the key flaw in the GPL approach and all you need do is scroll a little bit to find a developer being told to fuck off for merely questioning the source disclosure requirement of GPL. Why do the authors of software command less respect than users thereof from those ostensibly working to elevate software?

Developers are users too. They use code. The GPL community’s insistence on segmenting those two groups and valuing the needs of one over the other for the last thirty years has led to way more angry threads than the world has ever needed. A community built upon unassailable rights granted to one class whilst mandating behaviors in another is somewhat incongruent at its base because it doesn’t track with unconscious notions of fairness and equality that most people carry. It also explains why developers are usually the one chirping about it, because they’re the second class in this picture. How that remains elusive after all the bloodsport and drama over this license is something I’m not sure I’ll ever understand.

I say that understanding the entire rationale, by the way. I absolutely get why both sides say what they say and I’m not disputing what you’re fighting for. Negotiation at gunpoint is what it is (again, scroll), and despite fighting what is otherwise a good fight worth believing in, expecting those at gunpoint to go along with no complaints is a bit naive in itself and a shocking lack of communal social understanding among the free software community. “Why won’t they work with us? We are telling them exactly what to do” is a self-evident position.

So instead we do this thread on HN and Slashdot and whatever every few weeks and get it out of our systems, then go back to status quo of not understanding each other nor why either side is much interested in engaging the other. It’s honestly puzzling that people still try.

I'm curious-- why don't GPL advocates ever flip the argument back on the proprietary devs? E.g.,

You are a developer of proprietary software. Your aim is to provide the same freedoms in practice that users enjoy in GPL'd software. What do you do?

There is a sensible and real answer here-- custom software development. If a user is paying a dev/dev-team to build that user some custom software, then barring fraud they have full control over what the software does. Plus, custom software and custom software development probably make up a huge chunk of the dev economy.

But notice that this is nearly never what GPL opponents are talking about. (In fact there is surely overlap between GPL'd software and custom software dev.) Instead they talk about consumer applications, games, etc.-- software which does not give its users the same freedoms as GPL'd software. In this class of software, there must then be an implicit premise: either the freedoms that end-users enjoy in both GPL'd software and custom software do not matter, or some other novel argument that downplays both the practical and ethical benefits of those freedoms.

And here's the thing-- whatever the implicit argument is, it runs counter to the spirit of both GPL'd software and custom software dev.

GPL advocates ought to use this argument to split the opposition between custom software development (regardless of license) on the one hand, and whatever the word is for proprietary software that aims to lock users into a system they can't control on the other.

Btw, the fact that I can't think of the word for the second category is a red flag that GPL advocates do a shit job with their propaganda. :)

Edit: clarification

That's the standard interpretation of the Four Freedoms. Unfortunately, I think it ignores that most users can't code. The Four Freedoms, practically, protect developers and the freedom to hack. These are good things to protect, but it's not the same as protecting the interests of users.

It can be argued that GPL'd code (in contrast to a license such as BSD) is less a net positive for users because the constraints the GPL places on how code may be used (requiring any user to expose modifications made to the GPL'd code along with a subset of the code connected to the modified code) means that some developers may not choose to use that code in their application. This results in fewer applications, which means fewer ways for users to solve their problems.

For Carmack in particular, I think that's the argument he's making. Carmack's goal isn't to guarantee developers maximum freedom to hack; his goal is to get his code in as many places as possible (because he prides himself on being the smartest guy in the room, and the more people use his code the more proof there is of that assertion). Maximal code adoption is not served by a GPL license; the GPL license sacrifices a bit of that opportunity to protect the developers' freedom to hack.

> and then not grant the freedoms we GPL-folk care about to actual "users" is unacceptable: it simply isn't why we are writing open source software, as the open source part is supposed to be able to benefit "users".

Why is it unacceptable? Why are people writing open source software then? "Benefiting users" can be done in various ways.

In my view, the GPL only manages to protest and protect software against the problems of intellectual property, copyright and capitalism. It's only about politics.

I agree with the sentiment, but that's really all it does, it doesn't solve legal problems. I'm curious to see which software licensed under BSD or similar suffered problems where the GPL would have protected them against.

> But I'd say that choosing GPL means it's more important to you that your code "is not exploited by corporations" than that it can be used for good by people with commercial interests.

My take on this is that those two things are almost equivalent. There are very few cases where I wouldn't consider someone using my open source code for financial gain without contributing back to not be exploitation.

If you're making something for personal use or even for some business cases, I see no valid reason you couldn't adhere to the GPL. If, however, you insist that what you make should be your own property and you just want to take what I made as your own and give nothing back to me or the project, then you should pay for dual-licensing or pay your own engineers to develop an alternative.

Open source developers are volunteers - many of us would gladly volunteer at a homelrss shelter, give blood, etc., but I can't imagine you'd find many people willing to volunteer for a company. For reasons why that is, ask anyone who's been in an unpaid internship.

Licenses are about choices. I do not want 7 year old girls to be sued. I don't want people to go to jail for helping others to take part in culture and enjoy art.

I want children (or everyone?) to have access to all of culture, knowledge and art regardless of their parents wealth. I want that researcher has access to research papers and software technology in order to enable the improvement of the human race, especially on the medical side.

I want life-critical and life-saving technology to be transparent and verifiable. I want technology that can be repaired and not arbitrary prevented from being repaired. I want that people have the ability to remove malicious code from devices that they own.

I do not want 20 years long government enforced monopolies on vague concepts. I do not want multiple lifetimes worth of government enforced monopolies on concrete art, culture and life-improving technologies.

People who want to use code for good with commercial interests could sign an agreement that follow those above wishes, including additional corner cases or obvious bad behavior which I might have forgotten. Alternative I can use a license that get me as close as I can using preexisting understanding of those licenses.

> to use code for good with commercial interests

You can use GPL code commercially. You just have to publish source on anything it touches. It that makes your business model nonviable, the amount of good you were doing is... questionable.

"People who want to use code for good with commercial interests could sign an agreement that follow those above wishes"

WI absolitely support the idea of getting comoanies to contribute to OSS they use, but in most cases the projects are not prepared for this.

There is no obvious standard way to pay that I could take to my boss

a.k.a. "For God's sake, think of the children!!!1!"
Why does the GPL license make it "useless for any commercial projects whatsoever"? Many commercial projects use GPL software.

The only thing you have to do is provide sources under the same license if you release binaries. If you're not even willing to do that I understand some people rather have you not use their software.

"Not even"? This is a huge requirement for most cases.

A small GPL library for, say, some statistics calculation, would mean an entire product's source code would need to be released if it used the library.

Id engines —as well as many other projects— were dual licensed, GPL or Proprietary. If you wanted to make a game with one, it either had to be GPL too, or you paid for a traditional licence.

This got Id paid and let modders and the open source gaming community go wild. What's the downside?

Carmack's argument about perception, but his view is really about having had more people use his software.

I think he's wrong. Brave thing for any SWE to claim but Id wouldn't have open sourced a second engine if the first was freely taken by a dozen companies and sold in competition with for game sales, giving no source improvements back.

And no, GPL advocates say it protects users of downstream projects. Software freedom is a huge topic, but the user is the focus.

The arrangement Id had protected them too. Carmack's take is just odd.

> Id wouldn't have open sourced a second engine if the first was freely taken by a dozen companies and sold in competition with for game sales, giving no source improvements back.

I don't agree with this statement, because they used to open source their engines a generation behind their current one.

They released the Doom source when Quake was state of the art, so I doubt having another company release a Doom clone in the era of Quake would've put them at a significant disadvantage.

But it is a moot point anyway. That hypothetical other company could've taken the GPL engine and created a game that competed with their games. All that would've been required of them is to make their modified source code available (assuming they even modified the source - their new game might as well have been the stock QUAKE.EXE with a proprietary .PAK and it would've been totally acceptable).

But in order to compete against them that game would've actually had to be good: It would have to have good graphics assets created from scratch along with good gameplay. Not to mention strong marketing given the strength of the Id brand.

What I'm saying is that I don't think the GPL protected Id from their competition from using their open-sourced code against them.

I know a lot of game developers that have never messed with Id tech because of the license, so what Carmack is saying makes sense. Yes I’ve read the Id tech code that’s been released but I’ve never thought for one second to use the code because of the license.
There is an example of 2 projects that started around the same time, one of which used the GPL and one of which used the BSD license. Almost 30 years after the projects started, the one one using the GPL is vibrate and healthy, while the other project using the BSD license has trouble getting companies to contribute their changes back and barely has enough developers participating in the community to survive.

This is the tale of Linux vs FreeBSD. Companies like Juniper that made heavy use of FreeBSD as the basis for JunOS have an atrocious history of failing to contribute their changes back to the community, and Juniper isn't the only one engaging in this behaviour. Sure there are other reasons that Linux took off and FreeBSD didn't, but license is a major factor in how their respective communities behave.

Yes, there are times when copying BSD licensed code is easier if you don't want to publish your source, but it isn't too difficult to adapt business processes to this constraint for the vast majority of applications. Look at what happened in the wireless router market. Early in the 2000s many products made use of the various vendors' Linux based SDKs and weren't compliant at publishing their source. Today OpenWRT is vibrant and most vendors offer GPL archive downloads on their websites. Personally, I don't think this would have happened if Linux wasn't GPLed and there wasn't the pressure the GPL afforded on vendors to open up their code.

I understand and respect John Carmack's position, and the GPL isn't for everyone, but people need to understand that license can result in significant differences in the viability of a community built around a software project on the longer term scales of 10-20 years.

This is quite far off the mark.

Many companies using FreeBSD, including Juniper, NetApp, Netflix, Netgate (pfSense), iXsystems (TrueNAS), Dell (Isilon) contribute significant code to FreeBSD. It's very expensive to maintain long-lived changes from upstream, so there's a large incentive not to do so. Code that's "not contributed back" is largely code that isn't suitable for upstream anyhow - because it is incomplete, limited in scope, etc.

Looking at "Sponsored by" tags on the last 6 months of commits to FreeBSD I see the following:

  The FreeBSD Foundation
  Netflix
  Rubicon Communications, LLC ("Netgate")
  Chelsio Communications
  NetApp, Inc.
  Mellanox Technologies // NVIDIA Networking
  Innovate UK
  Klara, Inc.
  Diablotin Systems
  Dell EMC Isilon
  iXsystems, Inc.
  Citrix Systems R&D
  Axcient
  Netflix, Inc.
  DARPA
  Alstom Group
  Eldorado Research Institute (eldorado.org.br)
  Ampere Computing
  Marvell
  Stormshield
  Amazon, Inc.
(and a long list of entries with one or two commits each)

There's a backlog of work that contributors would like to get into FreeBSD; a limiting factor is availability of mentor and reviewer time to guide contributors through the process and iterating on bringing the code into a committable state.

Linux isn't purely GPL; it's GPL with an exception carved out for system calls.

I think that's an important distribution, because the userspace equivalent would be GPL with an exception carved out for dynamic linking (i.e. the LGPL).

> GPL advocates say it's so that your code isn't exploited by corporations.

GPL advocates love when their code is used by corporation, as long as they don't violate the license.

GPL advocates say it's so that improvements to the code are still benefiting the group.

>Seeing the downvotes, I'd be genuinely interested in counter-arguments or thoughts on this

They are probably downvoting because time and time again people explain that the _purpose_ of GPL isn't to stop commercial use (commercial use is fine), it's to stop developers from depriving users of the same rights to the source code that you, the developer had.

I'm not even a GPL guy, just a guy that can take 10 minutes to read a license and an FAQ. I've also used GPL in commercial software, it's very simple to comply with the license.

You will see my opinions are mostly commercial, however it was GPL and its religious movement (against the man, 70's style) that gave us Linux and GCC.

Most likely Windows and UNIX clones would have kept taking their pieces out of BSD, after the 386BSD lawsuit was settled without any other alternatives to reach out for.

You can see this from how much Playstation OS gets upstreamed into FreeBSD.

Compared to how much PlayStation OS gets upstreamed into Linux? If you don’t want to upstream, you won’t; if you want, you will. GPL doesn’t force anyone to give back, it merely prevents one from using your project if they don’t.
>GPL advocates say it's so that your code isn't exploited by corporations.

I am not sure which GPL advocates you have spoken to, but I like the GPL, because it puts me center as a user. I can use and copy a programm as I see fit. And if I come to a point where I think something has gone wrong with it or something is missing, then I can modify it myself, or pay someone to help me do that, and I can distribute these modifications.

This ensures my freedom as a user. Maybe the software got abandoned, maybe someone added telemetry, maybe xyz, it's helpful in many cases.

More restrictive licenses, let's say the MIT one, do not prevent me from making making my contributions closed source. This ensures the freedom of the developer to prevent users gaining access to the code. Thus it restricts the rights of the user, that they would have under the GPL.

If a commercial project feels it's within their right to prevent me from accessing the code that is running on my machine, that is their decision, but that is at odds with the freedoms that are granted by the GPL.

Given all that, I would like to disagree with your conclusion

> But I'd say that choosing GPL means it's more important to you that your code "is not exploited by corporations" than that it can be used for good by people with commercial interests.

Chosing the GPL means it's more important to me that my users, not my code, is not exploited "by corporations".

The GPL then does not prevent "good people with commercial interests" from using my code - but given that "good" is a relative term: from my point of view preventing someone from having meaningfull access to the code that is running on their machine is not good - it is bad.

What if that "bad" is insignificant compared to the good produced by that code as part of proprietary software? That scenario is impossible with GPL. Effectively, you're just restricting the business models of your users. It has worked for some projects (Linux above all) but if you're talking about a small project that likely stays small, I don't know if it usually makes much sense.

Also, your convoluted explanation of why permissive licenses should be called "restrictive" is hilarious.

Why GPL makes them useless?

In my view, if your business requires leeching on unpaid work without contributing back I am happy about my code being useless for you.

GPL makes "them" (especially small one-off libraries) useless because even the smallest part can not be used without therefore needing to "contribute back" the ENTIRE app.

(edited to clarify I don't mean ALL projects become useless through GPL)

The "it's more important that your code is not exploited by corporations" crowd doesn't actually find GPL suitable anymore either, it still allows too much exploitation.

This position increasingly wants technically not-open-source licenses that reserve the right to profit from the code for... actually, a certain corporation, the one of the "original developers". It's not really about "by corporations", but "big corporations" vs "plucky entrepeneurs who deserve to get rich from their innovation".

Whereas before, for open source enthusiasts, it was about "those who get rich from code" (whether big corporations or 'plucky entrepeneurs') vs some kind of 'commons' or 'public good'. (The new ideological position believes they are still open source enthusiasts somehow, but that their non-open-rights-reserved licenses are somehow 'more truly' open source than... actual open source licenses including the GPL. The term 'open source' still has too much credit for them to say they are opposed to it, even when they are).

There is definitely an ideological shift going on. I am curious if anyone has written/researched more about it.

Blender, Krita, Wordpress, Drupal, Nextcloud and many other projects are commercial and (A)GPL. As long as you share the sources of your modifications, you are free to use their code.
All of the projects you mentioned except Nextcloud are owned and developed by non-profits.
There are lots of ways to combine GPL and proprietary code without having to release the proprietary source.

And how do you feel about LGPL? Many companies seem to be terrified of it for no reason.

Yeah right, you like to make money of off my work that I made available for free? You can buy the commercial license.
Not at all. I don't feel entitled to anything.

Here's where I think the misunderstanding is, and maybe I should have made this point in my original comment: I do think there can absolutely be cases where a dual license of GPL / commercial can make a ton of sense. I think those cases tend to be for projects like Linux, Blender, etc.

But what I'm saying I personally think is a bummer is that for years, most open source projects - down to even small but useful libraries - were put under GPL simply because it was "the thing to do".

Like Carmack says, in my mind that is a net negative, since these libraries then were not able to be used by projects which were under other licenses, due to their copy-left viral nature.

> So many projects became useless for any commercial projects whatsoever.

Which is why Linux is used in zero commercial projects.

Linux has GPL linking exceptions so the full terms of the license do not apply.
I think one of the reasons for why the GPL as once more popular than other licenses has to do with the fact that it was created for the GNU operating system, basically a collection of simple command line utilities. No one would think of using these in other ways than to run them on the command line (or in a batch file), which is explicitly excluded from the “derivative work” concept of the GPL.

Things got complicated once people put libraries under the GPL, which is when all the legal uncertainties cropped up about what constitutes derivative work.

there is value to keeping something public in itself, like with parks and roads. If anything i d say that todays feudal state of tech proves that gpl was right

it s hard to deny that the most-used OSS software, is GPL

It's easy to deny, as long as we include libraries in the definition of "software". ZLib is bundled with macOS, iOS, basically every Linux distribution, every game console and even every Windows 10 installation [1] [2]. Same for extremely common libraries like libpng, Curl, SQLite, Boost and OpenSSL.

[1] https://en.wikipedia.org/wiki/Zlib [2] https://www.microsoft.com/en-us/legal/products/notices/win

Not necessarily. Linux kernel is GPL, sure, but if you look at eg language runtimes, or various servers, GPL is no longer obviously dominant.
> But I'd say that choosing GPL means it's more important to you that your code "is not exploited by corporations" than that it can be used for good by people with commercial interests.

I'd say that for a lot of people using the GPL that is exactly correct, but they distinguish between the people using the code and the commercial interest that they work for much more than your wording suggests. That good person will eventually move on, potentially leaving just the commercial interest.

Of course there are more extreme views (that good people and commercial interests do not mix) so it isn't that simple for all.

And there is the obvious twist of the point that by avoiding the use code covered by GPL, someone is tacitly stating that the potential for commercial exploitation is an option that they (directly or via following their employers' wishes) expressly want to keep available.

This is why some projects dual license, but that can have its own problems for projects with many maintainers or forks - sharing back becomes a relicensing issue of it's own (it is less of an issue for a protect maintained by small team, or a team of one).

It is not only a matter of "that your code isn't exploited by corporations". It also a guarantee that any improvement to that code will be available to everyone.
If I make my code non-GPL specifically so other people can use it for profit, I effectively donated to a for-profit company. Why the hell would I do that?
I understand, I personally would not like a company, especially one that does not respects users privacy using my code in any way.
Why do people feel entitled to GPL-licensed work? If you are producing code for a commercial purpose then you have the resources to pay for the code to be written.

Just because GPL code is in the open does not mean it’s wasted if companies can’t use it for their own profit.

If you make a cake and smash it on the floor, I can call it a waste without feeling entitled to get some.
Nobody knew back in the day that this strange idea called "open source licensed software" would become a big deal. And when it did become a big deal, there still wasn't enough practical examples to inform us which license to choose. At the time, corporations were not "taking advantage" of open source licenses, and we had no idea they would later on. So corporations weren't really a factor for us. It was more about source code freedom / user freedom.