3 ms·
Answer: 1. Quite often. 2. With some breakage of existing programs. ... and this is a fundamental paradigm difference between Rust and C++, for which the ans
by einpoklum 7y ago
Answer:
1. Quite often.
2. With some breakage of existing programs.
... and this is a fundamental paradigm difference between Rust and C++, for which the answers are:
1. Every 3 years.
2. Changes are backwards-compatible [1]
-----
[1] There are slight specific manageable caveats. Example: The repurposing of the `auto` keyword.
- steveklabnik 7y agoMy personal take is that 2 is the same across both languages. C++ has actually made some more aggressive removals than Rust ever has. Note that none of this analysis analyzes breaking-ness of changes, so I’m not sure how you got this from the post.
- namibj 7y agoStable Rust has never broken a crate. If you specify a different edition for your own crate, you can still use dependencies of both older and newer versions. C++ won't let you just (seamlessly) use a C++98 library in a C++20 project, or vice-versa.
- steveklabnik 7y ago> Stable Rust has never broken a crate. This is too strong. We have made some soundness fixes that have broken crates. (We spread the change out with warnings for a long time before actually breaking) We have changed type inference in ways that one or two crates needed to add an annotation. The vast majority of the time this is correct though.
- pcwalton 7y agoThis is unfair. If you're going to qualify C++'s breaking changes as "slight specific manageable caveats", then you need to do the same for Rust. "Rust changes are backwards-compatible with slight specific manageable caveats" is a perfectly reasonable description of Rust's language changes.