I would forgo 10-20% slowdown from 3.11 (and perhaps even 3.10) speeds for single-threaded code.
I became a programmer at the tail end of the Python 2 line, so with the following two caveats that: A. memory is fading, and B. I was not responsible for huge amounts of legacy Python 2 code, the following things seem worth recalling about the 2 vs 3 split.
- For quite a number of years, it wasn’t possible to run the same codebase in v2 and v3;
six
and later Python 3 versions eventually changed that, but still it did require modifying the Python parts of the codebase. - For quite a few years, many programmers didn’t realize a clear advantage to moving to Python 3, especially for those who didn’t have unicode problems. Rather, one had annoyances, such as
print
becoming a function, and your code getting slower than 2.7. - The ergonomics of Python3.5+ really made the upgrade unquestionably worthwhile (at which point Python 3 was ~7 years old.)
The incentive dynamics are different now, as I see it, at least.
- Running multiple interpreters for some part of the workload is not as difficult if both
enable-gil
anddisable-gil
interpreters can run the same Python codebase withoutsix-type
modifications. - The pressure to utilize the entire CPU is intense.
- Any single-threaded slowdown is accompanied by easier multi-core programming, and memory savings.
- Thus the slowdown shouldn’t appear as apparently arbitrary to python programmers, at least not as did the slowdown from Python 2.7 to Python 3000.
- The core devs understand the “existing code” problems vastly better than they did before.
- Breaking changes won’t be made as lightly as before.
- Many migration difficulties are likely to have much more documented solutions and even PRs 3rd party packages.
I don’t want any of the above to be taken as making light of the risk of splitting the community in 2 vs 3 fashion, or as provoking the core devs to be frivolous.
But I do think there’s some room to consider that the upside potential for a GIL-less python is immense, and to presume that the community will be more motivated to transition more quickly than the in 2 vs 3 era.
Hats off to the core devs for their rigorous blending of innovation and caution! Thank you for Python and increasingly, thank you for Faster Python!!