newsfilter.io
Interview

Guido van Rossum: Python and the Future of Programming | Lex Fridman Podcast #341

  • Python 4.0 is not expected to appear soon, with a future release potentially flipping to a "no GIL" default only after a prolonged transition period similar to or longer than the Python 2 to 3 migration.
  • Versioning plans may involve reaching Python 3.99 before transitioning to version 3.100 or potentially higher iterations like 4.20, while Python 3.11 is imminent with performance claims of 10 to 60% improvement over previous versions.
  • The "no-GIL" interpreter is anticipated to arrive via sub-interpreters in Python 3.12, roughly a year from the statement, with compile-time options possibly available around version 3.15, five years prior to a hypothetical 4.0 launch.
  • If Python 4.0 is released, the "no-GIL" mode would likely become the default or only mode following a multi-year warning and testing phase, though it risks performance hits for single-threaded execution and requires recompiling extension modules that could impact the machine learning and scientific sectors.
  • Static type checkers are expected to evolve at a monthly or bimonthly pace, significantly faster than the annual release cycle of Python itself, with current adoption of type hints estimated at 20 to 30% of Python 3 code bases.
  • While MyPy is currently the most common static type checker and Microsoft's PyRight is a competitor, there is no immediate interest in integrating type checkers into the core language, though this stance might change within five to ten years.
  • The Python community expects to eventually remove standard library modules with no significant changes if superior third-party alternatives exist, and the GIL is viewed as a "Goldilocks point" balancing complexity and performance.
  • Python is predicted to become a foundational legacy language over the next 10 to 100 years, permeating digital life like mitochondria, while maintaining dominance in machine learning, data science, and scientific computing due to its flexibility.
  • Mature software is expected to maintain a bug rate of approximately one bug per thousand lines through resilience mechanisms like rebooting, despite initial development generating about 70 bugs per 1,000 lines, with developers spending 75% of their time debugging.
  • GitHub Copilot is anticipated to handle boilerplate and routine tasks while human creativity remains essential, and JavaScript frameworks are expected to evolve with reduced reliance on transpilation as browser engines update rapidly.
  • The transition to Python 4.0 would likely avoid new syntactic features in favor of binary interface changes for C extensions, requiring users to ensure all extension modules are compatible with the new interpreter.
  • Personal and organizational risk aversion is expected to increase as programmers' personal circumstances change, and the Python 2.7 end-of-life in 2020 served as a symbolic rather than emotional signal for the end of support.
  • Python 3.11's performance gains are most effective when code stays within specific types, utilizing an adaptive specializing interpreter that optimizes common operations like integer addition.