Live data from Hacker News

Defending GCC considered futile

lists.gnu.org

171–180 of 209 posts

Re: Defending GCC considered futile

#171
post #11

So this was a discussion in /r/linux last week about LLVM and GCC et al, so I'm just reposting my statements on why a world where GCC is irrelevant is bad: It takes little effort on Apples or Googles or Microsofts part to take advantage of an LLVM dominated world to close off their own changes to it and try to force developers to use their own proprietary LLVM distributions on their own operating systems. It stops ev…

This is a common belief. It is, I believe, the reason Stallman wrote the GPL and the reason Torvalds continues to use the GPL 2. But Eric Raymond convinced me that it's irrelevant ( http://esr.ibiblio.org/?p=928 ): "If we live in 'Type A' a universe where closed source is more efficient, markets will eventually punish people who take closed source code open. Markets will correspondingly reward people who take open so…

I disagree with both premises, because software is not a free market. It exists in the framing context of IP and copyright, unnatural societal constructs with varying reasons for existing. But they do exist.

It is not a universal truth whether or not proprietary or free software makes sense. In a world without copyright, the mechanisms of software profiteering and the utility of open or closed source radically change, since anything and everything is effectively permissively licensed.

On one side, it would take the profit motive out of proprietary software. Without copyright you can not prosecute users who redistribute your binaries, and thus it is "hard" to get people to buy them from you. I would not say impossible because I would not fathom considering all the possibilities in such a foreign context. But in the general case, without copyright, it becomes impossible to profiteer off false scarcity of information in the form of copies of software.

I say that because its important to contextualize why people strive to close off and lock down their software by depriving users of software freedoms - because copyright control, control of distribution, and the right to a monopoly over the idea means profit. If you take that away suddenly there is little incentive not to develop the software you want communally with others who want the same software, because your options are either do all the work yourself closed and have everyone else use it anyway, or open it up and have others contribute and lessen your burden. The mechanism though does not change - if you are distributing your software, which is the only way the GPL even takes effect to compel source release, in a copyright free world it makes more sense to at least release the source as an act of security. Because you cannot even sell visibility - ie, if someone wants to derive from you, you cannot extort them to see the source because if you do take money from them to see it once, you cannot legally compel them not to then release it once you have willfully given them a copy.

In that political paradigm - not a universe, not a fundamental rule of reality - software freedom just makes sense almost all the time. And the edge cases where it does not are much easier to overcome, because today free software is an uphill battle against corporate interests who use their power over software to extort their users of revenue to then fund the enhancement of their product. It is why photoshop and office are so hard to contend with, because they get so much money by using this framework of information monopolies to entrench themselves perpetually.

There are a lot of ways to frame a society that could in theory bias it towards free or proprietary software. which is in part why I don't always agree with RMS - I love the GPL and what it means in our political environment today, but I also claim it is a highly flawed economic model due to the existence of state sponsored IP in the first place. But there are many other ways to do things, and in any of those permutations free software may or may not be economically optimal, and that means it is absolutely simplifying things to claim "universes where free software make sense" exist. That is literally not seeing outside the box at all.

Re: Defending GCC considered futile

#172
post #33

Despite the inflexibility of RMS' arguments (they grate on me as much as anyone) I feel like his position on continuing to develop GCC without modern features like a fully exposed AST is necessary to keep the "moderate" position where it is. In other words, RMS' radical position is necessary for 'moderate' LLVM to exist. Otherwise we'd still be living in the Borland/Metrowerks/Microsoft world of the 90s - proprietary…

This is false--people are just as likely to respond to opposing arguments with rejection and ideological hardening. This is replicated in psychological studies. In my personal experience, the less the opposing position acknowledges the values of its opponents, the more likely it is to be rejected. Most people reason by mood affiliation and use argumentation as a social tool, so this should not be a surprise. I think…

One should be skeptical of anything that says "exactly what you would most love to do is the best choice."

In-groups love nothing more than making fun of the out-group. When they can wrap themselves in the reasoning of "I'm just moving the Overton window!", they are avoiding the difficult and often painful steps of wondering whether their course of action is the correct one.

Re: Defending GCC considered futile

#173
post #80

Earlier quoted context omitted.

" because they've been crushed by the enormous efforts of open source " As opposed to their own ineptitude (e.g. Vista and Windows 8) or the changing of the guard from original founders? I'm certain open source played a role, but I suspect a secondary one. Heck, if post XP Windows didn't suck so much, I and my parents (who nowadays run what I build them) would be using it instead of Linux for our desktops.

Vista and Windows 8 aren't the problem. Lack of presence on servers and mobile devices is the problem -- those are the two key spaces where OSS platforms have won out. Linux is still not a significant player on desktops. Microsoft is still completely dominating that space.

Nobody in a ten mile radius of me gives a crap about what is running on servers or phones. Most of them do not recognize an Android smartphone as a legitimate computer. They do not know what a CPU is, they do not know what a hard drive is, and they think their monitor on the desk is the computer and the tower in the closet is the "CPU".

Windows has the mindshare of the masses. When many upper-middle class white Americans want to write a document, they can only fathom word. When they want to do a spreadsheet, they can only fathom Excel. When they want to draw, they can only fathom Photoshop.

It isn't about options or features or anything, I'm talking about the super majority of people who cannot any longer comprehend the existence of anything but what they know - where being presented with Linux destroys their world view. They talk about OSX like its an easy bake oven rather than another computer, or as if its another desktop UI for Windows that also runs Office.

Which is why Microsofts open source efforts are pretty much all on the developer end. They know their userbase is completely ignorant to everything just the way they intended, and it would take years of retraining to push the public conscience away from the mindset that Microsoft Windows is the personal computer, and everything else is some gadget.

Re: Defending GCC considered futile

#174
post #49
post #11

So this was a discussion in /r/linux last week about LLVM and GCC et al, so I'm just reposting my statements on why a world where GCC is irrelevant is bad: It takes little effort on Apples or Googles or Microsofts part to take advantage of an LLVM dominated world to close off their own changes to it and try to force developers to use their own proprietary LLVM distributions on their own operating systems. It stops ev…

I'm always confused by this stance. It presupposes that big companies like Apple and Google will at some point become bad actors in the opensource world. (They both contribute huge amounts of code). Even Microsoft is starting to open up their codebase with the release of huge parts of the .NET ecosystem. Frankly, I want the big boys on my side when it comes to opensource code. I want them to use the code I write. Usu…

aren't we in that world already? I.e. the swift compiler uses llvm but is not open source, the obj-c compiler used gcc and it was.

Re: Defending GCC considered futile

#175

Earlier quoted context omitted.

It's not just that his knowledge is outdated, it's also that his philosophical principles will always take precedence over everything else, which includes sound and/or pragmatic technological decisions. I'm not fond of esr in general but he's spot on with this post.

> It's not just that his knowledge is outdated, it's also that his philosophical principles will always take precedence over everything else To be fair to RMS he has tried to consider opposing views in the past when he can see and understand the need behind the proposition. In this case the problem is that RMS doesn't know enough C++/Java/C#-style OO programming, and can't understand why you would need refactoring to…

>and can't understand why you would need refactoring tools >to rename a method, because in his C-style world a search >and replace should be sufficient.

Is that really the underlying reason, or are you making it up ?

From what I've seen, he doesn't want to expose internals of GPL software such that non-free software can be built on top of it, which is a fair stance to take - even if you and I might disagree to it as it as a consequence might prevent our life to be easier/better - at least in the short term.

Re: Defending GCC considered futile

#176

Earlier quoted context omitted.

> It's not just that his knowledge is outdated, it's also that his philosophical principles will always take precedence over everything else To be fair to RMS he has tried to consider opposing views in the past when he can see and understand the need behind the proposition. In this case the problem is that RMS doesn't know enough C++/Java/C#-style OO programming, and can't understand why you would need refactoring to…

>and can't understand why you would need refactoring tools >to rename a method, because in his C-style world a search >and replace should be sufficient. Is that really the underlying reason, or are you making it up ? From what I've seen, he doesn't want to expose internals of GPL software such that non-free software can be built on top of it, which is a fair stance to take - even if you and I might disagree to it as…

The direct and inescapable consequence of this is that he makes things more difficult for other GPL (and non-GPL-but-free) software, just because maybe some closed-source software might do something with it in a day and age when they can already just use clang.

Dying on this hill makes him a bad steward of the projects other people have entrusted him with (and fortunately the maintainer of the Emacs debugger stuff is ignoring him), while also making everybody else's lives suck a little more.

Re: Defending GCC considered futile

#177
post #49

Earlier quoted context omitted.

I'm always confused by this stance. It presupposes that big companies like Apple and Google will at some point become bad actors in the opensource world. (They both contribute huge amounts of code). Even Microsoft is starting to open up their codebase with the release of huge parts of the .NET ecosystem. Frankly, I want the big boys on my side when it comes to opensource code. I want them to use the code I write. Usu…

That pressupossition is not that unrealistic. For example, see shader compilers for GPUs. How many open shader compilers do you see around? Is there any motivation to open them? On the other side, during the 90's, we have seen many vendors come with new CPU ISAs, extensions of existing ISAs, new SOCs, etc. Many of them didn't have resources or will to write a new C compiler, so they wanted to use someting existing. T…

> LLVM/clang does not have this effect. It pretty much rewards for being closed.

Only if you can convince people to use your architecture. The tools being closed is a minus in that, and must be taken into account with a lot of other stuff. A closed dev environment may well drown a brand-new ecosystem that you're trying to bootstrap.

Sony recently contributed back a ton of LLVM and clang stuff from their PS4 project, by the way. Why would they do that if keeping it closed was so rewarding?

Re: Defending GCC considered futile

#178
I agree with Eric Raymond that GCC probably can't beat Clang.

However, I don't agree that this means we should just jump on the LLVM train. The world still needs GNU. And LLVM isn't GNU.

The GNU community has historically held dominance in the compiler field, so this is an uncomfortable time. We can no longer rely on the popularity of GCC to keep GNU in the forefront. However, this doesn't mean we should just give up--I think the solution is to start again from first principles and build a better system, an alternative to GCC that is also released under the GPL.

I'm not saying we should drop support for GCC. But we need to innovate: GCC became dominant because it was innovative and it lost dominance because it stopped innovating. LLVM isn't the only non-GNU competitor. It's telling that none of the major new languages (Go, Rust, Clojure, Scala) are released under the GPL.

Re: Defending GCC considered futile

#179

ESR seems a bit over the line with this mail, but what never ceases to amaze me is how RMS is disconnected with the present technology: >From its name, I guess that LLDB is a noncopylefted debugger and that some might intend it to replace GDB. But I don't know if that is so. This is just one of many, in the recent arguments he has stated several times that he doesn't understand how automated code refactoring works, h…

I think the many replies that point out that you don't need an IDE or code refactoring if you are a real programmer miss that my point is not that you need to use advanced tools to develop a compiler, is that you need to write a compiler that supports those tools for the people who like to use them.

And to write such compiler, you must as a minimum know what refactoring tools and IDEs are.

Also, I'm sure you always get naming and signatures right at the first try, foreseeing every possible evolution of the system. I don't, and since I don't like my programs to turn into huge piles of horror, I enjoy refactoring tools a lot.

Re: Defending GCC considered futile

#180
post #173

Earlier quoted context omitted.

Vista and Windows 8 aren't the problem. Lack of presence on servers and mobile devices is the problem -- those are the two key spaces where OSS platforms have won out. Linux is still not a significant player on desktops. Microsoft is still completely dominating that space.

Nobody in a ten mile radius of me gives a crap about what is running on servers or phones. Most of them do not recognize an Android smartphone as a legitimate computer. They do not know what a CPU is, they do not know what a hard drive is, and they think their monitor on the desk is the computer and the tower in the closet is the "CPU". Windows has the mindshare of the masses. When many upper-middle class white Ameri…

Microsoft's board cares, which is why there was a change in leadership. That's the subject hga raised and is what my reply is in reference to.
Post reply on HN