4 ms·
Non-standard is one of the biggest drawbacks of Rust. If there were a standard and independent Rust equivalents of gcc, clang, icc and Visual C, then the decisi
by cwfowler 6y ago
Non-standard is one of the biggest drawbacks of Rust. If there were a standard and independent Rust equivalents of gcc, clang, icc and Visual C, then the decision to try out Rust would be easier.
One reference implementation is a lock-in, not only technologically, but also socially in terms of a community that is too monolithic for its own good.
- bitexploder 6y agoWhat an interesting take. Go, Python, Ruby and countless other languages only have one implementation and real community. I don’t think this is a real concern for most developers. As long as the language solves their problems and is well maintained with a community that trusts the language maintainers.
- aleksi 6y ago> Go, Python, Ruby and countless other languages only have one implementation That's not true for all those examples: both Ruby and Python have several great implementations and Go started with specification and two implementations.
- bitexploder 6y agoThis is splitting hairs a bit, but, those languages only really have one implementation that dictates where things are going as far as the language is concerned. C is special because of when it started and what it was trying to solve in its day. My point was just that the communities and languages are every bit as monolithic as Rust, so why was Rust singled out?
- cpuguy83 6y agoThat's not true of those other languages. While the alternative implementations are always playing catch-up as it relates to language changes, the developers of those implementations do participate in the discussion around those changes.
- stjohnswarts 6y agoI think we can go with the 90% rule here. I would bet that at least 90% of Python users are using cpython.
- adamdusty 6y agoPython has at least 3 relatively popular implementations that I know of.
- grok22 6y agoJust read that the remobjects folks' elements compiler platform can also compile go...go figure! https://elementscompiler.com/elements/gold/ https://elementscompiler.com/elements/gold/
- elteto 6y agoI would say give it time, you can't measure Rust with this yardstick (yet), Rust is a baby in terms of age. Let's not forget that C is ~50 years old and yet having reliable, open-source, high-quality compilers is a thing of the past 20 years or so. Clang was born in the 2000's, GCC is much older but it wasn't that great of a compiler for some time. Same with VS.
- fiddlerwoaroof 6y agoAs far as I know, though, C has had multiple implementations for years: IBM has its own compiler, Sun had one, Borland and all sorts of other vendors had one. It seems to me that C comes from an era where languages were standardized and multiple vendors provided their own implementations: Common Lisp, Ada, Fortran, even a relatively obscure language like Eiffel all fit this criteria.
- moocowtruck 6y agoyep multiple implementations and glorious code work around for each one of them! ahh those were the days
- elteto 6y agoThis might be an overly rosy view of history :) prior to 89 C wasn’t even standardized, and C++ was a mess until 98. And those are just the years that the standards came up. It took time for existing compilers to catch up.
- fiddlerwoaroof 6y agoI’m somewhat familiar with this: I write a lot of Common Lisp and try to stick to the portable features (standard + compatibility libraries). So, I occasionally find issues with particular implementations.
- snarfy 6y agoIt hasn't been a problem for Go. Having multiple implementations didn't seem to help D either. It might be a lock-in but fragmentation is bad too.
- supercheetah 6y agoFor what it's with, this is being worked on[1]. 1. https://github.com/Rust-GCC/gccrs https://github.com/Rust-GCC/gccrs
- stjohnswarts 6y agoOne of rust's strength is the solid structure. We saw what happened with c and c++, no one is forcing other individuals from forming their own coalition and forking rust. It's a young language, the last thing we need is fragmentation.