Interesting to me that it includes Python 2 support. I guess some things never die.

Wow, how reading this makes me hope Ubuntu Pro fails catastrophically.

Supporting Python 2 so publicly at this point is actively damaging to the Python ecosystem. I don't wish to open a flamewar here, it's been debated to death already. Nothing wrong in giving paid Python 2 support to individual companies, but doing so on a distribution scale offloads the consequences of that support to the rest of the ecosystem -- an ecosystem which does not benefit from the money Ubuntu Pro will make.

How this works concretely: because it's Ubuntu (Pro) and because they decided to support Python 2, we in the Python community will continue to receive random bug reports, random feature requests, random crash reports, and more things we aren't paid to deal with. It's a hidden cost, and we're going to pay with our time.

Fuck. That.

You shouldn't blame Ubuntu here. The Python development community did this to itself.

It offloaded a huge cost of porting literally everything in the universe mostly for syntactic niceties like print and parenthesis. That was an astronomical unfunded downstream mandate. Now, it's paying the consequences. There are codebases which couldn't afford to do that, who are suffering. For example, there's a lot of academic code which was grant-funded, which is widely-used, but with no more funding. Python is used a lot for numerics. That code had better keep working, if you want scientific replicability and apples-to-apples comparison of results.

There are ones who _can't_ do that, for a variety of reasons (many regulatory). Like FORTRAN, Python 2 needs to be around for a long, long time. If I have a system with a multimillion dollar audit / certification process, I can't just up-and-port to Python 3 like a web app.

Bless Ubuntu and other organizations who simply didn't say F-U to all legacy codebases.

I might not even mind if Python 3 was designed to do anything useful: supporting compiled code better, multicore, GPGPU, JIT, or whatever. However, it was mostly minor syntactic sugar. The only breaking change in Python 3 which made sense was probably unicode, and that one didn't have to be so breaking.

It was just so random, stupid, and arbitrary.

Yes, the Python community should deal with "receive random bug reports, random feature requests, random crash reports" and other crap. This should be a very visible failure, or we'll see this again with other projects (not to mention Python 4).

Yes the python 3 upgrade was a failure. The python community has learned from the mistakes. What do you want it to do now? This was long enough ago that some Python devs weren’t born yet.

And it wasn’t “all for a print statement” or something, that’s not the pain of the upgrade nor what’s blocking anyone. You would know that, if you had more than passing knowledge about the upgrade.

Pulling scientific reproducibility as an example is a funny one. Python is the least of the issues in that sector. Maybe let’s introduce Docker there, that would be a good, you know, FIRST step. And then python version is irrelevant anyway.

If you want something reproduced, the entire environment should be reproduced, including library versions, compiler versions, etc. Reproducing independently on newer systems will involve updates anyway.

What would I want the Python 3 community to do now? For a start, I would like the Python 3 community not to post attacks like yours. To quote you: "Wow, how reading this makes me hope Ubuntu Pro fails catastrophically."

This suggests the Python 3 community did *not* learn.

To your point about science: that's not quite how science works. I rarely want to run your code + data + system wholesale. You already ran your code on your data, and unless you fabricated something, I can see the results you got from your publication.

In most cases:

- I want to try your algorithm on new data.

- I want to improve upon your algorithm

- I want to try a new algorithm on your data

... and so on. This allows apples-to-apples comparisons.

I sometimes want to be able to replicate results from the 1900's, and commonly going back to the sixties and eighties. You're on a warpath against people using Python for anything not designed for tech-industry style ephemeral code.

Before Python 2 -> Python 3, this was could usually be done either without changes, or with sufficiently minimal changes that it wasn't outside of the realm of a grad student. The whole docker-style mess of dependencies isn't typically a problem; most code uses numpy+pandas, and occasionally, scipy+pylab.

We have decades of experience with this just working with C, C++, Java, and Fortran code, and it more-or-less works okay at this point.

To your conversation style: I'm very familiar with the differences between Python 2 and Python 3. Insulting people isn't a good substitute for an argument. Docker is less than a decade old. Even if it solved the problems you think it solves (it doesn't), and was usable by non-CS grad students (it isn't), this kind of technology churn is exactly what you want to *avoid*.

I hope Ubuntu Pro succeeds spectacularly, to the point where I'd be glad to pay Ubuntu for my *personal* desktop.

If the Python community accepted Python 2 needs to be maintained for a long time (decades, at least), that would go a long ways.

WinAmp 2 (1998) was widely liked. WinAmp 3 (2002) was considered bloated, and flopped.

So Nullsoft followed it up with WinAmp 5 – because 2+3=5 – in 2003, which was very broadly the codebase of WinAmp 2 (small and lean) plus the skin support from WinAmp 3 (the only part people liked).

This won people back, and WinAmp is still around and got an update this year, 20 years on.

I think it's too late for there to be a Python 5, but I did read a blog post long ago – which I can't find again, or I'd link to it – which proposed a similar compromise fix to Python, in considerable technical detail.

I am with @blagie on this: the Python world handled the 2→3 transition spectacularly badly. V3 didn't deliver enough, and strong-arming people by just end-of-lifing Python 2 and expecting the world to move on was foolhardy and short-sighted.

(And I don't even use the language myself. I'm just observing.)

It's a real shame Tauthon didn't get more traction and support.

https://github.com/naftaliharris/tauthon

If it had got enough support and continued, maybe the Python maintainers would have learned something, but I've not seen any sign that they have.

This is nothing new. For comparison, Perl 6 went so badly that Perl 5 now looks likely to continue as Perl 7:

https://www.perl.com/article/announcing-perl-7/

And PHP 6 didn't really happen -- AFAICT as a total outsider, Unicode support proved too hard and it was never released; the community backported the important bits to PHP 5, and then a new PHP 7, more modest in scope, developed from PHP 5.

The Python world could have done the same, and Tauthon was an effort in that direction.

It's too late now. I suspect that, just as Perl has lost a massive amount of interest and use, partly from the nearly-two-decade-long effort to release Perl 5, Python has done the same -- sabotaged its own community with this high-handed "your leaders know best" approach.