Here’s a little history of how Python came to be. You don’t necessarily need to know this to learn Python programming, but it does give you some more perspective on the why and how of this beautiful language.
It all started on a cold, foggy night in December 1987, when a Dutch 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 it at the time, that dream would eventually change 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.
OK, I got a little carried away there. The only truth from the above story is the name Guido van Rossum and the date. In 1987, Guido worked on a big distributed operating system at the 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. 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 the 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. Just a small selection of modules that exist today:
Since its inception, Guido has been actively involved in Python’s development until this day. After a short retirement, he returned to work. Microsoft currently employs him and his main focus now lies in improving Python’s speed.
The following figure shows a global timeline of Python’s historical and most defining releases:
As you can see from the Python history timeline, Python 2 and 3 have been developed and maintained side by side for an extended period. The primary reason is 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. In case you ever need it, I shared some tips on migrating from such code in this article: Migrating from Python 2 to 3.