
When to Switch to Python 3.8 - itamarst
https://pythonspeed.com/articles/major-python-release/
======
ebg13
This feels like blogspam where "Python 3.8" can be replaced by literally any
new version of anything.

~~~
fermenflo
Yeah, this really didn't state anything novel that anyone who's even aware of
Python 3.8 wouldn't have already known...

------
jordigh
I know this is a tired subject, but as Mercurial is nearing its multi-year
effort to upgrade to Python 3, patience wears thin:

[https://twitter.com/indygreg/status/1187069501424062464](https://twitter.com/indygreg/status/1187069501424062464)

Mercurial was in fact one of important reasons for why the Python 2
deprecation was pushed back five years. We met with Guido at Pycon 2014 in
Montreal and asked for an extension, which he granted. Back then Python itself
was using Mercurial, so maybe that's why our opinion carried some weight.

We weren't the only ones, but we were one of the vocal ones.

~~~
pbhjpbhj
Could you _precis_ why it's taking multiple years? Surely there's a formal
equivalence that could be automatically implemented wrt the code itself?

~~~
jordigh
Mercurial treats everything as bytes. Whatever you store in your repo, that's
what Mercurial reads -- bytes. There are no encodings, there are no strings.
Only bytes. You don't want your VCS to start having opinions about which
language you should speak and how you should encode it.

PEP 461 was the bare minimum we needed before porting to Python 3 could
happen:

[http://legacy.python.org/dev/peps/pep-0461/](http://legacy.python.org/dev/peps/pep-0461/)

We needed a way to put things into bytestrings.

And after that, it's just nothing but work. Lots of it. Little of which could
be automated.

I get a little impatient, personally, with people who think that upgrading
software is easy. We don't actually _care_ about Python. We care about version
control. Python is just some thing in the middle that is helping us produce
version control. A multi-year effort to upgrade to Python 3 (or 3.8 or
whatever) isn't giving us or our users a net benefit. In fact, until recently,
it was a net loss, because Python 3.5 or 3.6 had slower warmup time, which is
terrible for a tool like hg that needs to pay that cost every time you run any
command.

Instead, Python 3 created busy work. Almost five years of it.

~~~
halfdan
I have no background on Mercurial but I'm curious whether it was considered to
rewrite the entire thing from scratch in another language?

~~~
jordigh
We did. We rewrote it in Python 3.

More seriously, there's also quite a bit of Rust now.

[https://www.mercurial-scm.org/wiki/OxidationPlan](https://www.mercurial-
scm.org/wiki/OxidationPlan)

------
Lendal
Oh come on. You can do useful work without a linter and autoformatter for a
couple of weeks. Geez. Especially for Python, of all languages.

------
simonblack
When a minor-point upgrade happens and it breaks backward-compatibility, there
is something very wrong with the versioning or the major name of the software.

Either the major-version number should be changed (Python 31 to Python 32) or
the project name should be changed (Python to Boa).

This is also a very common problem with GTK+ and some other major pieces of
software.

------
skwb
Easy: when I can safely and easily install tensorflow on python 3.8 [1.].

1\.
[https://github.com/tensorflow/tensorflow/issues/33374#event-...](https://github.com/tensorflow/tensorflow/issues/33374#event-2714817436)

