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
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.
Wikipedia1991: 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.
Wikipedia1994: 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.
Wikipedia2000: 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.
Wikipedia2001: 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.
Wikipedia2001: 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.
Wikipedia2003: 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.
Wikipedia2005: 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.
Wikipedia2006: 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.
Wikipedia2008: 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.
Wikipedia2010: 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.
Wikipedia2010: 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.
Wikipedia2014: 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.
Wikipedia2015: 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.
Wikipedia2018: 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.
Wikipedia2019: 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.
Wikipedia2020: 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.
Wikipedia2021: 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.
Wikipedia2022: 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.
Wikipedia2024: 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.
Wikipedia2025: 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.
Wikipedia2026: 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