Open Source Licenses

I stumbled upon this video recently which heavily criticizes Rust. While I don’t agree with all the points of the video, the critique at the 44 minute mark that did resonate with me was the disturbing trend of projects being rewritten in Rust moving from a copyleft GPL license to a permissive MIT.

With some extra free time over the holidays, I looked up and read the article referenced by the video. It’s a short read, so I encourage you all to read it as well! In this article, the author links a second article of his (aren’t academics great at referencing their own work :wink:) that describes the major downsides of choosing an MIT license over a GPL one.

After consuming these three pieces of content, it has me curious: what is the Zig community’s stance on licensing? Is there a valid use case for permissive licenses?

4 Likes

For me it’s simple MIT for every project I don’t really care about, GPL if I ever really care :slight_smile:

I honestly believe licenses like MIT/BSD are the most commonly violated copyright licenses. They are simple and easy to understand, but people realize that and put literally no effort into trying to understand them, and just treat them as public domain. GPL is harder to understand (longer text), but most people have enough of a gist to know how to not violate it (though often a too narrow understanding, and avoid it needlessly at times).

I generally find copyright to be a bogus idea, but especially so in the case of software. I started to write a rant about copyright in general, but I’ll keep it to myself for now since it seems a bit off topic on this forum. My ideal is publishing without a license and having people rightly treat it as CC0 / public domain, since it’s none of my business telling other people how to use their computers. Living in a reality where people are scared of returning to a world without copyright (and wouldn’t touch my unlicensed software), copyleft is a fairly useful tool available to fight for sane treatment of software.

To me, copyleft is a way to fight against copyright in general. I’d love to see the world return to being rid of it, so I use it.

2 Likes

Honestly gpl is super annoying and gets in the way at work or when building your own commercial projects. MIT is good for libraries because it doesn’t get in your way. It’s not about being compensated it’s about needing the tool yourself often for a commercial purpose. By making it MIT you ensure that you can also use it the next time you need it. The fact that big tech benefits and rarely contributes is an unfortunate side effect. For me a perfect license would be MIT freedom for anyone until they reach a LARGE threshold.

8 Likes

Absolutely hilarious to me that the projects listed are a bunch of GPL-licensed GNU clones of other people’s software, almost entirely from the Berkeley Software Distribution. You’ll never guess what license BSD uses. :slight_smile:

This person seems to labor under the misapprehension that ‘free software’ means use of copyleft licenses, despite the Free Software Foundation taking great pains to explain that this isn’t the case. I conclude that the opinions of said person may be safely disregarded.

GPL can sometimes be a win, seems to be a good choice for end-user graphical applications for example. I suspect Bambu would have been happy to rip off PrusaSlicer and release a proprietary version of it, if that had been allowed, but it wasn’t, and as a result we have OrcaSlicer, which is good. Things are working as intended.

For most cases, I have no interest in compelling anyone who might use my code to publish changes to it. I certainly do not intend to enter a courtroom, pursuant to a lawsuit intended to force compliance with the terms. So if I’m not going to bite, why bark?

Therefore I choose permissive licenses, almost always. Empirically this seems to be working out. I conclude that the shift in that direction is the free choice of other developers reasoning through the situation in a similar fashion to how I have.

6 Likes

I can imagine a world where a company would develop a better tool from an MIT repo, so good it gets integrated in a lot of distros replacing the slow-moving MIT repo. Copyleft looks useful to avoid this for me

I try to remember if something like that already happened at big scale, if anyone find something…

1 Like

I don’t think that Rust users are using MIT because Rust is MIT (as the author of the video says might be the reason), and frankly I find that assumption kinda funny.

In my opinion there’s a much more direct and obvious reason: Rust programmers are on average much younger than C devs and they simply don’t care about the Free Software movement.

@ScottRedig posted a comment a while ago about choosing a license that I agree with, I’ll leave it to him to link it if he wants to.

6 Likes

I understand, that makes sense. But as an exception, if someone wants to stop most large companies from using their code without contributing back (when they make a change), a viral license will stop them because they self-enforce all their use of 3rd party software. Of course, they probably just won’t use it at all.

I’ve started an experiment where I’m going to release most of my own code using the PolyForm Small Business License.

If they’re an individual, or small enough shop, I want them to be able to use, modify, make money using software I write. I don’t care that much about others contributing back modifications or improvements. If they are a big enough enterprise then they can contribute some dollars to my bank account.

The nice part with this license is that if I don’t like the outcomes fo the experiment it will be easy to relicense.

2 Likes

I like the intent of that polyform license, but I think it needs some work. There are some grammatical errors that might impede its effectiveness. I was left unclear about what it means for larger businesses, non-profit organizations, or educational entities.

That’s a good point, I think the licenses are intended to be modular. This one is specifically allowing you to use the software if you are X, I think for nonprofit organizations and education institutions, you’d want to also use the noncommercial license they have – I’ll have to add that as well.

Larger businesses can reach out and negotiate their own agreement.

Personally, It can be easy for me to be obsessive about things like this, and I remind myself that nobody is helped at all if the software isn’t finished… so if you have contributors / sponsors, discuss with them. They will determine if your project will last longer than a $MEDIUM_DURATION anyway. And if you don’t have collaborators, perhaps focus on how you can personally benefit from it first, because it might help you stay motivated to finish it (dogfood it). Perhaps even consider not releasing it. Whatever puts you at ease. It’s not like you’re getting paid anyway :), and if you’re not getting paid…stop putting expectations on yourself like you are!

1 Like

As a programmer I invest a lot of my free time to create programs which I publish for free for everyone in the hope that it will be useful for as many people as possible.

As a user, I don’t want the program author to restrict what I want to do with it.

I don’t think these are controversial opinions! And the free software definition aligns exactly with this (Free Software - FSFE), explicitly granting user the right to use, study, share and improve the programs.

I see a lot of people agree with this premise but then say that GPL is too aggressive and then fall back to just MIT, even though MIT can be worse for the user and an overreaction to GPL.

Because zig is licensed under permissive license, it has allowed somebody to fork zig and started to sell their own fork. That is a shame not because they are making a profit from free software but because they are improving the software and not sharing the improvements back upstream, resulting in worse software overall for the user!

(In this specific case it happened to be ok because there were no interesting improvements to be shared but that is just luck)

In cases where GPL can’t be used, MPL is a great alternative, still requiring the sharing of improvements while allowing to integrate the free program into larger proprietary programs, and I think that something like MPL would fit zig better.

1 Like

To quote from the Bitreich Manifesto:

The signs of MIT‐appearance in the community is based on the circle of complexity introduced into the minds of libre
software programmers by their oppressors transferring money to their bank accounts every month. Your software is used in
war machines to kill people and the companies will never give back. So enforce GPLv3, it’s needed.

Since private property exists and companies try to make as much money with as little expenses as possible, they will take your work, make profit on it with something you probably would not want and give nothing back.

So if private property exists use AGPL, else CC0.

3 Likes

Me too!

… pick a lane?

You’re missing a key piece of the story btw. The guys who took their ball and went home wanted to ‘improve’ Zig in ways Andrew wasn’t interested in accommodating. The putative ‘improvements’ are a response to that.

If Zig were GPL licensed, the fork would still exist, and my best guess is that there would be an open repo only if the Zig Foundation decided to waste money and manpower bringing suit in a foreign jurisdiction. Also we[1] wouldn’t be having this discussion because I wouldn’t have gone anywhere near the language.

You are still, just barely, on topic. But this is an invitation to the kind of political flamewar discussion we prohibit. Don’t push it.


  1. A presumably much smaller Ziggit might exist with a parallel conversation taking place. I’m saying I personally would have nothing to do with that. ↩︎

4 Likes

Interesting, after reading this post and this one, I’ve gone with AGPL 3.0 for projects I care about, and I’m also looking at other suggestions like GPL, MPL, etc.

Before going over them, almost all my projects were MIT licensed, but as things stand I think a GPL is the bare minimum and MIT is simply not an option.

Thanks for sharing links like these.

1 Like

Isn’t this exactly on topic, for my understanding, is this not the underlying question everyone has to answer for themselves? Isn’t this why we do Open Source and share our ideas openly, so everyone can profit?

If you don’t want to listen to my words, read Andrews:

If you think this is too much off topic, feel free to delete.

3 Likes

You are still, just barely, on topic. But this is an invitation to the kind of political flamewar discussion we prohibit. Don’t push it.

This is not an invitation to political discussion, its about the corporate nature of
piggyback → profit → dont give back
being brought to the front.

Critiqing this corporate nature isnt communist gobbletygook. In a post about software licensing these discussions are bound to happen.

If a post has violated a guideline, action should ofcourse be taken, but if not, mods should let discussions flow and not police around.

3 Likes

That fork is dead and has been for a long time, they were even in violation of the terms of the MIT license (they did not properly credit Zig contributors), but none of that played a role, what actually killed that fork was:

  • writing a blog post in Japanese explaining the abuse perpetuated by the other project in order to cancel the language-barrier advantage the fork had (it was aimed at a Japanese audience and leveraged hard the fact that a lot of Japanese people don’t speak japanese)
  • the post getting on hn which caused the ceo of that company to get blasted hard by the court of public opinion

Sure but as an author you do want to put limits. Case in point, MIT is more permissive than GPL :^)

Here’s Scott’s post I mentioned earlier Help me choose a license for my project - #5 by ScottRedig

I mentioned that people usually have too narrow of an understanding of what you can do with GPL software early in this thread. People (both for and against the GPL) quickly followed up to demonstrate that :stuck_out_tongue:

Some noteworthy corrections for this thread:

  • The GPL does not restrict commercialization. Selling access to GPL software is allowed under the terms of the license.

  • The GPL does not compel anyone to publish their changes to the software or to contribute changes upstream. The GPL only applies downstream, which may be entirely private parties.

I recommend giving the GPLv3 a read rather than just reading what people say about it second hand (or third, or fourth..). It seems like intimidating legal jargon, but it’s actually quite easy to get through, and any terms that aren’t obvious can be easily understood with a simple web search.

3 Likes