On a cold, foggy night in December 1987, a scientist called Guido van Rossum woke up in the middle of the night. He just had a profound dream, and although he didn’t know at the time, it would turn out to be a dream that changed his life and the lives of many others. So he got out of bed and slipped into his pantofles. After throwing some wood in the almost smothered fireplace, he started jotting down as much of this dream as he could remember. A new programing language was born: Python, and this is Python’s history.
Table of contents
The inception of Python
The only truth from the above story is the name and date, probably. However, Python does have a long and interesting history.
In 1987, Guido worked on a big distributed operating system a the dutch CWI, a national research institute for mathematics and computer science in the Netherlands.
Within that project, he had some freedom to work on side-projects. So, armed with the knowledge and experience he had built up in the years before, working on a computer language called ABC, he started writing the Python programming language.
In a 2003 interview with Bill Venners, Guido mentioned what was probably the biggest innovation in the new language:
I think my most innovative contribution to Python’s success was making it easy to extend. That also came out of my frustration with ABC. ABC was a very monolithic design. There was a language design team, and they were God. They designed every language detail and there was no way to add to it. You could write your own programs, but you couldn’t easily add low-level stuff.Guido van Rossum
He decided that you should be able to extend to language in two ways: by writing Python modules, or by writing a module entirely in C. It turned out to be a success because immediately his CWI colleagues, the users, and Guido himself started writing their own extension modules. The extension modules let you do all sorts of things: communicate with graphics libraries, data flow libraries, and all sorts of file formats.
Python history: a timeline
Since its inception, Guido has been actively involved in Python’s development until this day. Let’s dive into some Python history! The following figure shows a global timeline of Python’s historic and most defining releases:
Python 2 vs Python 3
As you can see from the Python history timeline, Python 2 and 3 have been developed and maintained side by side for a long period. The major reason being that Python 3 code is not entirely backward compatible with Python 2 code. This incompatibility caused a prolonged adoption rate. Many people were happy with version 2 and didn’t see much reason to upgrade. On top of that, Python 3 was, initially, slower than Python 2. As Python 3 kept improving and receiving new features, eventually, it started to take off.
This guide focuses entirely on Python 3 since it is now the default and only supported version. In the real world, you may encounter Python 2 code. I shared some tips on migrating from such code in the chapter Migrating from Python 2 to 3.