Python 3.13.0 Is Released

Free-Threaded / No-GIL Python and Performance

  • Many are excited about free-threaded execution and optional GIL removal, hoping it will make multithreading truly useful for CPU-bound tasks and simplify designs compared to multiprocessing.
  • Others argue Python’s inherent performance limits mean heavy CPU work should still be offloaded to faster languages.
  • Counterpoint: variable access is not “all hash-table lookups” anymore; modern CPython has optimized opcodes and slots.
  • Debate over “mental cost”: some say only runtime implementers pay the extra complexity, others say all users bear it via new concurrency pitfalls.

Language Stability, Deprecations, and Backward Compatibility

  • Several note that recent 3.x versions (3.11–3.13) focus more on implementation (JIT, free-threaded, REPL) than new syntax, which is widely welcomed.
  • Deprecations are now enforced more aggressively; old stdlib modules are being removed, with the expectation that most users can swap in third‑party replacements or vendor copies.
  • Some complain Python “breaks things constantly,” comparing unfavorably with other ecosystems; others counter that breaking changes are usually motivated and documented, though not everyone reads release notes.

Imports and Multiprocessing Changes

  • Import system pain points: circular imports, path hacks, and especially local modules shadowing stdlib modules. 3.13 improves error messages but doesn’t solve future-name collisions.
  • There was a rejected PEP for lazy imports; some think it’s still worth revisiting.
  • Upcoming change: default multiprocessing start method on Unix will switch away from fork (likely in 3.14), breaking workloads that rely on cheap snapshotting of large in-memory structures.
  • Some argue fork as default was a long-standing footgun in threaded code; others say silently changing defaults is dangerous and should at least require an explicit choice.

New REPL and Tooling

  • New REPL brings multiline editing, colored prompts, better history, and special modes (help, paste), seen as a major usability upgrade.
  • Concerns about missing vi mode and compatibility with alternative REPLs (e.g., IPython, ptpython); some plan to keep using those.
  • Discussion of environment management: strong advocacy for pyenv/uv and per-project virtualenvs over relying on OS Python, though some still find system Python fine for small scripts.

Release Adoption Strategies

  • Common heuristics: use “n‑1” Python version in production, wait for wheels for all deps, and rely on robust CI to catch breaks.
  • Cloud runtimes (e.g., Azure Functions) are criticized for lagging behind new Python versions.
  • Some prefer other languages (Go, Rust) for new projects due to perceived Python churn, though others continue to embrace new features like advanced typing (TypeGuard, TypeIs).