N
Nick Coghlan
curiousefficiency.org · Personal blog · on HN since 2014
Nick Coghlan, a Python core developer, writes about Python's future, packaging, teaching, and open source contributor treatment.
What HN saysHN commenters cite his post saying Python 4.0 won't repeat the Python 3 break, using it to answer worries about another incompatible release.
28HN people shared it
10linked it in comments
21stories submitted
324story points
2 years agolast shared
2014people per year2026
Most-shared posts
- 1Why Python 4.0 won't be like Python 3.012 people · 19 points · first shared 2014 · discussion on HN
- 2Languages to improve your Python5 people · 103 points · first shared 2015 · 28 comments on HN
- 3The Python Packaging Ecosystem (2016)3 people · 7 points · first shared 2016 · discussion on HN
- 4Abusing Contributors is not OK2 people · 86 points · first shared 2015 · 58 comments on HN
- 5Considering Python’s Target Audience (2017)2 people · 39 points · first shared 2017 · 8 comments on HN
- 6The Origin of Venvstacks2 people · 3 points · first shared 2024 · discussion on HN
- 7Abusing Contributors is not OK1 people · 35 points · first shared 2015 · 10 comments on HN
- 8Some Suggestions for Teaching Python1 people · 27 points · first shared 2014 · 3 comments on HN
- 9Background tasks in Python 3.51 people · 3 points · first shared 2015 · discussion on HN
- 10The transition to multilingual programming1 people · 2 points · first shared 2014 · 1 comments on HN
- 11Pythons future global perspective1 people · first shared 2016
What HN people wrote when they linked it
DonaldPShimoda · 2019-05-15
> What happens in a few years when Python 4 renders all Python 3 code incompatible?
Ah, the classic "they did it once so they'll definitely do it every single time from now on" argument.
Nick Coghlan, one of the Python core developers, said "Python 4.0 will merely be "the release that comes after Python 3.9"" [0], so I think your concerns are ill-based.
[0] https://www.curiousefficiency.org/posts/2014/08/python-4000.html
StavrosK · 2018-08-20
yeukhon · 2018-01-07
http://www.curiousefficiency.org/posts/2014/08/python-4000.html
It will be backward compatible (unless there is an absolute need to break), but just keep Python 4 out of your head. For now, they predict just 3.10+
collinmanderson · 2017-12-02
Yup. And the developers learned their lesson and aren't going to do it again. https://www.curiousefficiency.org/posts/2014/08/python-4000.html
sr_banksy · 2016-02-14
It has massive support and libraries for almost anything imaginable. It's not dying. Yes, the transition from 2 to 3 is a bit of a hiccup, but it's going to be around for a long time!
A tad bit old, but read this: http://www.curiousefficiency.org/posts/2012/10/pythons-future-global-p…
TL;DR: No.
gh02t · 2016-01-12
I believe they said they were going to try very hard to not do major backwards compatible breaking changes again.
> My current expectation is that Python 4.0 will merely be "the release that comes after Python 3.9". That's it. No profound changes to the language, no major backwards compatibility breaks - going from Python 3.9 to 4.0 should be as uneventful as going from Python 3.3 to 3.4 (or from 2.6 to 2.7). I even expect the stable Application Binary Interface (as first defined in PEP 384) to be preserved across the boundary.
http://www.curiousefficiency.org/posts/2014/08/python-4000.html (which was linked by Guido from his Twitter).
mrmb · 2016-01-12
From Guido: he expects "Python 4.0 will merely be "the release that comes after Python 3.9". That's it. No profound changes to the language, no major backwards compatibility breaks"
http://www.curiousefficiency.org/posts/2014/08/python-4000.html
Would be nice if it was simply 3.10 not 4.0, as there's much discussion on that too.
indosauros · 2014-12-20
Not likely anymore: http://www.curiousefficiency.org/posts/2014/08/python-4000.html
rspeer · 2017-11-16
The Python developers plan to never break syntax or stdlib compatibility again. Core developer Nick Coghlan wants to see 4.0 within the decade but he wants it to be "uneventful". [1] In that way, it would be a lot like Python 2.0, which only broke compatibility in obscure ways, but added new ways to do things.
Here are some of my wild guesses at what features Python would want to commemorate with a 4.0 release:
- An easy, Pythonic way to opt out of the Global Interpreter Lock. (The GIL clearly isn't going away because so much extension code needs it, but that doesn't mean all code has to suffer from the GIL for eternity.)
- UTF-8 as the guaranteed default encoding, instead of trying to infer anything from stupid locale shit. (This wouldn't break any code that wasn't broken already.)
- More built-in syntax to support NumPy.
[1] https://www.curiousefficiency.org/posts/2014/08/python-4000.html
BuckRogers · 2016-01-12
Guido has stated to not compare semver in the past.[0]
Will there be a 3.10 or go to 4.0 after 3.9, per one of his core developers?[1] It's hard to tell with Python's leadership (no intentional mockery of the term leadership).
My guess is that they'll indeed push onwards to Python4 as soon as possible. This being another attempt to make Python2 look as old and crufty as possible.
"You're still on Python2? Wow, I'm on 4!". That's the type of political and psychological game the Python core dev team has been playing since 2008 with 3's release. Right alongside the 2020 EOL, another political move. Even though Python 2.7.'10' was never supposed to exist but they went back on that.
This because Python3 is mere technical churn, it is not true technical innovation.
The issue here is really one with the Python core development team. They have also adopted every niche feature into Python3 by whoever came along to ask for it.[2] This was done for the same reasons as the relative rush to rebrand the failed 3.x branch as 4. An attempt to stir up any hype possible for 3.0+.
They got so much wrong with Python3. Feature soup, unicode, and performance losses over 2. Unicode-by-default is the big deal and they didn't even get that right. They simply remapped unicode to str. Which for such a big breaking change, should've been UTF8 alongside other new languages such as Go.[3] But it's worse than that, Python3's feature soup continues in 3.6 there will likely be a 4th string formatting…