> The right way is to make sure that stuff that used to work in the previous version still works in the current version.
But that too brings considerable downsides.
For all its merits, C++ is an extremely bloated language, getting even more complex every release, due in no small part to its commitment to backward compatibility.
There's no perfect answer. Python3's decision wasn't stupid, they just chose one downside over another.
C++ bloated largely because they decided to make it bloated - they didn't had to, they just decided to shove in whatever new idea sounded good without much concern about the language's size.
But despite that i 100% guarantee you that people who actually use the language and have large codebases are really glad that C++ is backwards compatible and they do not have to waste time refactoring code that works.
> they just decided to shove in whatever new idea sounded good without much concern about the language's size.
Compared to most languages, C++ is very slow moving, but also very old.
> despite that i 100% guarantee you that people who actually use the language and have large codebases are really glad that C++ is backwards compatible
But that too brings considerable downsides.
For all its merits, C++ is an extremely bloated language, getting even more complex every release, due in no small part to its commitment to backward compatibility.
There's no perfect answer. Python3's decision wasn't stupid, they just chose one downside over another.