Zum Inhalt springen

Guido van Rossum and Python

Zusammenfassung

Guido van Rossum created Python during a Christmas holiday in 1989, as a hobby project to keep himself occupied. He wanted a language better than the teaching language ABC — more practical, more interactive, with a real interpreter he could call from C. He gave it whitespace-significant syntax, a gentle learning curve, and a design philosophy that valued readability above almost everything else. Python spent its first fifteen years as a niche scripting language beloved by system administrators and scientists. Then machine learning happened, and Python became the dominant language of AI research — not because it was fast, but because it was readable, its libraries were excellent, and the scientific community had already adopted it.

ABC and the Christmas Project

Guido van Rossum was born in Haarlem, the Netherlands on January 31, 1956. He studied mathematics and computer science at the University of Amsterdam, receiving a master’s degree in 1982, and joined CWI (Centrum Wiskunde & Informatica) in Amsterdam, a mathematics and computer science research institution.

At CWI, he worked on the ABC language — a teaching language designed by Lambert Meertens, Leo Geurts, and others, with the goal of being so simple that non-programmers could learn it. ABC had genuine virtues: clean syntax, automatic memory management, built-in data types for sets and dictionaries, no declarations required. It also had real limitations: it could not call C libraries, had no exception handling, and was difficult to extend.

In December 1989, van Rossum was looking for a programming project to occupy his Christmas holiday. He decided to implement a scripting language that would fix ABC’s problems while keeping its virtues. He named it Python after Monty Python’s Flying Circus — not the snake.

Design Philosophy: The Zen of Python

Python 0.9.0 was posted to the alt.sources Usenet newsgroup on February 20, 1991. The key design decisions that distinguished it:

Significant whitespace: Python used indentation to denote block structure, eliminating the curly braces and begin...end delimiters of other languages. The idea was that Python code was readable by default — the indentation that programmers were already using to communicate structure became mandatory.

# Python — indentation IS the block structure
def factorial(n):
    if n <= 1:
        return 1
    else:
        return n * factorial(n - 1)

# No braces, no semicolons, no begin/end
# The visual structure IS the semantic structure

Everything is an object: integers, strings, functions, classes, modules — all first-class objects that could be passed, stored, and inspected.

Batteries included: a large standard library that made common tasks immediately available without external dependencies.

Interactive interpreter: running python gave an interactive REPL where code could be tested immediately.

The design philosophy was codified in “The Zen of Python” (Tim Peters, 1999), accessible as import this in any Python interpreter. Its principles included: “Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Readability counts. There should be one — and preferably only one — obvious way to do it.”

The BDFL Model

Van Rossum governed Python’s development as its Benevolent Dictator for Life (BDFL) — a title that captured both his authority (he had final say on language decisions) and his style (he governed by consensus and persuasion rather than fiat). The Python Enhancement Proposal (PEP) process allowed community members to propose language changes, debate them publicly, and receive a decision from van Rossum. He resigned the BDFL role in July 2018, citing the exhausting nature of the governance disputes around PEP 572 (the walrus operator). Python’s steering council governance replaced individual BDFL authority.

The Scientific Adoption

Python’s first major adoption wave was not in web development or systems programming — it was in science. The SciPy ecosystem (NumPy 2006, SciPy 2007, matplotlib 2003) made Python the default environment for scientific computing, gradually displacing MATLAB in academia. IPython (2001, later Jupyter) created the notebook interface that became ubiquitous in data science.

When machine learning research accelerated in the early 2010s, the scientific computing community was already in Python. scikit-learn (2007/2010), Theano (2007), Keras (2015), TensorFlow (2015), and PyTorch (2016) all chose Python as their primary interface. The language was slow — Python code typically runs 10-100x slower than C — but for ML, the hot path was in native C/CUDA libraries that Python called. Python was the glue, not the engine.

By 2020, Python was the most popular programming language in the world by several measures, primarily because of AI/ML adoption.

Python 3 and the Breaking Change

In December 2008, van Rossum released Python 3 — a new version that broke backward compatibility with Python 2 in order to fix long-standing design issues: Unicode strings by default, consistent division semantics, removal of old-style classes, print as a function. The break was necessary; the accumulated inconsistencies of Python 2 were genuinely limiting.

The transition was painful. Python 2 programs did not run on Python 3 without modification. Libraries had to be ported. Organizations running Python 2 in production faced significant migration costs. The two versions coexisted for over a decade: Python 2.7 continued receiving security updates until January 1, 2020 — twelve years after Python 3’s release — because the migration was slow.

The Python 2/3 split became a case study in the costs of breaking backward compatibility, and the difficulty of migrating large installed bases even when the migration is clearly correct.

Google, Dropbox, Microsoft

Van Rossum joined Google in 2005 (“Python is where you will find me spending half my time”). He worked on cloud infrastructure and tools, using Python extensively. He left for Dropbox in 2012, where Python was the dominant server language. In 2020 he joined Microsoft’s developer division, working on Python’s performance (the Faster CPython project) and tooling.

The GIL (Global Interpreter Lock) — CPython’s interpreter-level lock that prevents true multi-threaded CPU parallelism in Python — remains Python’s most discussed limitation in high-performance contexts. Work to remove it has been ongoing for decades; after the Steering Council approved PEP 703 in 2023, Python 3.13 (2024) shipped the first experimental free-threaded (no-GIL) build.

Dead End: Python 2

The Long Tail of Legacy Python

Python 2 reached official end-of-life on January 1, 2020. The Python Software Foundation stopped releasing security updates. Yet Python 2 code continued running in production — embedded in scripts, automation tools, and applications that organizations had not gotten around to migrating. The CentOS and RHEL Linux distributions, which had Python 2 as a system tool, continued to be deployed in enterprise environments. The language designed to be readable and maintainable became entangled in the same legacy maintenance problem it had been designed to avoid.

Python’s role in the machine learning revolution is covered in The Natural Language Processing Revolution and The Rise of Artificial Intelligence.


📚 Sources