> Python has made many breaking changes after 2->3 as well.
Aside from the `async` keyword (experience with which seems like it may have driven the design of "soft keywords" for `match` etc.), what do you have in mind that's a language feature as opposed to a standard library deprecation or removal?
Yes, the bytecode changes with every minor version, but that's part of their attempts to improve performance, not a hindrance.
Why do you exclude the standard library like it's a small thing? If it's not part of the language, why do they host the documentation on the same website and ship it with the same package?
In C, dotnet, Rust or even Javascript, stdlib breakages are basically the same as language breakages. Python is an outlier for this.
Minor breaking changes in the standard-lib are normal in python. They have always been there, and are usually communicated over a long timeframe, so people have enough time to prepare. The point is, they are usually won't affect many people, unlike major breaking changes in the language itself.
The standard library is maintained and delivered by the CPython-team itself, but at the end of the day it's just a better maintained 3rd-party-collection you have to trust over your own code, and it's not much different in that regard than any other 3rd-party python-code on pip.
> In C, dotnet, Rust or even Javascript, stdlib breakages are basically the same as language breakages. Python is an outlier for this.
That might be because C and Javascript have no serious standard-lib. For python it's more comparable to the builtins, what they deliver out of the box.
I haven't checked, but I wouldn't be surprised if more Python versions contained breaking changes than not.