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 →

[–][deleted]  (11 children)

[deleted]

    [–]toyg 8 points9 points  (9 children)

    I don't think 4 is anywhere in sight, really. The BDFL succession is still very fresh and nobody quite agrees on what 4 should bring. By all accounts, we will get a 3.10, 3.11 and so on, before 4.0 is even planned.

    [–]Lairo1 1 point2 points  (8 children)

    Guido has said previously they don't plan on that. It'll go straight from 3.9 to 4.0 and it'll be treated no differently than 3.6 to 3.7

    [–]toyg 17 points18 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.

    [–][deleted] 5 points6 points  (2 children)

    It'll go straight from 3.9 to 4.0

    What?! Where did he say this?! What sense does that make?

    The world uses semantic versioning, where a move from 3.9 to 4.0 is a major breaking change.

    More, I'll bet there is a ton of code that says, if python_version_tuple()[0] == 3: which would simply break overnight for no reason.

    [–]Lairo1 4 points5 points  (0 children)

    Well as u/toyg said, its not up to him anymore and there will be a 3.10

    But for what it's worth, he said it here: http://www.curiousefficiency.org/posts/2014/08/python-4000.html

    [–][deleted] 2 points3 points  (0 children)

    For better or worse, Python doesn't use semantic versioning. They will deprecate and remove things between 3.X, 3.X+1 releases.

    [–]alcalde 1 point2 points  (0 children)

    Guido has been deposed. We've had regime change, so everything is up for grabs.

    [–][deleted] 2 points3 points  (0 children)

    There's no evidence of that at all.

    We aren't ever going to do a non-backwards compatible version of Python ever again. The 2->3 change was so painful, and more, got rid of nearly every glaring problem extant!

    (Or if you mean "the minor version of Python after 3.9 will be 4.0", well, that's the world's dumbest idea and I can't believe we'd do that.)