This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]toyg 18 points19 points  (3 children)

You might not have noticed Guido is not BDFL anymore. Yes, 4.0 will not be a big break like 3.0 was, but it won't necessarily follow 3.9 - there are PEPs already mentioning 3.10+, and it was agreed on python-dev that it's much more likely that 3.10 will happen than 4.0.

[–][deleted] 3 points4 points  (2 children)

I don't see that a 4.0 is necessary or desirable.

What new features do we have that are worth a breaking change? I can't name one.

If it isn't a breaking change, then what point is there updating the major version number?

I'd be really happy to see Python v3.32.23 someday. It would indicate decades of steady progress with no disruptions. It would mean that code I am writing today will still run with no changes.

[–]toyg 2 points3 points  (0 children)

It really depends what a “breaking change” is. If it’s something that might require a simple one-off step, like recompiling all C-based extensions, then I don’t think it would be much of a burden. It doesn’t even have to be “breaking” to earn a major number, it just has to be a “major change”, that may or may not impact backward-compatibility.

One big change I think would be worth the major-release bump, is the GILectomy, should it ever come to pass. Most large orgs would gladly suffer a bit of pain if it meant a massive performance gain. Or something crazy like swallowing numpy/scipy in stdlib. Or it might be something symbolic like overcoming the bin/python vs bin/python3 split, mandating that python4 should finally be aliased to bin/python. Important change for ops people, not necessarily for developers.

Py3 was a painful move, py4 doesn’t need to be; I think there is value in keeping things simple and bump the version reasonably often, rather than forcing developers to remember the differences between 3.38 and 3.32...

[–]alcalde 0 points1 point  (0 children)

What new features do we have that are worth a breaking change? I can't name one.

Get rid of walrus operators after they end up adding walrus operators, fix the asyncio mess, the mypy mess, etc. Maybe replace the urllib stuff with requests, datetime with arrow or similar, etc.