All future generations should remember the Python 2 to 3 transition as the one time in history that a programming language successfully made a breaking change so far into maturity and survived, and only just by one single fingertip holding on to avoid falling into the abyss below.
It will be interesting to see how Scala 2->3 goes. The timing is good. After an initial boom, interest in Scala settled back into a smaller niche than expected, and since that happened entirely under Scala 2, it won't be blamed on the transition to 3. The smaller community will be easier to help through the process, and the tooling and compatibility are better thanks to Scala being a statically typed language. Having the example of Python to follow (or not, where appropriate) doesn't hurt, either.
I really can't say if you're serious or joking. Python's transition can only be called 'successful' if the plan was to inflict as much pain as possible on maintainers of Python projects (and nowadays, Typescript via Deno doesn't really look all that bad for new projects where I would have used Python before).
If the 2-to-3 transition hadn't left so many scars, the idea to switch to a different language for cross-platform command line tools wouldn't even enter my mind. Python 2.x was just perfect for this use case, and Python3 didn't add anything of value for such scripts.
What example is C# exactly? Never struck me as anything reaching wide adoption outside of the enterprise MS market, and you can certainly change anything if your customers already sunk the licensing cost. I certainly never and will never touch it, with or without incompatible language changes.
And hundreds of commercially used programming languages during that period. It might be a short history, but it's littered with the corpses of languages that failed to change when they should have =)
Yes, because .NET was so old and mature that it's not like you suddenly received updates from all around that your computer couldn't run. By the time .NET 5 was popular enough everyone could have the runtime. And if not, your software were advanced enough and your devs competent enough in the old ways that you could enact change for years.
I suffer from that at work (I have 200 users on .NET and dozens of servers needing some python): we dont have the runtime for .NET 5 installed on windows yet, and we dont have python 3 on many older servers. There is one part where we suffer immensely, and another where we barely care: I let you guess which one.
(I’m being hyperbolic, a little).