Richard Stallman - Re: clang vs free software
gcc.gnu.org
gcc.gnu.org
Stallman wants you to use Free software because it's free-as-in-ideology, not because it necessarily works well or does what you want.
If a 3rd world farmer is hamstrung by licenses on any tools they have (and seeds they grow), that could prevent them from making those tools better, or crossbreeding those seeds. Same with educational software and material.
Just because the focus is mainly on software, which is admittedly a 1st world problem, doesn't mean the ideals can't apply to the 3rd world as well.
Whoever controls our software, controls our world. Free software isn't a first world problem, it's a gigantic and urgent issue. It's only a shame that so many people don't realize this.
Open source works for a lot of cases (I wholly think BSD licensing is just fine for Clang/LLVM and disagree with RMS on this one), but it's just a pragmatic element. Merely a part of free software. Something being open source doesn't imply any particular redistribution rights and ethical guidelines by itself.
edit: to expound, the world they helped create is one where there is a durable, vibrant, and mainstream OSS culture where anyone with a halfway decent internet connection can download the source code & compilation tools for a state of the art OS. Radicals become irrelevant when they win.
People set up computer centers to help the poorest of the poor. Its a place where they can learn and express themselves.
Try set up such place and then pay for the OS, the text editor, the programming language, the painting program, the video editing, and so on. Compare that to finding some old used hardware being unused, and simply start helping the community immediately.
[1] If you want to hear more, I suggest one of the many talks from Eben Moglen. For a transcript of one, see https://en.wikisource.org/wiki/09NTC_plenary:_Eben_Moglen but its a bit short on details.
Though, the point is, you can make free software work the way you want or work better. You're _allowed_ to. That isn't necessarily the case with other software; that is the point of free software.
There is more to RMS's version of 'freedom' than just being able to modify the code, the AGPL is a great example of this.
Actually he doesn't....he considers Clang/LLVM to be open source and not free, Clang/LLVM does not restrict users from developing their own extensions and licensing them as they see fit which ironically makes the software not free (according to the RMS ideological software freedom purity test).
If the FSF consists solely of the opinions of RMS then I retract the previous statement and would say that the page mentioned expresses an opinion inconsistent with what is expressed in the email.
"The values of free software are fundamentally different from the values of open source, which make "better code" the ultimate goal."
Clang wants to make a great compiler, they chose the NCSA license to facilitate that, according to the article makes it open source software and not 'free software' rather than 'unfree software'
I get you now, makes perfect sense.
So when RMS says that, he's saying Clang/LLVM opened up the source code in order help their software perform better and see wider usage. Whereas RMS's goal for GCC is to ensure freedom for its users. Technical superiority is great, but it is not the goal, and may be sacrificed if necessary to achieve that goal.
He's not saying Clang isn't free software, he's saying their ultimate goal is not freedom, as contrasted with the FSF.
1) Free means freedom in the copyleft sense.
2) Free means freedom in the open source sense.
3) Free means free as in beer.
In the article RMS appears to be using definition 1, elsewhere on the FSF site the FSF uses 2.
"In the free software movement, we campaign for the freedom of the users of computing. The values of free software are fundamentally different from the values of open source, which make "better code" the ultimate goal."
It's very clear that "free software" in the article is definition 1, since MIT/BSD falls clearly in category 2, LLVM/Clang is NOT free software according to the definitions used in the article, and therefore the position RMS is advocating in the article is that LLVM/Clang is not free software, but rather open source software.
Yes to everyone else in the world, including the FSF, Clang/LLVM is free software but according to RMS it is not.
It is possible to be both unfree, and support dictatorships, like the USSR. RMS's goal with GCC, is to be like the mythical free country that also supports freedom and discourages dictatorships elsewhere in the world.
In other words, your software can be free, and yet support and aid those who would take your freedom away. This is the claim RMS is making of Clang.
"The values of free software are fundamentally different from the values of open source, which make "better code" the ultimate goal."
Perhaps you could provide quotes where RMS in the article says that clang is 'free software'. According to RMS in the article clang is a major set back for free software. (because it's better than their piece of crap)
http://www.gnu.org/licenses/license-list.html
clang is "free software" according to his own definition. It is entirely possible for a specific free software program to be a setback to the goals of the free software movement. His position is that copyleft licenses (very often, and certainly in this specific case) advance the goal of freedom more effectively than non-copyleft licenses. The differing values in this case basically amounts to whether one considers it worth using a copyleft license to ensure that the software being used remains free, or whether one considers it a drawback that a copyleft license may prevent it being used in proprietary software.
Furthermore which compiler-suite served as so long so good in the "dark" pre-LLVM ages?
Biting the hand, which feeds you comes to mind...
This restricts users freedom, that is his point.
GPL is not about the rights of the programmer, it is about the rights of the end user.
This is a purely political decision: RMS wants gcc not only to be free software but he also wants it to be unusable to create non-free derivatives thus making it an active tool in furthering free software. clang undermines this because you can create non-free software based on it thus making it a tool that can easily be used to restrict freedom.
It seems that implicit in this claim is that if non-free software exists, its mere existence restricts freedom. Would that be a fair statement of anybody's position in this debate, or have I gone off the rails?
Will the threat itself restrict freedom? Yes. Can threats cause harm? yes. However, so long its not distributed, no one is threatened.
So, on your question, no, its mere existence will not restricts freedom. The restriction happens once it has been distributed.
> They have been supported by Apple, the company which hates our freedom so much that its app store for the ithings _requires_ all apps to be nonfree.
> The only code that helps us and not our adversaries is copylefted code. Free software released under a pushover license is available for us to use, but available to our adversaries just as well.
> If that enables GCC to "win", the victory would be hollow, because it would not be a victory for what really matters: users' freedom.
> 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
Sorry about the charismatic way I presented my views, perhaps I should have mentioned my penchant for eating the raw uncooked flesh of freshly slain animals to make it more clear as to whether I was intending to advocate views similar to Hitler.
You may want to look into these links: http://en.wikipedia.org/wiki/Modes_of_persuasion
If there was any persuasion in it, it was to not use irrelevant association since it do not add anything beyond a appeal to emotion, spun around a fallacy. Hitler, like George Bush, creates a guilt by association while the association is irrelevant tied to the subject matter.
The result thus becomes a polite discussion around the more creative ways of eating meat.
We could debate forever on the semantics of which is more free, but I don't think having the freedom to restrict the freedoms of others is going to encourage freedom.
Interesting that preventing users from doing something with a bit of software (e.g. selling non-free derivatives) is considered restricting freedom.
Kind of self evident when stated from the users point of view really.
I use gcc, and I work as a treesurgeon.
My freedom to swing my fist stops at the tip of your nose; my freedom to modify legalese surrounding GPL software stops when it would deprive others of their "four essential freedoms" (in the words of the FSF).
0. The freedom to run the program, for any purpose.
1. The freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
2. The freedom to redistribute copies so you can help your neighbor.
3. The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes.
If you don't believe that these are important and should be respected, then you shouldn't be licensing things under the GPL. If you believe these are more important than the restriction imposed, then releasing under a permissive license is not itself "restricting freedom", but all it is doing (compared to the GPL) is enabling "restricting freedom". When the only thing a change does is make a bad thing possible, it's still better not to make that change.
I find it somewhat interesting we have no viral license that protects freedom 0 and 1 in derivative works but allows adding additional restrictions that conflict with 2 and 3 (or don't, which would make it GPL compatible...).
I think that, to a large extent, creating useful software, inasmuch as it is a pursuit of the FSF, isn't an independent goal so much as a mechanism for acheiving the goal of obstructing the development and spread of non-Free software.
And I think, that's a better position to be in; I mean, freedom is more important than to have good softwares.
we’re always telling children that they have to learn to share, to be considerate of each other’s needs, to help each other; then we go off into the real world where we assume that everyone is naturally selfish and competitive. But an anarchist would point out: in fact, what we say to our children is right. Pretty much every great worthwhile achievement in human history, every discovery or accomplishment that’s improved our lives, has been based on cooperation and mutual aid; even now, most of us spend more of our money on our friends and families than on ourselves; while likely as not there will always be competitive people in the world, there’s no reason why society has to be based on encouraging such behavior, let alone making people compete over the basic necessities of life. That only serves the interests of people in power, who want us to live in fear of one another. That’s why anarchists call for a society based not only on free association but mutual aid.
http://theanarchistlibrary.org/library/david-graeber-are-you...
If I may make a parable: Don’t hate the rebels for being violent; hate the oppressive state against which they rebel.
But - you make a good point - a good reason to be against copyright is because abolishing it would defeat the GPL.
Not bringing this up to argue that RMS is correct or reasonable (here or elsewhere), but I just thought it was interesting. RMS may be an unrealistic utopian, but his unrealistic utopia is some mutant form of liberalism - with property rights and commerce etc. - not communism or even big-s socialism.
Because something might be inconvenient to you, it doesn't make it automatically wrong. There's a distinct line between free as in freedom and free as in arbitrariness. The former comes with responsibilities, the later without.
Furthermore take a look at the "USL v. BSDi" lawsuit, where BSD was sued by AT&T for infringing copyright-laws against their own(BSD) source-code, which was incorporated into USL(AT&T's) UNIX-variants!
"Freedom" comes with responsibility, if you want carefree "arbitrariness", then say so, but please don't mix them together, they are fundamentally different!
Furthermore they are not rights - they are desires.
You are free to negotiate terms with people from whom you obtain software, and you are free to refuse software without source code.
What the GPL seeks to do is force other people not to be free to choose their own terms.
Whether you like the effects of the GPL or not, it has nothing to do with freedom.
I can see people in the USA having problems to properly frame his position due to the ideological burden of equating any kind of a demand for sharing and cooperation with communism or socialism, regardless if the demand actually has anything to do with left wing political motivations.
RMS has steadfast refused to even entertain anti-business terms in software licenses as something fitting for a free software license, except to the extent that the "business" involves taking the free software in question and making it non-free.
I picked some pretty harsh possibilities there that seem a little dystopian, but I wouldn't rule any of them out, or any of the million other horrific possibilities that increased coupling of technology to our lives, without (self-)regulation could enable.
If you really want software to 'just work', you should probably first ask, who is it working for?
You are aware that all your attempted examples could simply be called 'not working' when evaluating the software.
I'm also not sure how I could say software is working for me if I must first agree to be dictated the terms of it's use, and agree that the vendor may dictate any new terms in the future, which I must agree to in advance.
Yes, I agree, freedom to have the essentials for human survival is a lot more important than having instant access to the latest BF4 patch.
Care to provide a bit of qualification and relevance to your broad, context-free, ill-defined statement?
If the comment was meant to say that "free software is more important than good software", then it would be great to get a bit of elaboration and qualification for such a contentious statement.
I think he does care how well stuff works and whether it does what we want--he just takes a very long-term view of that goal.
For example, let's say an ok V1.0 piece of open-source software is released under the BSD license. A startup takes the source, modifies it to create an awesome product, and releases that as a closed-source product.
Everyone loves it and adoption goes through the roof. The company gets hugely successful and is bought by Big Tech Corp Inc....who really just wants the talent. They EOL the great product.
Because it is closed source, the best that customers can do now is to reach back to original mediocre BSD'd code and try to replicate the development that went into the awesome product.
BUT--go back to the beginning. If the mediocre product had been GPL'd, then the startup would have been obligated to release their changes as source code. So even though it was EOL'd by Big Tech Corp, the customer base has the up-to-date source code, and can carry on development and support as a community.
Now, I'm not going to say that is a 100% accurate view of the world...the obvious counter-argument is that aggressive licenses like the GPL3 actually discourage business support of products. Thus a GPL3'd mediocre V1.0 would never have been picked up by the startup in the first place, and never would have been developed into an awesome product.
I won't say I know which argument is correct, but I will say I can at least see where RMS is coming from.
Portable, open formats are more important than the mechanisms.
Time and time RMS has been proven right about the detrimental consequences of non-free software, but usually over the span of many, many years.
Non-free software has a habit of working well and doing what you want right until it doesn't and then royally screws you.
You can only be pragmatic about it (most of us are) if you are aware of the risks and consequences. Otherwise you're just being ignorant.
I love free; what doesn't feel "free" to me is the GPL, since I can't use just about anything GPL in my job.
My job involves creating non-free software. Given the GPL's goals, it's not a surprise at all that I can't use it.
But it strikes me as ironic that RMS talks about "freedom" when really he's advocating restricting your freedom to use the software.
I understand it's in pursuance of a "greater goal" of Freedom to modify everything, but the problem is that, in the large, free software sucks, and I don't really want to be responsible for making it good.
Sure you can come up with a dozen really great free software packages (I'm using Firefox to post here, for one, and I make builds using gcc daily and gnu make). But I can come up with a thousand that suck -- and that includes the "best" packages in a number of different categories: Image editing, document editing, development environments (Eclipse has some nice bells and whistles, but that doesn't make it not suck), 3d editing... ALMOST everything with a GUI, browsers being a huge exception. [1]
Those are just the categories I've tried and tried again to make Free software work for me, because I am attracted to the ideal of working with Free software. But every time, the paid/proprietary solution has been so much better than the free solution that I've defected and paid for the proprietary version.
No, I'm not going to use free software to support an ideal. I'm going to pay for software that helps me get my work done faster and better. Because at the end of the day, I appreciate good tools, not ideals.
There may come a day when I try to make my own "free" software project, but if I do, it will be because I really want to make a world class tool in that category, and I feel that the free model is the best for that tool. But I will continue to choose my tools based on what they allow me to do, not their source code license, and the proprietary tools I do use offer me more advantages despite being closed source than their open source equivalents.
[1] Don't bother posting arguments about this or that free software package in these categories. Unless it's brand new and awesome, in which case I might like to try it out. Regardless, one example doesn't change my overall point, and I don't want the thread to devolve into "Gimp is great!" "No it sucks!" -- "Good enough" for one person is not always going to be good enough for another.
So your objection to the GPL is essentially that it doesn't grant you the freedom to take away these user rights.
You were talking out your ass, is what you were doing. An anecdote about THREE. INDIVIDUALS. doing X pretty solidly "defeats the point" that X is reserved to "large corporations" - we're not even a mid-sized corporation! None of the three of us currently paying for bespoke development is particularly wealthy (one is a part-time music teacher), if we'd gone overseas (or even out of state) we could lower development cost further, and the scope of our project is much larger than the minimum meaningful chunk of work.
"Bespoke development is cle[a]rly out of reach of most end-users."
Bespoke development is not out of reach of most end users, at least in terms of resources required. I would put forward that basically any user desiring a particular feature or small functionality change - outside of extreme examples - could financially manage it if 1) they cared enough and 2) they found sufficient friends interested in the same, and that for most users and simple tasks, "sufficient friends" is not a hugely high number. Organizationally, most users would presently have a hard time picking an appropriate developer and working with them, but that's a separate problem that numerous groups are working on solving.
With proprietary software, on the other hand, bespoke development is far further out of reach, because there is dramatically less competition - only the original authors can bid to modify a piece of proprietary software so no two groups are bidding on the same job.
Bespoke development clearly is out of reach of most end users. There are billions of end users of computers now. You may exist in a rarefied stratum of the economy that gives you this freedom, but to claim that this is the case for most users is bizarre.
I am astonished that you think that choosing a good developer is the biggest challenge for end users who want custom software.
Your comment about proprietary software is invalidated by the examples of the web, Google Play, and the iOS app stores, which are brimming with highly specialized solutions which are developed because there is a business model to support the developers.
No, it doesn't support my argument. It also doesn't undermine it, and it served as a certain amount of stress relief in the face of an unconstructive and (in my view) absurd response, but it was nonetheless inappropriate and I apologize.
"Bespoke development clearly is out of reach of most end users. There are billions of end users of computers now. You may exist in a rarefied stratum of the economy that gives you this freedom, but to claim that this is the case for most users is bizarre."
Is your argument "it could not be sustainable, because there are not enough developers compared to users"? I don't see any other argument there, but as that one seems easily (if somewhat verbosely) addressed I want to be sure I'm speaking to your actual argument.
"I am astonished that you think that choosing a good developer is the biggest challenge for end users who want custom software."
Not just choosing a good developer, but collectively choosing a good developer, sufficiently defining the task, and communicating with the developer. I do think that is the biggest challenge for users who wish to customize an existing piece of software under a free license. It is not the biggest challenge for users who want to modify or reimplement a large piece of proprietary (or non-existent) software, but that is comparatively rare and it matters less the licenses of existing code. If you disagree, please be explicit about what challenges you think would dominate.
"Your comment about proprietary software is invalidated by the examples of the web, Google Play, and the iOS app stores, which are brimming with highly specialized solutions which are developed because there is a business model to support the developers."
That certainly invalidates any claim there can be no specialization in proprietary software, but I never made that claim. Freedom 1 is a right to modify the software I am running. That presumes there is an existing solution that's not quite what I want. If the license on that solution preserves my "freedom 1", paying someone to modify it is competitive, and therefore probably cheaper and probably better.
"I make builds using gcc daily and gnu make"
I called it out as the only thing I do use.
And I may transition to Clang from gcc if a build problem I encountered with an older Clang version is fixed. That leaves gnu make.
And make sucks for many, many reasons, but that's not Gnu's fault. It's just that all the other building solutions suck more.
It is ironic in a way, but it is only a valid criticism if you consider that you should have the freedom to restrict other peoples freedoms. This is generally considered to be immoral in modern society.
Please read https://en.wikipedia.org/wiki/Negative_and_positive_rights and in particularly about the right to be left alone (negative rights).
Freedom of speech, private property, freedom from violent crime, freedom of worship, habeas corpus, a fair trial, freedom from slavery are just a few freedoms that can only be implemented by restricting others. You can't have freedom from slavery without restricting slave owners their right to enslave. Thus the term negative rights had to be made by philosophers and political scientists.
The proprietary model is to trade software for money, and then threaten your customers with lawsuit if they share or modify the program. GPL provide software under the freedom from those threats, with the use of negative rights (ie, the user of the program has a right to be left alone). If you can not make software without threatening your users, don't try to start by taking GPL software.
>If you can not make software without threatening your users, don't try to start by taking GPL software.
Umm...other than using it as it's designed and permitted (e.g., gcc), I don't. Any code libraries that are GPL (or even LGPL, except under specific circumstances) are dead to me. I'm annoyed when my time is wasted coming across one on a search. I would even bail on GCC for the superior Clang but I have one package (of many) that needs GCC to build in my current project for a client.
Almost all GPL code is likely to lose support compared to any BSD/MIT competition in the long term (except possibly for those packages used in server development, since they can be used commercially without being distributed, circumventing the intent of the GPL). Most non-server developers do their best to avoid linking to GPLed software because they're working on proprietary software.
RMS alludes to this in the article: "The existence of LLVM is a terrible setback for our community..." The superior network effects of BSD/MIT-licensed libraries means that those libraries will get more developers, who will fix more bugs and more features, which will then attract more developers, etc. (Not to mention the fact that LLVM is just more awesome than GCC).
As a developer I hate to have to rewrite code. Yet I'm forced to if the only code available is GPL; I can't change my business goals or those of my clients for the sake of a goal that's never going to be achieved. Asking me to is naive. The financial reality is that (most of the time) to make money writing software, you need to sell it (and therefore restrict the rights of those you sell it to).
The first 80% of a project is the most fun and satisfying; most open source projects rarely make it beyond that first 80% (if they make it that far) [1]. Companies that make money writing software will pay developers to complete the libraries they're using. As those BSD/MIT libraries get better, the GPLed competition will fall behind.
[1] Notable exceptions include the abovementioned server software category, where commercial/proprietary developers can use (and therefore will likely contribute to) GPLed code, and projects that have enough income to support full-time commercial development.
> But it strikes me as ironic that RMS talks about "freedom" when really he's advocating restricting your freedom to use the software.
1. The GPL isn't restricting your freedom, your employer is. You are working under contract terms and policy selected by your employer. Your preferences aren't relevant.
2. The GPL isn't restricting your employer from using the software, just distributing proprietary add-ons or integrating parts of it in to their commercial products. They can still use it to compile and ship software, for free, giving nothing in return... that's still a pretty sweet deal when you go and look at the competition. Microsoft will charge you for the privilege of using their inferior compiler (full VS suite aside).
What kind of mindset says "Oh boy! B is giving me more stuff for free than A was, I'm going to go shit on A and make demands!"
That said, not all restrictions are equally problematic - an obvious brokenness would be wanting to mix original-BSD-license code and GPL code; both licenses purportedly free (says even the FSF), but the 4 clause BSD code adds a restriction regarding advertising materials mentioning UC Berkeley.
That's true, but if I'm a person whose only goal in life is to maximize free software, I may still be rationally motivated to license my project BSD instead of GPL. A BSD-licensed project can sometimes attract more users. Of course, that is because some of them will use it in their own non-free projects; but in many cases, their project would have been non-free anyway, and they would have just used someone else's code instead of mine, or written their own. If they use my project, it makes my project's ecosystem stronger, which is good for free software.
"If they use my project, it makes my project's ecosystem stronger, which is good for free software."
Maybe. If they run with your code and build a proprietary fork with a few features on you, and users migrate over, your project's ecosystem may be weaker despite the code being used by more people, and it would be bad for free software. It's hard to say.
I'm freelance. I write games and apps, and I do contract work. I can't use GPL software (except for GCC, which I already noted) in creating any of the products that I create because I need to make money.
Not everyone can make a Free product so popular that they can make money being paid to maintain it. I think there are probably fewer than twenty examples of such products that are actually monetarily successful for their creators, and I've read multiple stories of developers who had crazy-popular free products and who were unable to make ends meet.
Not sure how you expect "my employer" to make money giving products away for free either.
It's not "my employer" but the market realities that restrict my freedom with respect to GPL. I can't even publish an iOS app with GPL code; blame Apple all you want, but iOS and Android are gold mines of contract opportunities. You're telling me I should stand on some feel-good principle and ignore the $125-150/hour contract offers that keep pouring in and instead take a job making free software for 1/3 that amount? If I can even find such a position?
Sorry, I'm taking the money. You can make the sacrifice if you want.
>Microsoft will charge you for the privilege of using their inferior compiler
Express editions have been free for years. And that includes the entire VS suite as well as command line compilers.
>"Oh boy! B is giving me more stuff for free than A was, I'm going to go shit on A and make demands!"
Umm...hello? That's entirely unlike what I said.
What I said was: Lots of Free stuff sucks enough I'm willing to pay for closed alternatives. That's two kinds of payment: Paying with dollars, and paying with the restrictions in my freedom. And I'm saying the transaction is worth it. I'm not making any demands. I am saying that a lot of free software sucks compared to the alternatives, but that's just the truth.
In the case of Clang, it's awesome to me that it's BSD-free. If I need it in a piece of software, I can use it without question. Might it end up in a proprietary package? Yes. But if that user makes changes they'll likely send them back upstream so that other users of Clang will benefit.
Yes, that's pretty much it: http://www.gnu.org/philosophy/compromise.html
This discussion originated on the emacs-devel mailing list, where there was a discussion of adding code to company-mode (text completion) explicitly supporting Clang [1].
It was pointed out [2] that RMS has in the past shown a disinclination to incorporate Clang support into GNU projects because of his perception of its encouragement of proprietary software riding the coattails of open source (but not Free) software.
The discussion then turned [3] to another instance of this: RMS's disapproval of modifications to GCC that would have made the front end more easily separable from the back end, opening the door to a proprietary end-around (or just outright abuse) of the Free license on the GCC frontend.
The article linked above is RMS's response to ESR's comments [4] that such policies have reduced the popularity of GCC compared to Clang.
[1] http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg017...
[2] http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg017...
[3] http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg017...
[0]: http://llvm.org/svn/llvm-project/cfe/trunk/LICENSE.TXT
[1]: https://www.gnu.org/philosophy/free-sw.html
Edit: Yes, it is a free license, as other's have pointed out.
I think the biggest hurdle to people caring about copyleft is the sheer tonnage of disrespect people like RMS show to others. Nobody wants to work with a curmudgeon.
Who said it was bad? People have said it is not copyleft.
I think the biggest hurdle to people caring about copyleft is the sheer tonnage of disrespect people like RMS show to others. Nobody wants to work with a curmudgeon.
I think that's ridiculous. Do you really think corporate backers of LLVM would just ignore their economic incentives for a non-copyleft compiler if RMS was friendlier?
RMS.
> People have said it is not copyleft.
RMS says that it is bad because it is not copyleft. Specifically, he says "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".
Do you not think that "terrible setback for our community" is a subset of "bad"?
The other part of my comment still stands, though (I think).
> If LLVM is so bad why are the people who make it so much easier to work with?
How is the license being bad influenced by, or of influence on, the attitude of the developers? Are you saying that surely the license can't be that bad, since the software is written by nice folks?
RMS doesn't have a problem with LLVM because it's bad, he has a problem with it because it's good.
> the biggest hurdle to people caring about copyleft is the sheer tonnage of disrespect people like RMS show to others
No, the biggest hurdles to people caring about copyleft are by far the incompatibilities with accepted practices and existing software that make it a lot of work to comply with copyleft ideals.
RMS's tone never seemed disrespectful to me. Uncompromising and occasionally blunt, yes, but never disrespectful. What would you have had him do differently? Compromise his ideals? Spin out a comforting but insincere apology that focused on licensing technicalities rather than the underlying philosophical issues?
I know, programmers are supposed to be emotionless meritocratic robots, but this Old Boys Know Best attitude is precisely why RMS and GCC is losing user share so quickly these days: the extremist meritocracy of programming culture is actually highly male-centric, and it simply scares off all women and any men who are not sexists.
This is why LLVM is gaining so much support these days: it's technically superior, and its development community isn't sexist.
If you actually read what RMS just wrote, or, for that matter, anything RMS has written in the last decade on similar subjects, it's clear that "losing user share" isn't a meaningful metric to the FSF. If you lose user share by strengthening non-free software, then there was no point to the FSF to begin with.
By starting your comment with "the problem with RMS", you might as well be pointing out "the problem with free software". Which, fair enough, but it's not like people didn't realize that non-free software could edge out free software on functionality or user-friendliness.
The only code that helps us and not our adversaries is copylefted code.
I would have him not view people on the other side as advisaries. Sure FreeBSD and Konquer didn't gain much from Apple deciding to use their code, but they also didn't lose anything either. It isn't a zero sum game.
People who threatens others with lawsuit for doing modification or sharing are adversaries to RMS. For example, he seems to dislike Apple because they threatens jailbreakers with million dollar lawsuits and jail, and do not want his code to contribute to that misery.
I disagree.
In fact, I think the GPL probably saved the World Wide Web.
That Konquerer was GPL was the single advantage it had over anything else. It used to be a buggier, and slower, and generally worse web browser, but every time someone made an improvement, the GPL made those improvements Free; When Apple improved it, it was the GPL forced them to make those changes available to everyone else, and while the code being available is what helped Google start their web browser, it was the GPL that fed those improvements back into the community.
Perhaps Mozilla (open source, but not GPL) would have remained an acceptable way to search wikipedia, but I struggle to believe it would become good enough to be embedded in nearly every operating system and WWW-capable device.
People can and did extend Mozilla, and they can and did keep those changes non-free because the MPL allows for non-free linking and binary-only redistribution.
While the GPL does not.
This is simply not true, and if it were, you'd be implying that Apple chose Konquerer over Mozilla because they preferred GPL to MPL. In reality, Konquerer had a much cleaner architecture that Apple thought they had a better chance of adapting to OS X.
The GPL had nothing to do with any of these events, the key feature was open source, not GPL. And if Apple had not turned Konquerer into a first-class user agent, Mozilla still would have had a first class open source user agent.
I think the web is one place where the GPL has demonstrated that GPL is not a key desirable feature in open platforms. GPL has had remarkably little to do with any of the web, as it is only used in one of three major user agents, and in almost none of the web-specific server stack.
Actually, that's completely irrelevant.
The GPL ensured that Google could benefit from Apple's decision to use KHTML.
That's the only thing making them do it.
Whether there are other benefits to giving away source code is not relevant. What they might have done is not relevant. No one could ever say whether Apple and Google and Samsung would have gotten together and made a web browser in collaboration without the GPL.
The fact is that they did not do it without the GPL.
In reality KHTML was a much better code base than other options, and Apple didn't really care that much about the license.
Let me tie in this comment with the whole thing about GPL vs. non-copyleft free software drama in general, and why I think GPL has become harmful: what you said I think illustrates a kind of thinking mode that the idea, the practical working principle, behind GPL breeds. The idea is to use force and coercion to make entities do what you want them to do. That road naturally leads to a mindset where every behavior is seen as necessarily motivated by coercion. And that leads one to normalize and accept coercion as an acceptable, even necessary, mode of social relations. I see this mode of thinking a lot with strong advocates of GPL. It's always in terms of someone being forced to do something good, and if they aren't being forced no good shall come out. This is a horrible, horrible way to look at the world. If we take Apple as an example, they open-sourced a lot of stuff they had no legal reason to release, some of those things very non trivial.
I have to point out that I'm writing all of this as someone who respects RMS and FSF's cause a great deal, I even use the term free software rather than open source (in my native language, fortunately, there's no confusion about "free", free as in freedom and free as in bear are not homonyms). However, I do not think GPL and strong copyleft licenses are an acceptable, or even a good way, to accomplish freedom in this domain of life. GPL is maybe a great tool to destroy proprietary software (well, almost, but not quite), but a horrible way to accomplish software freedoms in general.
It's always better to encode, into law, ethical behaviour we want, instead of hoping for it from people. Doubly so when the 'person' is a corporation.
"Competitor that through their marketplace success makes us further from our social goal" doesn't have all the same connotations as "advisory", but given their goals I don't see how it's not an accurate descriptor.
No, the software marketplace isn't a zero sum game. I'm not even a believer in free software, but it still frustrates me to no end when someone says "not a zero sum game" in a conversation that is so obviously about market share.
A big part of the impetus for the FSF was an early instance where they were adversaries, at least in RMS's eyes. The MIT AI lab had an open culture of sharing code, which was "taken proprietary" by several spinoffs in the early 1980s, who hired away some of the AI-lab hackers and stopped sharing improvements with the remaining not-hired-away AI-lab hackers. Stallman saw that as a bit of a betrayal of trust, not to mention damaging to the open development of software, and users' ability to have the source to & freedom to modify their software.
His solution was twofold: 1) start his own competing spinoff (the Free Software Foundation) which would employ its own set of hackers to develop the "public", non-proprietary codebase; and 2) license their contributions under a new license, the GPL, which would ensure that extensions to their code couldn't be taken proprietary.
I think there's a big problem with copyright and software -- the goal of copyright is to provide public goods, but the public goods that copyright protects is the source code, not the binary, yet there are no guarantees that the public will ever get the source code. I think if this problem were addressed (e.g. all software that seeks copyright protection must have its source code placed in escrow) then a lot of RMS's legitimate issues with closed source software would be mitigated. I'm sure he would still resent code being closed source, but at least we'd know that in 25 years or whatever the source code would become available to all.
He never said that, and you're really failing to see his point. He doesn't want GCC to be broken up into tiny bits and have each of those pieces replaced by non-copyleft equivalents. Because he doesn't want the hard work of the GCC community to be used as a scaffold for creating a non-free replacement.
He is totally happy for companies to use and benefit from GPL'ed software in all the ways the license permits. He is totally happy for companies to use and benefit from non-free open source software (like Klang) however they like.
He also has no problem with people forking GCC and splitting it up however they want to. He doesn't think that's a good use of resources, and he thinks it's harmful, but he has no interest in stopping them.
What is is not happy for, and what he is standing up against, is companies making changes to his branch of GCC. The GNU project is a group of people maintaining their versions of various Free Software. You can fork any of those projects and make different choices. But within the context of that project, amongst his collaborators he has opinions about what changes to make, and how best to further the goals of the project. And he thinks this change will be bad for the project.
Well it is. There are a finite number of consumers of C++ compilers. He is competing for the attention of potential free software advocates.
Don't judge a book by its cover. Follow the money. A witty saying proves nothing.
Actually, he does. I remember when he went to an OpenBSD list a few years ago[1] and insisted they take out ports for non-free software out of the ports tree.
[1]: Too lazy to find the link.
Are bears catholic?
https://groups.google.com/forum/#!topic/comp.lang.tcl/7JXGt-...
That's really important distinction that people don't realize about the GPL - it's designed to protect the rights of the END USERS. And that's great when the end user is you and me, but it's also not surprising that we, as developers, will happily throw end user rights under the bus if we think we can make some money (e.g. SaaS, app stores, etc.) or profit otherwise.
However, I also think (I don't know for certain) that is precisely why it is important that the FSF keeps plugging away and refusing to compromise. There has to be one place where people do give a shit.
I have started to use gNewSense 3.0 recently. Small, fast, Gnome 2 and fortunately the er - maturity - of the packages does not affect my use cases.
Xs don't care about Y, except for those Xs that do.
Insightful stuff.
In fact I'd say this is one of the largest practical benefits for developers when it comes to GPL.
If a developer releases their code under GPL and someone else improves upon it, they as end users will recieve the source code to those improvements with which they can improve their original code or simply adopt the improved version.
Most end users don't care. Some do.
Neither compiler affects the licences of the output. In the case of a compiler, the "end user" is the end user of a compiler (which in today's world is a developer, but 20 years ago may not have been).
End users are "screwed over" in this sense every time permissively-licensed free software is forked into proprietary versions that the users cannot do one of the following
1) Study (view the source) 2) Modify (edit the source) 3) Distribute (send the source or binary to another person) 4) Distribute modified versions of the software
All of these freedoms include the freedom to hire someone else to do this for you, so even if you are not a developer, you still have the potential to benefit from free software, the same way all drivers benefit from the fact that any mechanic can service a car (not just the dealer).
Yes and no -- most programs use a c runtime/standard lib (libc). While both allow the use of differenc libcs, it's not quite clear that the gcc toolchain doesn't have any implications for the executable. Just being (overly) pedantic, not trying to contribute to the FSF/GPL FUD.
As for grand-parents point: the kind of scenarios where llvm is "scary" is for instance if a gpu vendor releases a closed compiler (or part of a compiler) for writing massively parallel code and/or shaders. Sometimes such a compiler might be called a driver, even if what it does is (among other things) compile code.
Strictly speaking, the conditions of the GPL3 license apply to your GCC compiled code (using the GCC runtime library) unless it is compiled using an "eligible compilation process", i.e. no GPL-incompatible software in the middle:
Many do. Any many of them realize they didn't actually want the GPL, they just picked the license they had heard of the most. I don't see what this has to do with the discussion of gcc being limited technically because the GPL is not enough to sufficiently hinder people from writing proprietary tools.
>That's really important distinction that people don't realize about the GPL - it's designed to protect the rights of the END USERS
That is an artificial distinction created to try to justify the newspeak meaning of "freedom" where it is defined to mean "imposes restrictions". Developers are users.
Developers are users, but so are non-developers.
The question of whether developers should be able to restrict freedom of non-developers is the question of whether some users should be able to restrict the freedom of other users. This is an ethical (subjective) question.
Put another way, should landowners be allowed the freedom of having serfs or indentured servants? Not allowing them to do so is restricting the freedom of some people (the freedom to own serfs). But allowing them to do so is restricting the freedom of other people (the freedom to be... well, free human beings).
As a society, we believe restricting the freedom to be human beings is ethically abhorrent, so we have no qualms (anymore) about restricting people's freedom to own serfs.
Maybe you see non-free software as ethically abhorrent, the way slavery is, maybe you don't. But that is the axiom that the free software movement (and the GPL) is based on - to understand free software, you have to understand that principle, even if you disagree with it.
Sometimes they do. I've seen it happen more than once where developers chose the GPL, were asked to change it and then did saying they only chose the GPL because it seemed like a decent default because that's what Linux or whatever used.
Even more common are developers who don't fully grasp the practical implications of a particular license, like making a Go library LGPL without a static linking exception, not realizing that LGPL is basically the same as GPL on a platform without dynamic linking or a toolset that is well suited to distributing pre-compiled object files to satisfy the license terms.
Now LGPL and Go's static linking can simply be about not grasping that Go statically links libraries into the final executable, as it's hardly the norm outside of Go.
This is a judgement of the motives of Apple that I do not believe is correct by Stallman and he making a straw man case for it. I don't think that Apple "hates" their freedom.
I do believe Apple added the restrictions on having only non-GPL code because they understand the problems that it presents legally in the App Store as a distributor and their bourdon under the GPL by being the middle man and redistributing the software in question. Apple would be required to field GPL requests for software in the App Store as the main distributor. This is risk and overhead Apple doesn't want to deal with.
They could just as easily make the language not specifically mention GPL at all but instead say that you releasing software on the App Store can't add restrictions, constraints, or additional requirements on how Apple distributes your apps in the App Store not expressly contained the agreement already. This would be the same and would be just as GPL incompatible as it is today.
Take a look at the thread on openbsd-misc "real men don't attack straw men" (his title) which was used to attack the OpenBSD project. They didn't stand for the crap stirring then.
Whilst I think his basic principles are correct, how he conducts himself is purely extremism and compromises those ideals instantly.
Edit: fix a couple of typos. Damn phone!
A counter example: sourceforge, as the primary distributor of many GPL'ed binaries, does not have to field GPL requests for software. DMCA safe-habor clause removes that burden; all they have to do is comply with takedown requests.
http://www.openlogic.com/blog/bid/156894/Are-App-Stores-Liab...
"Either way, the next question in the legal analysis is whether the app store qualifies as an online service provider under the Digital Millennium Copyright Act (DMCA). Actually, a court may answer this question first as a matter or practicality.[1] The DMCA limits liability of online service providers for infringing material provided to the service by its users (i.e. app developers here) so long as the provider meets certain conditions. Whether an app store can be considered under the DMCA definition of an online service provider has yet to be tested, but it seems likely given the trend of caselaw that has held such vendors as Amazon and YouTube to qualify."
Sourceforge can get away with that because Sourceforge has no editorial process.
Apple could not continue to operate their App Store in the manner they currently do and successfully pursue a section 230 defence under the DMCA.
I'd need to read the Amazon decision for more insight into how that played out. Seems like a somewhat unsettled area of DMCA caselaw.
If a company contracted out some code and the contractor stole it from some other copyrighted project, do you really think a court would hold Apple liable, unless there was some pattern of encouraging infringement in the App Store?
DMCA is afaik only valid in the US? So for Apple's stores in other jurisdictions it wouldn't matter?
As for the GPL being a problem for SF in the first place, that sounds odd to me -- isn't that like saying that the company I'm leasing a VPS from is a distributor of the software I make available from my site? Obviously there's a distinction, but it sounds odd that SF should be considered a distributor?
I think Apple views freedom as a threat to their business, so if companies are capable of "hate" then I think the statement is accurate.
Apple allows GPL code in the App store. There are many GPL apps (both GPLv2 and GPLv3) in the store.
If you are using GPL code that you do not own in your app, you do need to get a non-GPL license from the owners to allow Apple to distribute it, and so the code ends up dual licenses--special license for Apple, GPL for everyone else.
I also don't understand how LLVM enables non-free software any more than binutils does. I can do:
binutils/cat my_file | my_incredibly_none_free_program | binutils/grep my_pattern
which is essentially how LLVM works.Seriously though, I agree. Stallman here seems to be adopting almost a religious argument, not a pragmatic one. He even announces a refusal to use Skype because it's not free software. If he prioritizes freedom over everything else, then more power to him, but to me talking about who "wins" and "loses" on some kind of arbitrary scale of freedom does not make a compelling case against the use of excellent tools like Clang/LLVM.
Which is a valid complaint given the nature of Skype. There's also tons of other reasons, though. Primarily technical ones.
Either way, software freedom is an important goal and even though I don't necessarily agree with RMS in this case, I understand where he's coming from. So many people seem to have some phobia of accentuating the ethical, freedom and community contexts that the term "free software" implies, preferring the more bitterly pragmatic "open source".
That and this is a very typical RMS rant. This is probably the umpteenth one of the same variation, only with $SOFTWARE being Clang/LLVM in this case.
For the record, I love Clang/LLVM and support BSD licensing. For a lot of software, having an open source development model without the deeper freedom contexts is good enough.
The complaint about using phone would be much better suited for 1950 where "the phone company" owned the phone. You called, was asked to choose between 3 different colors, and then a few days/weeks later they came and installed a phone with the clear label that said "property of the phone company".
I think his argument is just that the whole point of GNU and the FSF is to make free software - if they compromised on that, then what would they stand for? And I think that argument makes perfect sense.
I respect that, even though I disagree almost completely and have no alignment with what the FSF proposes.
RMS has a kind of natural law approach to freedom while most 'free' countries have a limited amount of freedom that people give up in order to have an organization that guarantees the remaining freedoms. RMS is much more concerned about maintaing ideological purity than implementing a less ideologically pure system that may or may not benefit users more.
Fundamentally once GNU code supports clang, GCC dev stops because it's codebase a horrible mess.
This presents an interesting (to RMS) quandary. I take it as a given that he prioritizes the freedom of software over its technical merits (as discussed in other threads). But, even just from the freedom perspective: LLVM increases the amount of proprietary software produced, and also increases the amount of free software produced. Does RMS consider this a worthwhile trade-off? Or does he think that less software overall, and less free software in particular, is favorable to more free software existing and also some proprietary software.
His approach is a lot more nuanced and tactical than it is often portrayed.
Those don't actually contradict it in any way that I can see.
> His approach is a lot more nuanced and tactical than it is often portrayed.
Sure. That doesn't mean that the long-term goal isn't as I've described it (and, in fact, RMS has pretty explicitly said it is for him, though that may or may not be true of the FSF.)
He supported BSD licences for Xiph codecs because he recognised the impact of network effects,
You claim that both these thing are considered "evil", "unconscionable" and "categorically wrong" by him regardless of whatever benefits they create. Clearly RMS disagrees, and is happy to use them as tools to achieve his long term goals in specific circumstances.
He makes a lot of good points and is very aware, but his extreme ideological dedication is what drives people off. Which is a shame, because he's done a lot to convince and further adoption of free software in government and education, plus there's plenty of things one can learn from him.
> 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.
... which pretty much is the answer to your last question.
You can create proprietary software _with_ GCC just fine, and he has never proposed any measures with which to impose any restrictions on the final output binaries you create with GCC so I don't really follow your reasoning.
The 'problem' with LLVM from his view is that it is easy to incorporate into proprietary software, as well as easy to use in conjunction with proprietary software (through plugins for instance), which means that there is potentially much less incentive to contribute your code back when it's easy to maintain it in proprietary form, which then leads to less 'free' software.
His cynicism has a tendency to come true, so it will be interesting to see if LLVM open source development will continue to flourish or if we will see a slow but steady transition of 'real improvements' happening in proprietary plugins or forked versions rather than contributed back to the open source project.
In some ways we might be seeing it already, last time I heard (which was in september IIRC), Apple had not contributed their A7 support to the open source versions of Clang/LLVM, and are instead keeping it proprietary and only available on the Clang/LLVM versions they ship with XCode on their OSX platform.
I don't use the GPL because I cannot honestly say that I understand it entirely. I understand copyleft, but the document is written for lawyers and I am not one. I can't expect users to read it either, much less understand it.
I use the BSD licenses because they are simple and clear. If I ever had to defend my intellectual property, I could do so myself, and the case would be over quick. That is more important to me, as a developer without access to lawyers, than ideological battles.
If you understand copyleft, then you know what you're giving up by not using a copyleft, license. Do you not care about what you gain from the copyleft or don't want what you gain?
The case would be over quickly, but you may not be happy with the result.
If you are not well-trained in copyright law (specifically as it applies to software), you are not going to be able to enforce the BSD license any better than you will be able to enforce the GPL, without a lawyer. There are just so many other ways that a well-funded legal team can give you the run-around.
The whole point of choosing the GPL over BSD/MIT is choosing a copyleft license. If all you care about is ensuring that the recipient is legally granted the rights provided by the BSD/MIT license, then the question of how "easy" it is for the license holder to litigate isn't relevant.
OP's argument was that it would be too much mental effort to enforce the GPL, though that's not really an argument for not choosing the GPL, because simply holding the license doesn't mean he has to enforce it.
If OP actually doesn't want the copyleft provisions, then obviously he shouldn't choose the GPL. But if that's something that he does care about, there's not really any downside to selecting the GPL, and no upside to selecting a non-copyleft license.
(In fact, none of the code actually backing Xcode 5 or iOS 7, even LGPL code such as WebCore/JavaScriptCore, has yet to be released; but, in the case of the ARM64 backend, there was a specific discussion about it on the mailing list, and in fact some iOS-specific ARM64 patches to LLVM languished seemingly due to the idea that "well, some day the ARM64 stuff will be merged from Apple", so it is already having "chilling effects".)
No one is arguing that GCC should change licenses. But he seems to think that making GCC more modular would somehow make it less free:
> If GCC were to change from a free compiler into a platform for nonfree compilers, it would no longer serve the goal of freedom very well.
There are two embedded assumptions here. First, that making GCC more modular would result in people creating non-free compilers with it (presumably by connecting a non-free component with GCC using an IR rather than linking directly, to get around the GPL). And second, that such use would become more prevalent than just using GCC itself (which is what would "change" GCC from a free compiler into a platform for nonfree compilers).
I imagine a few people would use GCC components that way, if it became more modular. But would that use be a significant one? That's unknown. And would that use "no longer serve the goal of freedom"? If a large number of nonfree tools appear that generate and consume a GCC IR, that could boost GCC as well.
The GPL seems to be able to defend freedom just fine for all the other gnu software, even the modularly-architected projects. I don't see why it can't ultimately do the same for GCC.
Linus stands directly against this sort of idea - his whole take on licensing has always been that he wants to make sure people contribute code back if they modify it, but otherwise can include the kernel in whatever they want - which provides a similar benefit - more people using Linux kernels, more people likely to want to improve Linux kernels.
More people using GCC would be great - especially since any 'magic' blackbox components that became useful would start to expose their workings anyway since they'd have to speak to GCC.
Linus and the rest of the Linux kernel developers make it intentionally hard to keep out-of-tree modules working against the kernel for the same reason that GCC does, which is to have the code included into the main project where it will benefit all end users instead of having proprietary/out-of-tree modules/plugins which are available to a select audience.
I can't see how you can claim that Linus stands 'directly against this sort of idea'. They seem very much aligned to me.
The side-effect is that it makes it difficult to maintain out-of-tree modules, because people don't fix things as they edit the kernel (if it builds, it builds etc.)
They can keep the ABI as unstable as they want while still allowing proprietary linking, they don't have to provide any maintenance help to proprietary vendors who wants to link to the kernel.
Indeed, this quote from David Edelsohn in response to ESR seems to indicate they are interested in making the gcc more modular:
>GCC is working toward re-factoring its code base toward a more compositional approach for "toolification". One can look at presentations from the recent GNU Cauldron 2013 for discussion of the topic.
So what am I missing?
Because of this, the GNU Project will in all probability not install such changes, should they be available. This statement reflects a firm conclusion based on a decade of thought."
Everyone has their own definition of "Free", but to me that seems very similar to Walled Garden decisions regarding my freedom as an end user. You could just as easily say:
"We don't want to allow unsigned code to run, because we disagree with not signing code"
I guess the difference is that you can fork gcc and start a parallel project. Or you can just let it die as llvm and clang become more and more efficient.
GPL is restrictive and defending users' freedoms is the exact reason for this. If you care about that, welcome to the GPL side; if you don't want the imposed restrictions but also ready to stop enforcing (through restrictions) GPL-granted freedoms - BSD and company await you.
That's my plan.
And watch as over a decade or two you lose any control over what software you run that you still might have.
Well obviously he wants to void design decisions which allow limiting end user rights given that protecting these end user rights is the entire idea on which FSF and subsequently the GPL licence was founded.
Rights which include the source code to see how a program works and be able to modify, run and copy said software.
Allowing for proprietary plugins in GCC means no longer protecting these rights, which of course makes no sense from FSF's standpoint as again, protecting end user rights is and creating software which promotes these end user rights is their reason for existance.
The GPL is not what allows users to get what they need from software or technology. It's the market. As long as you have a free market, with able competitors, you don't need the GPL, and the whole discussion of "free software" is a red-herring.
Stallman's initial experience with closed software was not in a free market, so I can see how he's grown up with a colored view.
All you did was repeat "free market" a bunch of times. Congratulations.
In today's world that problem really doesn't exist anymore. Software is a mass market product, and the software that is produced already conforms to what people want pretty well. Sure, I'll take cheaper parts for my car, but on the list of humanity's problems, non-GPL software is very, very low.
No, the only ones the GPL hinders are small-time freelance devs and small devs shops who are trying to make a living. Often, these are the same devs who are leading open source projects of their own. When they need to create a proprietary project to pay the bills, a GPL-licensed library is usually the end of the road for their project, since they won't have the manpower to replicate it on their own.
Aside from these issues, do we really care that we can't access the source of Subtle Text? As long as it's got a good API, I don't see the big problem. Don't get me wrong, I'm a strong supporter of open source, and have realized numerous modest projects under the MIT license. But proprietary projects, even ones that use my MIT code, don't offend me to the core like they do RMS and co-ideologues (incidentally, I feel like I'd really get along with RMS as a person, even if he might shun me).
"When any program fosters non-free software, that works directly against the overall goal.
"Copyleft is our method of making sure that our free software does not generate nonfree competitors which consist of our code plus something else that is off limits to us."
I want to live in a world where innovation thrives and survival of the best technology reigns. Because the ultimate point of technology is to serve humanity by making our lives better. So stifling innovation just so that everyone has access to source code is backwards.
It's worth pointing out that GCC also "has been supported" by Apple, especially around PowerPC support and the PFE implementation. If you can get past the insane "War on Terror" rhetoric, that is.
He (Jobs) was not allowed to do this due to the licencing (GPL) which is what led to GCC getting a ObjectiveC frontend merged which was then available to all GCC users.
Had Jobs had his way, only NeXT users would have had the benefit of the ObjectiveC front end while NeXT would have enjoyed the benefits of the GCC backend.
Sources for what happened: http://www.gnu.org/philosophy/pragmatic.html http://www.tikirobot.net/wp/2008/11/22/why-gcc-has-a-free-ob...
EDIT: Another source, the first paragraph is telling: https://groups.google.com/forum/#!topic/gnu.misc.discuss/_pB...
Keil is a bit different in that you are also paying for their IDE and debugger and such, which are of course non-Free.
>> 99% gcc and 1% some startup code
Modifying and selling gcc to compile code optimized for lots of different underpowered processors sounds like an unattractive business model to me, given (I assume) a relatively small number of customers for any given microprocessor type and (again I assume) a significant amount of work for each microprocessor type supported.I'm talking about people who take the community developed gcc (which they haven't "optimized" at all) and Eclipse config, and some of their own startup code crt0.a + linkerscript. And then put that together as their tool for $3,000. I'm sure its a wonderful business for them.
RMS was railing that clang wasn't embodying the spirit of "free software" because it parts could be proprietary, but he doesn't rail against those people like IAR who keep their parts proprietary but are riding on the shoulders of the community doing the heavy lifting.
I find that notable because I like what the folks are trying to achieve with clang and do not like what IAR has done with gcc. Granted it is entirely my own personal pain point.
See, this is why I hate Stallman's position on anything software. It's based on irrational thinking derived from a flawed ideology.
Since LLVM is not copylefted, EVERYONE is able to benefit from it, and that is good... FOR EVERYONE! For example, NVIDIA based their CUDA compiler on LLVM because it was not copylefted. Thanks to LLVM not being copylefted, NVIDIA was able to reduce their R&D time, provide customers with great technology, and consequently sell more products. The money that proprietary companies make from being able to incorporate non-copylefted software into their products has a ripple effect. Companies like NVIDIA can provide more jobs, LLVM developers become more highly sought-after, customers benefit from more rapid advances in the technology, and the entire LLVM-based community benefits from work that filters back down from companies like NVIDIA into the mainline LLVM repo.
Stallman's argument that projects like LLVM help proprietary companies take away users' rights is simply not true. There would be little benefit for a company like NVIDIA to take from the LLVM community, and be unwilling to give anything back. For one, it would be so much harder for them to hire good people out of that community, which they will desperately need in order to drive their products forward. But look at what has actually happened: NVIDIA are releasing the code to their LLVM-based compiler! Why? Because it doesn't really benefit NVIDIA to enforce a proprietary lock-in on their customers.
As for his argument against the Apple App Store, how is it really of benefit to anyone if binaries are "free" the way he thinks they should be? Does anyone really want or need the ability to install a "free" binary onto their iPhone/iPad? Why is wrong for companies to want to protect their proprietary platforms and technology (and also their users) from potentially malicious/illegal code, or code that might brick the device? Oh, that's right! Because Richard Stallman thinks that companies should not be allowed to guard any of their interests when it comes to software. This is an obnoxious opinion, and detrimental to real user freedom.
I do not think the world will suffer AT ALL if clang/LLVM has doomed GCC to irrelevance. I was actually glad to read Stallman's email because it signifies that clang/LLVM really are eroding GCC's relevance, to the point where even Stallman is feeling it. Soon, Stallman and his FSF cronies will be relegated to the footnotes of computing history where they belong.
The idea of imbuing an inanimate thing with rights that are restrictive to animate beings is philosophically offensive to any right-thinking individual.
Counterpoint: Say I'm writing a new OS, and want to use the hardware I bought. How do I port the CUDA compiler? Porting GCC (or LLVM) should be pretty easy -- but that doesn't help me, because I can't use my software on my hardware.
This is what RMS has a problem with. You argue that if they had to contribute their changes back, we would all have been worse off. I'm not so sure. I think it's more: Nvidia could get lots of code for free and made more money, than if they had to write that code themselves. Great for Nvidia, yes -- but it's a bit of a tautology: If I give you something for free, and you can turn around and make money off it -- that is good for you. It's a bit of a stretch to say it's a lot better for me.
What RMS has a problem with is the fact that companies don't (and shouldn't) always tell you how their products work. Just because you bought something doesn't give you the right to know all of its secrets. If he (or you) is not ok with that, then fine, he lives in America, he has the freedom to disagree. His solution, however, is to try to restrict the freedom of people and companies when it comes to software and software reuse. That's what I have a problem with.
Thankfully, I think LLVM and clang represent the coming ultimate triumph of the Berkeley school of software freedom. The clouds of the Cambridge school have overshadowed the software world for far too long.
RMS has just made a choice that he'd like to do his bit to enforce openness and freedom. Everyone is still free not to use GPL software, just as they are free to not use proprietary operating systems. And without the FSF and RMS, I think we'd have a lot less choice in that regard.
There's lots of paying jobs for working on free software too -- we can (and do) have both.
As for:
> Just because you bought something doesn't give you the right to know all of its secrets.
Perhaps not. But I'd argue you should have the right to use it as you see fit. I don't need to know all the details of a chair to sit on it, use it to reach the top shelf, or burn it to keep warm -- to use it as intended by the manufacturer and otherwise. I do need to know a bit about my graphics card to use it efficiently.
If NVIDIA had to use GCC (surely they'd have just done their own instead, but for the sake of argument) then we'd all get to learn more about their architecture and maybe make compilers for different languages that natively target their processors...
I would call this an Orwellian use of language. Stallman and the FSF have adopted a particular definition of "freedom", which is a good deal more particular that the usual definition, but they seem to consistently act as if it was the one and only definition, and therefore that anyone opposed to it is opposed to freedom.
Nevertheless, on one reasonable definition of "freedom", permissive licenses are more free than copyleft licenses. On another reasonable definition (the FSFs), copyleft licenses are more free than permissive licenses.
The statement quoted above implicitly assumes that there is only one definition of freedom, and it's the one the FSF favors.
It's said he has some serious cash in the bank. Given his eccentric but modest lifestyle, I doubt he'll ever have financial problems.
However, it would not be in any contributing companies favor to avoid pushing changes back up stream. The pool of people work together to solve really hard problems and they all need to be on the same page. Otherwise that work will become extremely hard to maintain when merges do need to happen.
Maybe I do not understand the licensing, but since LLVM is "more" free, couldn't RMS and his FSF members create a GPLv3 version of it that meets his goal?
Yes, if you could get together a lot of people you could fork llvm under a different license -- GPL or proprietary. But forking to GPL would a) be a bit rude, and perhaps more importantly b) most likely just be a dead fork. You would have to contribute a fairly significant patch (I can't think of anything that would qualify at this stage of LLVM/Clang maturity) under GPL for "most" to want to use your version.
So, no, they can't practically do that, even if the license permits it.
And at any rate; c) Since the architecture of LLVM allows proprietary extensions, even if Clang/LLVM was under the GPL big changes would be needed to "force" the GPL on things like CUDA compilers etc.
(This is the point that ERS originally raised, arguably with limited knowledge of actual modern architecture of GCC, that GCC is artificially kept monolithic and by extension tied to a technically inferior architecture).
See also:
http://gcc.gnu.org/ml/gcc/2014-01/msg00181.html http://gcc.gnu.org/ml/gcc/2014-01/msg00178.html
Why would it be hard to maintain when there is a plugin system which allows you to leverage the compiler functionality through a stable API?
Stallman's claim about the practical difference between gcc and LLVM is interesting but I'd like to know more details.
http://en.wikipedia.org/wiki/LLVM#Description
...but I'm not really sure if that would be an example of extending LLVM or only of using it, which would make all the difference if it was copyleft software.
I tuned out at this point. Polemics tend to bore me and are a fantastic way of turning people off of the rest of your message. (see also: All FSF anti-Windows campaigns)
It's as if there was a "free recipes" movement arguing that since their method for cultivating cayenne peppers was under GPL, KFC should be forced to tell everyone how to make their chicken.
Obviously, we wouldn't call this "cooking chicken", but I'm participating in the creation of my final meal. We can add arbitrarily more, arbitrarily complex steps and ingredients.
It totally makes sense to say, "this person is developing software" or "this person is cooking chicken". What is rejected is the notion that eating the chicken means you're not taking any role in shaping it except those roles explicitly given to you.
When I make boxed macaroni and cheese, I add nutmeg, and the result is way better. It's a good thing I have access to enough of the guts of the recipe to make that change (... or maybe it would be better if I ate less boxed macaroni and cheese, but I think you follow the metaphor).
Forcing somebody to respect your ideological beliefs regarding freedom is just as much a wolf in sheep's clothing as a notion to force somebody to bend to your will regarding how the software you use may function by design.
There is a place for open source licenses and there is a place for free software licenses. To say free software protects the interest of technological innovation better than open source software can is a position based on a foundation of ignorant dissension.
Science has little use for politics playing a major role as a core value. 99% of all people Using software could care less about the freedom of software, and the 1% who do care are split between the engineers who value the ideals of innovation by collaboration, and the executives who understand that too much freedom means everybody gets stuck with a bounced cheque.
Free software is no more 'forcing' anyone to respect your ideological beliefs than proprietary software is, in neither case you can 'prevent anyone from throwing it out on principle'.
Proprietary limits the rights of end users, you are free to not use proprietary software.
Free software secures rights of end users, you are free to not use Free software.
Not using a permissive licence for a software effectively bars most companies from using that software. In my opinion licences such as Affero GPL aren't free at all because they limit what you can do on your own machines. I've experienced this first hand with very useful libraries such as iText.
Sure, iText und many other AGPL-licensed libraries are available under an additional proprietary licence. However, this isn't very much about free software either but simply another sales argument: "You've got to publish the valuable source code of your application unless you pay us a lot of money. In that case: Screw free software!" Sounds a bit like blackmail to me.
I understand that the FSF is an ideological movement that's based on strong principles. Stubbornly insisting on these principles without considering pragmatic concerns does a disservice to free software adoption, though.