Python 4.0 will probably never come — according to the creator of Python, Guido van Rossum.
The lessons learned from migrating from Python 2 to Python 3 demonstrated what a hassle it is to move to a new language version. Thus, there will probably not be a new version of Python soon. But that doesn’t mean Python wouldn’t get updates anymore. As a matter of fact, Python gets new updates all the time. It’s the major version that will not change from 3 to 4.
Why Won’t Python 4.0 Come Out Anytime Soon?
If you were looking for a Python 4.0 release date, I’ve got bad news for you. Python 4.0 will probably never come because of the compatibility problems it would create, which we saw in the past with the transition from Python 2 to Python 3. Developers with software library dependencies in Python 2 couldn’t update to Python 3. And no, this was not a surprise. Rather it was a well-known side effect of having a new language version.
This is the key problem that prevents a new version of Python from turning into reality. Instead of pushing a new major version out, the Python developer team will continue to focus on improving Python 3.
Will Python Still Be Updated?
Because there will be no major new Python releases, you might be wondering whether the language is relevant anymore. The good news is that Python still gets frequent updates — exactly like before. As an example, in October 2021, Python 3.9.13 was upgraded to Python 3.10.0. This introduced a major update to Python 3 — the switch statements.
The fact that Python 4.0 is not coming is mostly a good thing. There will be no hassle for developers migrating from Python 3 to Python 4.0. Also, the Python core development team can focus on making Python 3 even better and more robust.
Why Did Developers Think Python 4.0 Would Come?
One key reason why developers are searching for Python 4.0 release dates is Python version 3.9. If you’re unfamiliar with the version numbers, a logical next step for Python 3.9 would be Python 4.0, right? But that’s not how it works. Instead, Python 3.9 upgrades to 3.10, which turns into 3.11, and so on. Also, there are minor releases, such as 3.10.3.
Speaking of versioning, here is a quick look at how the version numbering system works.
How Does the Software Versioning System Work?
In a version number, such as 3.10.13, the parts are Major.Minor.Patch.
- Major refers to the major release of the programming language. It comes with backwards-incompatible updates that need attention and action from the developers. Usually, a major update comes with drastic code changes and restructuring.
- Minor release refers to a smaller upgrade. A minor update adds new functionality and meaningful updates to the language. There might be some changes that cause compatibility issues in a minor release too, but more often than not, these are not hard to deal with.
- Patch releases are the smallest type of upgrade. They usually fix a bug, patch something, or include a tiny update. A patch release is different than a minor one. This is because a patch shouldn't require developers to change anything. If an action needs to take place, the update should be minor instead of a patch.
I think Python’s major version will never change. Instead, the core development team will keep on updating the third major version. So there will be minor and patch version updates indefinitely.
When Could Python 4.0 Theoretically Turn Into Reality?
The only scenario when Python 4.0 could become reality, according to Guido van Rossum, is if C compatibility changes drastically.
This is what Rossum said:
“I could imagine that at some point we are forced to abandon certain binary or API compatibility for C extensions… If there was a significant incompatibility with C extensions without changing the language itself and if we were to be able to get rid of the GIL. If one or both of those events were to happen, we probably would be forced to call it 4.0 because of the compatibility issues at the C extension level.”
Basically, this means the only scenario in which Python 4.0 would turn into reality is if the advantages of breaking backward compatibility would outweigh the huge issues it would cause, as the developer community saw in the Python 2-to-Python3 transition.