# Python

> General-purpose language for scripts, automation, web backends and data analysis.

- **Appeared:** 1991
- **Creators:** Guido van Rossum
- **Type:** scripting
- **Status:** alive
- **Born from:** In December 1989 Guido van Rossum, a programmer on the Amoeba distributed operating system at CWI, started a hobby project to fill the week around Christmas. Amoeba needed a scripting language, and he wanted an interpreted language for writing and testing its administration scripts. He drew on ABC, a language he had worked on that was intended for non-technical users.
- **Reacts to:** abc, c, modula-3
- **Trade-offs:** reference counted; dynamic types; interpreted; concurrency: threads, async. Cost: The global interpreter lock stops threads from running Python code at the same time, so CPU-heavy work needs processes or C extensions.
- **Slots:** scripts ●●● strong (The default language for system administration and automation scripts.); data ●●● strong (NumPy and the scientific stack built on it.); server ●●● strong (Django and Flask are the common web frameworks.); cli ●●○ ok; systems ●○○ weak (CPython itself is written in C.); mobile ●○○ weak; browser ○○○ none (Browsers run JavaScript, not Python.)
- **Alternatives:** javascript, go, r
- **Won where:** Dropbox published how it moved over one million lines of Python from Python 2 to Python 3 (2019) [source](https://dropbox.tech/application/incrementally-migrating-over-one-million-lines-of-code-from-python-2-to-python-3); NumPy, the fundamental package for scientific computing with Python [source](https://numpy.org/)
- **Timeline:** 1989: Guido van Rossum starts Python as a hobby project in the week around Christmas [source](https://www.python.org/doc/essays/foreword/); 1991: Python 0.9.0 is released to the alt.sources newsgroup in February [source](https://python-history.blogspot.com/2009/01/brief-timeline-of-python.html); 2000: Python 2.0 is released on October 16 [source](https://python-history.blogspot.com/2009/01/brief-timeline-of-python.html); 2008: Python 3.0 is released on December 3 [source](https://python-history.blogspot.com/2009/01/brief-timeline-of-python.html); 2020: Python 2 reaches end of life on January 1 [source](https://www.python.org/doc/sunset-python-2/); 2023: PEP 703, Making the Global Interpreter Lock Optional in CPython, is accepted [source](https://peps.python.org/pep-0703/)
- **Links:** [website](https://www.python.org/), [repo](https://github.com/python/cpython), [docs](https://docs.python.org/3/)
- **PLDB:** https://pldb.io/concepts/python.html
- **Sources:** https://www.python.org/doc/essays/foreword/, https://www.artima.com/articles/the-making-of-python, https://www.linuxjournal.com/node/2959, https://python-history.blogspot.com/2009/01/brief-timeline-of-python.html, https://www.python.org/doc/sunset-python-2/, https://peps.python.org/pep-0703/, https://dropbox.tech/application/incrementally-migrating-over-one-million-lines-of-code-from-python-2-to-python-3, https://numpy.org/, https://survey.stackoverflow.co/2025/technology/, https://w3techs.com/technologies/details/cp-javascript/
- **Verified:** no, draft of 2026-10-30
- **Canonical:** https://langwhy.dev/lang/python/

## Why it exists

In December 1989 Guido van Rossum, a programmer on the Amoeba distributed operating system at CWI, started a hobby project to fill the week around Christmas ([Guido's foreword to Programming Python](https://www.python.org/doc/essays/foreword/)). Amoeba needed a scripting language ([Artima, The Making of Python](https://www.artima.com/articles/the-making-of-python)), and he wanted an interpreted language for writing and testing its administration scripts ([Linux Journal interview](https://www.linuxjournal.com/node/2959)). He drew on ABC, a language he had worked on, which was intended for non-technical users. The first public release, version 0.9.0, went to the alt.sources newsgroup in February 1991 ([Guido's Python timeline](https://python-history.blogspot.com/2009/01/brief-timeline-of-python.html)).

## What it trades away

Python code is short and readable, and that comes at a cost in speed and parallelism. CPython, the reference implementation, has a global interpreter lock that stops threads from running Python code at the same time ([PEP 703](https://peps.python.org/pep-0703/)). CPU-heavy work therefore needs separate processes or C extensions. Dynamic typing has its own cost: type hints are optional and checked by external tools, so large codebases lean on those tools and on tests. The migration was slow too. Python 3.0 arrived in 2008, and Python 2 kept receiving support until January 1, 2020 ([python.org](https://www.python.org/doc/sunset-python-2/)).

## Where it won

Python won in scripting and data work. Dropbox's client had more than one million lines of Python logic, and in 2019 the company published how it moved that code to Python 3 ([Dropbox Tech](https://dropbox.tech/application/incrementally-migrating-over-one-million-lines-of-code-from-python-2-to-python-3)). NumPy calls itself the fundamental package for scientific computing with Python ([NumPy](https://numpy.org/)). In the 2025 Stack Overflow survey, 57.9 % of respondents used Python ([Stack Overflow](https://survey.stackoverflow.co/2025/technology/)). It never won the browser. Browsers run JavaScript, which 98.9 % of websites use on the client side ([W3Techs](https://w3techs.com/technologies/details/cp-javascript/)).

---
Data: CC0, https://github.com/langwhy/langwhy/blob/main/data/languages/python.yaml
