Hacker News new | ask | show | jobs
by PossiblyKyle 1084 days ago
It is solvable by making the hard decision to move to Python 4 with no backward compatibility. The two core issues imo in Python are the GIL and the environment hell and both simply can’t be solved while still keeping the 3 moniker. We’re in a field of constant workarounds and duct tape because we try pleasing too much
3 comments

Python tried that (version 2 to 3) and both the community and dev team were traumatized by the effects enough they've publicly said it'll never happen again.

Some things really are too big to change.

That means they didn't learn from it at all. The problem with Python 2 to python 3 is that it lost backwards compatibility because of very silly reasons like turning the print statement into a function. The vast majority of the problems could have been avoided by not making pointless changes with dubious benefits.
I seriously doubt anyone had problems fixing print as a statement. 2to3 fixed it...

I'll admit that, yes, changing string to bytes and unicode to string was a bit annoying, but the change itself wasn't fundamentally 'of dubious benefit', it did have benefits, and related to this, the only major issue was that you couldn't, for a long time, have code that worked in both where it came to literals. The biggest problem here was the implicit conversion from 2, that I agree needed to go.

Most of the other things can be trivially fixed automatically, or at least detected automatically, but without type hinting, it wasn't really easy to fix the automatic conversion.

There were other changes that were a bit tricky, but the majority of issues stemmed from the str/bytes change.

slap "use v4" at start of the file to use new semantics and use it automatically for .py4

Then transpile Py3 code into Py4.

Transpilation won't work with semantics.

And it won't change anything about c extensions.

Not going to happen for another 10 years at least. Not after how long and painful the move to Python 3 was.
Moving from 2 to 3 was a long and difficult migration, so 3 to 4 will be similarly difficult
Seems a bit conclusory. Doesn't this imply the community is incapable of learning from experience?
I’ve been using Python since 1994 and my 2-to-3 migration plan was Go…
The account of time and money ppl put into building and maintaining systems built with scripting languages has never made sense to me.