Timeline of Python

Python from Guido van Rossum’s first implementation in 1989 to Python 3.15 in 2026: language design, scientific computing, packaging, governance, and changes to the interpreter.

Category
Engineering & Technology
Tag
computing
Events
22 events 1989–2026
Generated
by gpt-6-astra
  1. 1989: Van Rossum begins implementing Python

    Guido van Rossum, a researcher at the Dutch institute Centrum Wiskunde & Informatica, began writing Python on his home computer during the December holidays, while his office was closed. Experience with the ABC teaching language informed his emphasis on readable syntax, while the new language also needed to support practical systems work.

    Wikipedia
  2. 1991: Python reaches the public

    Guido van Rossum posted Python to the alt.sources newsgroup in February. The early language already provided classes, exception handling, functions, and modules, making it useful for larger programs as well as short scripts.

    Wikipedia
  3. 1994: Python reaches version 1.0

    Python 1.0 added functional programming tools including lambda expressions, map, filter, and reduce. Contributions from outside its original research setting were already shaping the language’s capabilities.

    Wikipedia
  4. 2000: Python 2.0 expands the language

    Python 2.0 introduced list comprehensions and a collector for reference cycles, and included Unicode text support. Development moved to SourceForge, making bug reports, patches, and participation more accessible to contributors.

    Wikipedia
  5. 2001: Python gains a nonprofit steward

    The Python Software Foundation was established to hold Python’s intellectual property and support its community. A dedicated nonprofit gave the language an institutional home independent of the employers that had previously hosted its development.

    Wikipedia
  6. 2001: Python 2.2 adds generators and new-style classes

    Python 2.2 introduced generators and a new class model that brought user-defined classes and built-in types closer together. Generators could yield values incrementally, making iteration possible without constructing an entire collection in memory.

    Wikipedia
  7. 2003: The Python Package Index opens

    The Python Package Index provided a shared catalog for third-party packages. It gave library authors a common place to publish metadata and became the package repository used by installation tools such as pip.

    Wikipedia
  8. 2005: Django becomes open source

    Adrian Holovaty and Simon Willison’s web framework emerged from work at the Lawrence Journal-World newspaper. Its public release combined database models, templates, and an automatically generated administration interface for building database-backed websites.

    Wikipedia
  9. 2006: NumPy unifies Python’s array tools

    Travis Oliphant brought together capabilities from Numeric and Numarray in NumPy, which reached version 1.0. Its multidimensional arrays and operations implemented in compiled code provided a common foundation for scientific Python libraries.

    Wikipedia
  10. 2008: Python 3 breaks compatibility deliberately

    Python 3.0 separated Unicode text from binary data, made print a function, and removed older language inconsistencies. The changes required updates to existing code, beginning a long migration in which Python 2 and Python 3 coexisted.

    Wikipedia
  11. 2010: PyPy ships a tracing compiler

    PyPy 1.2 shipped with a just-in-time compiler that translated frequently executed Python operations into machine code. The alternative implementation demonstrated a route to faster execution without requiring programmers to rewrite their applications in another language.

    Wikipedia
  12. 2010: Python 2.7 becomes the migration bridge

    Python 2.7 brought selected Python 3 features into the older series, including dictionary and set comprehensions. It was the last major Python 2 release, allowing projects to modernize gradually while maintaining compatibility with existing dependencies.

    Wikipedia
  13. 2014: Jupyter separates notebooks from IPython

    Project Jupyter spun off the language-independent parts of IPython, including its notebook interface. Python retained an important role through the IPython kernel, while the notebook format and tools could serve Julia, R, and other languages.

    Wikipedia
  14. 2015: Python 3.5 adds typing and native coroutines

    Python 3.5 introduced a standard typing module for optional type hints and async and await syntax for coroutines. Type hints supported external checking without imposing runtime enforcement, while coroutines made asynchronous programs easier to express.

    Wikipedia
  15. 2018: Van Rossum relinquishes final authority

    Guido van Rossum stepped down as Python’s benevolent dictator for life after debate over assignment expressions. His departure ended the project’s reliance on one person as the final arbiter of language design and prompted a new governance process.

    Wikipedia
  16. 2019: Developers elect a steering council

    Python core developers elected the first five-member steering council under a new governance model. The council took responsibility for language decisions and project stewardship, replacing the authority previously held by Guido van Rossum alone.

    Wikipedia
  17. 2020: Official Python 2 support ends

    Official support for Python 2 ended on January 1. Python 2.7.18 followed in April as the final release, closing the older branch after years of overlap and leaving maintained applications to migrate to Python 3 or arrange separate support.

    Wikipedia
  18. 2021: Python gains structural pattern matching

    Python 3.10 introduced match and case statements for inspecting the structure of values. Patterns could unpack sequences, mappings, and objects, making the feature broader than a conventional switch statement based only on equality.

    Wikipedia
  19. 2022: CPython specializes frequently executed code

    Python 3.11 introduced an adaptive interpreter that specialized common operations using runtime information. The release also added exception groups, improving how applications could report multiple errors from concurrent tasks.

    Wikipedia
  20. 2024: Python tests execution without the global lock

    Python 3.13 offered an experimental free-threaded build that could run Python threads in parallel without the global interpreter lock. The normal build retained the lock, and extension modules needed work to support the alternative safely.

    Wikipedia
  21. 2025: Free-threaded Python gains supported status

    Python 3.14 moved its free-threaded build from experimental to officially supported status while keeping it optional. The release also deferred evaluation of annotations and exposed multiple interpreters through the standard library.

    Wikipedia
  22. 2026: Python 3.15 adds explicit lazy imports

    Python 3.15 introduced explicit lazy imports, allowing module execution to be deferred until an imported value was needed. The release also made UTF-8 the default text encoding, reducing differences in text-file behavior across systems.

    Wikipedia