A Christmas Holiday Project
Many big pieces of software didn't start with a business plan; they started with an everyday annoyance. The story of Python, one of today's most widely used programming languages, begins the same way: a researcher tired of the tools he had, and a few free days.
A researcher and a problem
In the late 1980s, Dutch programmer Guido van Rossum worked at CWI, the national research institute for mathematics and computer science in Amsterdam. He had earlier worked in the group that built a teaching language called ABC, and in his own words had learned a lot about language design there.
Now he was in the Amoeba group, working on a distributed operating system, one that runs across many connected computers. In Python's official FAQ, van Rossum writes that the group needed a better way to do system administration than writing C programs or Bourne shell scripts. He realised that a simple, readable language like ABC, but with access to the operating system, would fill the need. More importantly, instead of an Amoeba-only language, he wanted one that could be easily extended, the very thing he saw as ABC's biggest weakness.
A few free days
In his words, "During the 1989 Christmas holidays, I had a lot of time on my hand, so I decided to give it a try." The release timeline van Rossum published on his History of Python blog records December 1989 as the start of implementation.
From ABC came ideas such as grouping statements by indentation, the feature that still makes Python code easy to read. Its exception handling was inspired by another language, Modula-3.
A name from a comedy show
Python isn't named after the snake. The official FAQ says van Rossum was reading the published scripts of "Monty Python's Flying Circus", a 1970s BBC comedy series, and wanted a name that was "short, unique, and slightly mysterious". The FAQ adds, with a wink, that you don't have to like the show, "but it helps".
From one group to the world
Through 1990 Python had internal releases at CWI and was used in the Amoeba project with increasing success. Van Rossum writes that feedback from colleagues led him to add many early improvements.
Then, on 20 February 1991, according to his timeline, version 0.9.0 was posted to Usenet, a network of discussion groups where programmers of the day shared code and ideas. Releases followed steadily, and Python 1.0 came out on 26 January 1994.
The turning point
The turning point in this part was the decision to make the language general. Had van Rossum built an Amoeba-only language, it would likely have been forgotten with that project. He built a general, extensible language and shared it with the world.
Lesson for businesses
First, the best products are often born from a real pain in daily work. If a problem annoys you every day, it probably annoys others too.
Second, don't lock your product to one customer. A solution that can be extended finds a much bigger market.
Third, release early and listen. Python spent years feeding on feedback from colleagues and users before it ever reached 1.0.
Next time: a language finds its community, with written rules for proposals, an independent foundation and a philosophy summed up in 19 lines.
Sources
- "General Python FAQ" (Why was Python created; Why is it called Python), Python documentation, n.d. - https://docs.python.org/3/faq/general.html
- Guido van Rossum, "A Brief Timeline of Python", The History of Python, 2009-01-20 - https://python-history.blogspot.com/2009/01/brief-timeline-of-python.html