5 ms·
Cool, but the paper's criticism of rust as a moving target also applies to the various pre-processor annotations in C-rusted. While true that the C preprocessor
by anon291 4y ago
Cool, but the paper's criticism of rust as a moving target also applies to the various pre-processor annotations in C-rusted. While true that the C preprocessor is used to make the annotations vanish (thus yielding normal C code), it is disingenuous to claim that the standardization of ISO C means that C-rusted is a stable target for any programming project. If you take that at its word what you get is that the unsafe language is standardized, but the safety features are not, which means that it is very easy to leak incorrect code to the C compiler, and then customers.
- api 4y agoRust is much less of a moving target the longer it’s around. It’s been pretty stable for some time with only improvements at the edges that don’t break backward compatibility. Most of these seem to be filling in gaps in the type system’s capabilities or rounding out the standard library. Has there been a breaking change in the past few years?
- kramerger 4y ago"pretty stable for some time" is not the endorsement you think it is. Some companies don't even use C++17 and stick to C++14. At the same time, Rust has grown to a large and complex thing and deserves a large update to make it more dev friendly (what C++ did years ago). I expect at least one big update before it can settle.
- tialaramex 4y agoIt's true that somehow C++ programmers rationalise completely new programming languages with incompatible syntax every three years as "stable" and Rust's stability as "unstable" but turns out that the people actually developing it don't agree with you that just changing everything would somehow make it "settle".
- pjmlp 4y agoThat stability comes in a dead trees tome that everyone should certify their compilers against.
- iknowstuff 4y agoNah, this is not a universal truth.
- tialaramex 4y ago> That stability comes in a dead trees tome No such "dead trees tome" exists. ISO will explicitly point out that what you're spending an eye-watering sum of money on is just a PDF. Some of the National Bodies will tell you that you can buy this document on paper, but what they're actually doing is contracting out to a local Print On Demand service which either didn't tell them it has a document size limit or they didn't listen. If you splash out anyway eventually what you'll get in the post, instead of your imaginary tome is a CD with the PDF on it. > that everyone should certify their compilers against. Try for a moment to imagine that all the GCC and Clang volunteers own legal copies of the actual ISO document. Now, stop laughing and read. Nobody cares about the actual document, in 1998 there really were academic libraries who bought C++ 98, and they might still have C++ 98, but that's a 25 year old document. Today those libraries would tell an interested user, "I'm pretty sure this is online, go away and search" and they'd be correct. Because it's a PDF not a paper document, ISO C++ is a moving target, what's stable about that? One of the few things about C++ that I unambiguously admire is std::format() introduced in C++ 20 -- but actually the most important feature of std::format() wasn't in the published C++ 20 ISO document, it's an erratum, pasted in much later because it's obviously needed.
- iknowstuff 4y agoIt has that, it's called editions which have in fact made our lives easier. You don't seem to understand that editions don't break backward compatibility. Those companies would be welcome to keep using Rust 2019, but they won't have to because Rust tooling is not a nightmare, unlike C++.
- pjmlp 4y agoEditions can only represent basic changes and the standard library isn't part of them.
- dataangel 4y agoThe editions mechanism is incredibly weak, every time I ask "Can this be fixed with an edition?" The answer is no.
- kramerger 4y ago> Rust tooling is not a nightmare, unlike C++. Please try this: 1. Install rustup on a clean Ubuntu 22.04 x64 2. Open the rust embedded book, go to the getting started chapter 3. Try the first part Early in the tutorial "cargo install cargo-geneate" will gail due to E0282 in git-glob...
- staunton 4y agoSome companies stick to ANSI-C and use a compiler binary from the 90s because new things are scary™. So what exactly does that tell us?
- kramerger 4y agoThat people claiming Rust is stable don't really understand the industry?