FSF's Richard Stallman Calls LLVM a 'Terrible Setback'
An anonymous reader writes "Richard Stallman has called LLVM a terrible setback in a new mailing list exchange over GCC vs. Clang. LLVM continues to be widely used and grow in popularity for different uses, but it's under a BSD-style license rather than the GPL. RMS wrote, 'For GCC to be replaced by another technically superior compiler that defended freedom equally well would cause me some personal regret, but I would rejoice for the community's advance. The existence of LLVM is a terrible setback for our community precisely because it is not copylefted and can be used as the basis for nonfree compilers — so that all contribution to LLVM directly helps proprietary software as much as it helps us.'"
If the gcc codebase was a bit more reasonable and it didn't require an entire legal team to get permission to contribute to their code, maybe this wouldn't have happened.
In particular, not everyone agrees with his rather narrow definition of "freedom". Some developers like the whole BSD thing, which gives more freedom to the person who uses and implements the software, rather than the original developer. It is akin to the CC-BY license, where you want to have your stuff acknowledged as a source, but you welcome people to do with it as they please.
I have no problem with the GPL, but the zealots that seem to think it is the only way EVAR that is ok and that people who want a less restrictive license like BSD are bad get on my nerves.
RMS is right, again. This does erode the GPL advantages.
But, the answer is fairly straight forward and I don't understand why it wasn't done in the first place. LLVM's BSD license lends itself well to being forked into a GPLed fork LLVM(BSD) -> LLVM-NG(GPL) -> -> ->
BSD helps proprietary software AND GPL. QED.
This comes from his belief that proprietary closed source software is dangerous and should be fought. So he is just being consistent. You may disagree with his assumption (I disagree at least with part of his ideas as well), but you can't say that his posture is inconsistent with his beliefs.
Which is only a problem if you actively do NOT want to help proprietary software.
I don't want to hinder proprietary software. I want to boost open software. There's a difference.
Proprietary software has it's place and, in a free market, people will choose whatever is best for them.
As in many things (feminism, sexism, racism, etc.) there are always some people who will champion the cause right through equality and out the other side.
You know what? I don't mind that proprietary software could take something like LLVM, do stuff with it, and sell it. So long as they can't stop ***ME*** taking LLVM, and doing what I want with it.
Historically "Free" software was hard to find and so proprietary was your only choice. From there, I would prefer to have open software which proprietary people can take and use too if they want. Pretty much, nowadays, you can find an open equivalent of just about anything but the most locked-in of protocols/programs.
But what I don't want is to tell everyone in the world they are an idiot if they don't open-source everything. All that does is make people hate you, and think you're an idiot. Instead, let's lead the way and **IGNORE** proprietary software, and put the lobbying efforts towards the choice of freedom, and writing good code.
When their customers realise that there's better software out there, for free, they will have to up their game, or start rolling up their sleeves to help.
We don't have to go around actively attacking them for daring to be proprietary. And we certainly don't have to get all snotty because a piece of software can be used by anyone.
From the post:
Or they believe that the "inconvenience" outweighs the need for those measures -- e.g., the inconvenience is very large or the need is not as great as Stallman believes.
Most of Stallman's post is quite balanced and reasonable. However, suggesting that another group's thought process is defective ("do not recognize" or "do not care") merely because they consider other factors and reach different conclusions than yours is a bit of a cheap shot.
The user gets the same freedoms from BSD and GPL, but GPL says anyone building on top of the software has to contribute their improvements to the community. Only fair really.
Technically, that's not what the GPL says. It says you have to distribute the source (or make it available) to anyone you distribute your software (binaries) to. In practice, that usually means making the source code available to "the community", but it doesn't have to. If you're a company selling that software, you only have to give the source to your customers. Of course, they have no restriction on redistributing it, so it goes to the community from there, so it's a minor distinction.
I wonder what RMS would think of a more "business-friendly" license where a commercial entity selling software could take software that's publicly-available, modify it, and then distribute that to paying customers, but not back to the community, but where the license required them only to distribute the modified source code to those same customers, however the customers were not allowed to distribute it themselves. This would be good for customers since they'd have the source code available "just in case" (the vendor went under, or they wanted to make their own modifications for their own use), and the vendor would like this because they wouldn't be "giving the software away". The upstream sources wouldn't like it as much as truly Free distribution, but at least anyone who becomes a customer of that vendor isn't getting screwed over.
So, yeh, the two can coexist, but the GPL does a lot more to ensure that we have great free software in the future. If you think that's a good thing, then use the GPL.
I think that's a debatable point, and that neither side has the high ground.
The GPL argument is that anyone who produces a derivative work must contribute back to the project, and thus the GPL generates more contributors.
The BSD argument is that there will always be people who create a non-free option, and if that is done by extending open-source the community may get some, if not all benefit from them.
I tend to think the second argument is better. Relevant to this discussion, Apple has taken free software like LLVM and turned it into something they package up in proprietary form (Xcode). Sure, we don't have all of Xcode for free, but then that was never an option. Apple was going to make that proprietary no matter what. However, there were parts of it Apple saw value in having open source, and getting a larger community, and in not being the long term maintainer, so they had their engineers do work on it and contribute those parts back to the community. That's part of why LLVM is better than gcc today. If LLVM had not been under a BSD license they wouldn't have used GCC, it's corporate poison, they would have rather licensed Intel's C compiler or something and the community would have gotten absolutely nothing.
The GPL is all or nothing, and the GPL community often gets absolutely nothing by insisting on all.