Python History
Where Python came from, why it looks the way it does, and the debates that shaped it
Python is a high-level, interpreted programming language created by Guido van Rossum and first released in February 1991. Guido was working at CWI (Centrum Wiskunde & Informatica) in the Netherlands and started Python as a hobby project over the 1989 Christmas holidays, aiming to create a successor to the ABC teaching language he had helped develop.
Why 'Python'?
The name has nothing to do with snakes. Guido was reading scripts from Monty Python's Flying Circus at the time and wanted a name that was "short, unique, and slightly mysterious." The community has run with the snake imagery ever since.
A visual timeline
Design philosophy
Python's design is deeply influenced by ABC, an earlier teaching
language Guido helped build at CWI. The guiding ideas are captured in
The Zen of Python (PEP 20), which you can read at any time by running
import this.
The Zen prizes readability, explicitness, and one obvious way to do something. These values explain a lot of Python's choices, including its most famous one: significant whitespace.
Why indentation is part of the syntax
Most languages use braces or begin/end keywords for blocks; Python
uses indentation. Guido's reasoning was that programmers indent code
to communicate structure to humans anyway, so the compiler may as well
trust that indentation rather than ignore it. The result is that
badly indented code simply will not run, which keeps every Python
codebase visually consistent.
The Python 2 to 3 transition
Python 3 was released in December 2008 and intentionally broke backward compatibility to fix long-standing language warts. The biggest changes were:
printbecame a function:print("hi")instead ofprint "hi".- All strings are Unicode by default;
bytesis a separate type. - Integer division uses
//;/always returns a float. dict.keys(),range(),map(), and friends return views/ iterators instead of lists.
The decade-long migration
The transition took over a decade. Many libraries maintained dual
Python 2/3 codebases using the six compatibility library or 2to3
converter. Python 2 was officially sunset on January 1, 2020. In 2025
there is no reason to write new code in Python 2. Every example in
this course assumes Python 3.
From BDFL to Steering Council
Guido held the title of BDFL (Benevolent Dictator For Life) from
Python's inception until July 2018, when he stepped down after a
contentious debate over PEP 572 (the walrus operator :=). The
community then adopted a governance model with a five-person Steering
Council, elected annually by core developers. The council makes final
decisions on Python Enhancement Proposals (PEPs) and oversees the
direction of the language.
You can see the current Steering Council and all past members at python.org/dev/steering-council.
CPython and alternative implementations
The reference implementation of Python is CPython, written in C. When people say "Python", they almost always mean CPython. A few alternative implementations exist:
- PyPy uses a just-in-time compiler and can be much faster on pure-Python workloads.
- Jython runs on the JVM and can call Java libraries directly.
- IronPython targets the .NET runtime.
- MicroPython is a slim implementation for microcontrollers.
- WebAssembly builds let CPython run directly in the browser, which is how the interactive code blocks on this site work — no install required.
The GIL and free-threading work
Python's Global Interpreter Lock (GIL) prevents multiple threads
from executing Python bytecode simultaneously, which simplifies
memory management but limits multi-core parallelism. Python 3.13
introduced an experimental free-threaded build (compile-time flag
--disable-gil) that removes the GIL, allowing true parallel
execution. This is groundbreaking work led by Sam Gross and will evolve
over several releases.
Test your knowledge
Who created Python?
Linus Torvalds
Guido van Rossum
Dennis Ritchie
James Gosling
What is the origin of the name "Python"?
Named after the snake species
Named after the Greek oracle at Delphi
Named after Monty Python's Flying Circus
It stands for "Portable Interpreted Typed High-level Object Notation"
Which of the following is a breaking change introduced in Python 3?
List comprehensions were added
print became a function instead of a statement
The def keyword was introduced
Indentation became significant
A small Python 3 challenge
One of the defining changes in Python 3 is that division / always
returns a float, even when both operands are integers. In Python 2,
5 / 2 would return 2 (integer division). Let's verify the Python 3
behavior.
Compute 5 / 2 and assign the result to a variable named result. The hidden test will check that result is 2.5 (a float).
In the next page we will look at how to install Python locally and get a REPL up and running.