Comment A few topics (Score 1) 279
After reading carefully *all* replies in slashdot, phoronix and the list, I wanted to reply to a few topics that have shown recurrently, and are not fitting in the GCC list.
1. RMS should be worried
No, he shouldn't. This is not about mixing licenses, it's not about taking away freedoms and it's not about stealing GCC's shine. RMS's contribution to society cannot be overstated, and I don't mean to obfuscate the importance of GPL, GNU, etc. This simply has *nothing* to do with politics, or copyright, or patents.
2. Only LLVM will benefit, because GCC can already use LLVM's code
While the latter is true, it doesn't imply the former. Also, this is not about being better than GCC, it's about both toolchains being better to the users, which I'm am both. This is not about competition, but collaboration.
Some people say GCC is going to die soon, I disagree. Other people say GCC will rust a bit with all the new blood going to LLVM, that might be a bit more real, but still, highly exaggerated. In any case, GCC is not immune to the outside world. With LLVM being actively encouraged by the kernel community to be compatible, the "one true compiler" position is being slowly replaced by a "number of free/open toolchains available", and in that scenario, GCC will benefit from collaboration as much as LLVM.
I can't read the future, but if you ask me, collaboration is always better, no matter in which position you are.
3. Competition is good for both on innovation
This is true, but collaboration is *also* good. We're talking about free/open software, we can both collaborate where competition hurts our users, as well as compete for performance and new features. I'm not proposing on merging the two toolchains, that would be outright madness! Just that we agree on the size of our nuts and bolts.
4. Enforcing standards & discussions will curb innovation
Absolutely right! Every second we spend arguing is a second we don't spend coding. My idea is to have a sort of zero-cost model, where tools report *how* they do it and maybe even for what reasons, and other tools either agree on, or disagree. A discussion will only happen if there are disparate solutions AND both sides want to argue, which no one should be forced to.
This could wind up in two threads: either every one posts what they think is right and don't discuss anything, or discussion ensues, standards are proposed upstream (C++, ISO, POSIX, Dwarf, etc) and compilers implement a more sane interface and the users benefit. Either way we win, since at least we'll have some documentation. The third outcome is to no one submit anything, than, well, no one spent time anyway, so we haven't lost anything.
5. Other standards should be used instead
Indeed. But standards are slow, and for a reason, and compiler implement extensions that will become standards in the future. This is how it's always been and I don't see this moving away. If most/all free/open compilers implement a specific feature, it'll be more argument to the standard to adopt that feature.
Other bits like warnings, implementation of standard classes, data layout and things that really promote binary compatibility are toolchain specific, and if all agree, than we could *use* a mix of tools interchangeably. This is a win for all the users.