4 ms·
It was literally decades before LLVM and Clang become a reality, and even longer before they could supplant the GNU toolchain for most popular architectures. G
by catiopatio 4y ago
It was literally decades before LLVM and Clang become a reality, and even longer before they could supplant the GNU toolchain for most popular architectures.
GCC’s dominance held back new languages, and language front-end development, for decades.
- lproven 4y agoThe LLVM project started in 2000, and the first release was 2003. https://en.wikipedia.org/wiki/LLVM#History https://en.wikipedia.org/wiki/LLVM#History The first release of GCC was 1987: https://gcc.gnu.org/wiki/History https://gcc.gnu.org/wiki/History That's a 13 year gap, 16 if you count first release rather than the start of work. That is not, to quote you, "literally decades". It is significantly less than 2 decades. Secondly, there was lots of language development between 1987 and 2000 -- for convenience, we can say the 1990s. That is the era when Python ('95), Ruby ('95), Java ('96) and Javascript ('96) and many others first appeared. Perl is contemporaneous with GCC. It is not true to say that GCC stifled development. What is true is that this is the era when a lot of interpreted and VM/bytecode/runtime-based languages originated, including both the JVM and .NET CLR. The focus of FOSS language development was arguably elsewhere, maybe _because_ GCC evolved to be a serious competent professional tool in that timeframe. Additionally, there was a lot of R&D in compiled languages in that decade or so, including Delphi, VB6, the first native C++ compiler from Zorland, and so on. It took time for FOSS code to catch up and surpass proprietary compilers, yes, but with one good compiler, there was less pressure to do so, and so people worked on scripting languages instead.
- ryao 4y agoGiven how poorly GCC's rust front-end development has been going, I doubt Rust would have been made without LLVM. > with one good compiler, there was less pressure to do so, and so people worked on scripting languages instead. See this comment regarding your idea that GCC is a good compiler: https://news.ycombinator.com/item?id=34008284 https://news.ycombinator.com/item?id=34008284 It is a buggy compiler and it is a wonder that it works as well as it does. It is no surprise that LLVM is better. As for people working on scripting languages instead, it is more that they were forced to work on scripting languages because the GCC codebase was designed to be incomprehensible to all but a select few. This is obvious if you try reading GCC. If you have not, I highly recommend that you pick some random files and begin reading. I can read random parts of the Linux kernel and generally follow along what is being done. I can do the same with LLVM to some extent, which I know since I have patched it locally in the past. I cannot do that with GCC. It is a mess. :/
- lproven 4y agoI personally have no particular feelings either way about GCC; I don't write code any more, and when I did, I barely used compilers or xNix to do it. All I am doing is responding to @catiopatio's comment: that apparently it was good _enough_ to inhibit competitors for a decade and a half. The economics of FOSS are not yet well understood (and FWIW, I think @catiopatio is totally wrong about the GPL). There were lots and lots of compilers in the proprietary space, and aggressive competition was the norm. The headhunting of Anders Hejlsberg from Borland to Microsoft shifted the entire competitive market of programming languages for _decades_, but FOSS people don't tend to notice such things. (He developed Delphi. Without him, Borland floundered and died. With him, MS grafted a compiler onto VB, making a vastly successful product, and then abandoned it, and came up with .NET and C# instead, muddying the waters in ways that still shape the industry.)