The list of changes is tiny compared to the 2018 edition.<p>The module system was a big change, and the macro changes caused quite a bit of breakage. Both were important.<p>The changes here are nice to have, especially the partial struct borrowing. The prelude additions are convenient, but not terribly relevant anymore for me since rust-analyzer gained support for automatic trait imports. The new resolver is really helpful, but can also be changed in Cargo.toml. The new edition will just have the new resolver as the default.<p>This amount of changes would not lead to a breaking release in other languages. Which is a good thing!<p>Rust has been excellent about maintaining backwards compatability. The 2015 edition still works just fine on new compilers. Questionable changes are regularly tested against all crates on crates.io to prevent regressions. Developers also proactively submit fixes to crates for tiny breaking compiler/std fixes before they land.<p>The evolution of Rust has been very significant and impactful, while still remaining responsible and executed with a lot of competence, supported by good tooling.<p>I assume this edition is almost as much about maintaining institutional knowledge on how to do an edition as it is about the actual breaking features. It's quite easy to forget a lot of things over 6 years, so doing it regularly is important.