1. Introduce a new version with the plan of discontinuing the previous version 11 years later (that's almost half of the time that, by then, python had been a thing), that itself was released only three years after the very tool you're talking about was released.

2. Don't even pretend to be interested in trying to do a migration until seven years later.

3. Make sure that your migration plan includes a development cycle that's deliberately hostile to the migration process.

4. ?

5. How could the python maintainers do this to us.

The description of the migration process was a good read. The fud afterwards... wasn't.

And there were a few inaccuracies (I'm being charitable, some of them were straight up lies).

> Python 3.0 was released on December 3, 2008. And it took the better part of a decade for the community to embrace it.

False, I've been using python 3, python 3 exclusively, since 2014, for all my projects.

> Yes, Python is still healthy today and Python 3 is (finally) being adopted at scale

False, same as above.

> I am ecstatic the community is finally rallying around Python 3

Again, false. Not only did "the community" rallied around python 3 years ago, he isn't really happy about it, but I'll get to that later.

> For nearly 4 years, Python 3 took away the consistent syntax for denoting bytes/Unicode string literals.

Or, to put it another way, python 3 was compatible with python 2's string types almost eight years before python 2 reached end of life.

> An ecosystem that falters for that long is generally not healthy

This entire paragraph was a hypothetical. It seems he really wanted to criticize something that did not happen.

> The only language I've seen properly implement higher-order abstractions on top of operating system facilities is Rust

And here's where his true point becomes evident: this is a hype piece for a language he found that he likes better. He's just attacking something in his previous language that he thinks is valid just as an attempt to highlight why the new toy is truly better. In short: He felt like complaining about the migration would be a good way to proselytize.

Just in case: no, it isn't better, and I say this as someone who currently isn't using python nor rust. I'm using a language that I'm quickly growing to hate more than I do either of them at their worst (no, it's not JavaScript).

> if Rust were at its current state 5 years ago, Mercurial would have likely ported from Python 2 to Rust instead of Python 3. As crazy as it initially sounded, I think I agree with that assessment.

So... The best he can say about rust is that it might be better than python 3 five years ago that, by his own opinion on everything he wrote before this, was terrible? Well, that's a recommendation not to use rust if I ever saw any.

When a hype piece defeats its own point.

> And speaking as a maintainer, I have mad respect for the people leading such a large community.

No, he doesn't; he used several appeals to emotion beforehand to try to paint them as terrible people.

> It should not have taken 11 years to get to where we are today.

This statement by itself is a truism that doesn't really mean anything, but the implication is that python 3 is only worthwhile 11 years later and it took that long for it to be so I'll reply to that.

No, it didn't. It didn't even take that long for mercurial, they started the migration four and half years ago, not eleven.

> am confident it will grow stronger by taking the time to do so

What is it to him? He should just move on to rust and be happy with it (sure, there are many people unhappy with it, but he wouldn't take the effort to proselytize if he wasn't).

In conclusion, I just don't understand the need to tear something else down to prop up a new thing. I'm sure I would have liked a post about things he could do with rust, but now...