Photo by @valentina_590 from the Netherlands, the country where Guido van Rossum the founder of Python is from

The Evolution of Python and The Fear of Dying Languages

Better Understanding the History of Python and Contemplating the Death of Programming Languages

Earlier this week I wanted to understand how Python started, so I wrote an article about it. Since I am attempting to learn more about programming languages and actually do programming, consider this a defeat or retreat — writing text instead of code. I will first tell you about my current status in writing about the history of Python and I will after this talk briefly of the fear of dying programming languages.

Anyhow I was curious to find out more and happened upon a blog about the history of Python with writing from the founder of Python Guido van Rossum. Through this blog I found other useful sources.

Guido was born 31 January 1956) is a Dutch programmer best known as the author of the Python programming language, for which he was the “Benevelopent dictator for life” (BDFL). You may also see this as a self-described role by Guido in the picture above.

Benevolent dictator for life (BDFL) is a title given to a small number of open-source leaders, typically project founders who retain the final say in disputes or arguments within the community. This phrase originated in 1995 with Guido Van Rossum in an email threat naming Guido the first “First Interim BDFL”.

I found three web blogs by Guido that I may explore, too comprehensive at the current moment, so today it will suffice to list the three sources and I may continue to explore these later.

Neopythonic has blog posts that go back to Sunday the 8th of October 2008.

Artima has posts that go back to April the 9th 2003.

Python History has blog posts that goes back to January the 20th 2009.

Guido write in an early blog post on Python History a timeline of Python from 1989 until 2008. He writes this history in a sense from the initial implementation until the 3.0 version in 2008. Towards the later versions he has linked the the updates to be downloaded. I am sure more could be written about each update, and it has indeed been on Guido’s different blogs.

Release Date — Version

December, 1989 Implementation started
1990 Internal releases at CWI
February 20, 1991 — 0.9.0 (released to alt.sources)
February, 1991 – 0.9.1
Autumn, 1991 — 0.9.2
December 24, 1991 – 0.9.4
January 2, 1992 – 0.9.5 (Macintosh only)
April 6, 1992 – 0.9.6
Unknown, 1992 — 0.9.7beta
January 9, 1993 – 0.9.8
July 29, 1993 – 0.9.9
January 26, 1994 – 1.0.0
February 15, 1994 – 1.0.2
May 4, 1994 – 1.0.3
July 14, 1994 – 1.0.4
October 11, 1994 — 1.1
November 10, 1994 – 1.1.1
April 13, 1995 – 1.2
October 13, 1995 — 1.3
October 25, 1996 – 1.4
January 3, 1998 – 1.5
October 31, 1998 – 1.5.1
April 13, 1999 – 1.5.2
September 5, 2000 — 1.6
October 16, 2000 – 2.0
February 25, 2001 – 1.6.1
April 17, 2001 – 2.1
December 21, 2001 — 2.2
July 29, 2003 – 2.3
November 30, 2004 — 2.4
September 16, 2006 –2.5
October 1, 2008 — 2.6
December 3, 2008 — 3.0

2011–21 years of Python

Jumping in history another source that I found interesting from a later point of time was Guido’s presentation called 21 years of Python from May 2011. In this he lists influences on the programming language python as: Algol 60, Pascal, C, ABC, Modula0–2+ and ; Lisp and Icon.

ABC was the strongest language influencer of this set because ABC had the design goals to aim at professionals but not professional programmers (lab personal, scientists, etc.). It was easier to teach, easy to learn, easy to use

The parts of ABC most liked by Guido is mentioned as the design iterations based on user testing such as the colon before indented blocks as well as the simple design: IF, WHILE, FOR statements. Indentation for grouping (Knuth, occam) that has become important in Python. Moreover the tuples, lists, dictionaries and immutable data types as well as the >>> prompt.

There we additionally parts of ABC that Guido said most needed improvement. He mentioned the monolithic design — not extensible, no graphics, not easily added — and that it invented non-standard terminology. He didn’t like the all big letters in KEYWORDS. There was no integration with rest of system. There was no file-based I/O (persistent variables instead).

Core Principles in Python Design Philosophy

In this talk by Guido I found the stated core design philosophy of Python.

  1. Borrow ideas whenever it makes sense
  2. As simple as possible, no simpler (Einstein)
  3. Do one thing well (UNIX)
  4. Don’t fret about performance (fix it later)
  5. Go with the flow (don’t fight environment)
  6. Perfection is the enemy of the good
  7. Cutting corners is okay (get back to it later)
  8. User Centric Design Philosophy:
  9. Avoid platform ties, but not religiously
  10. Don’t bother the user with details
  11. Discourage but allow coding to the platform
  12. Offer multiple levels of extensibility
  13. Errors should not be fatal, if possible
  14. Errors should never pass silently
  15. Don’t blame the user for bugs in Python

From 2005 to December 2012, Guido worked at Google, where he spent half of his time developing the Python language. In January 2013, he started working for Dropbox.

He was BDFL of Python until he stepped down from the position in July 2018. He is currently a member of the Python Steering Council.

Is … Programming Language Dying?

A fun or weird phenomenon that I discovered after I started to become interested in programming was advertisements of programming languages dying or ‘what programming language to learn in 2019’ etc. Since programmers spend a considerable time learning programming languages it makes sense that when they do it should be functional and able to keep them employed for some time (or not having to learn yet another language).

There seems to be a fear amongst some that different languages are dying and Python is not left out of this constant worry. I found an amusing post on Quora which I wanted to share.

He received several compelling answers that he should fear nothing in regards to Python while condemning a few other languages.

There was even a long sarcastic answer by Thomas Cormen a professor in computer science.

Evolution or Death

It is a bit strange to consider these two concepts next to each other. There is so much talk of … eating … in the software community (data is eating the world etc). So in the word development or developer there may be an idea of evolution or progression towards something. It is strange to consider these different discussions next to each other however it is enjoyable considering the history and the current fear of being outdated even with those considered to be the most ‘up to date’ or ‘advanced’ in society.

It is perhaps partly due to keeping with the times that some developers are able to survive or thrive although after discussion there seems to be some developers in a niché who are serving customers with old infrastructure still operating on some of the first programming languages made.

Will Python have an evolution or death? Most seem certain that Python is experiencing a rise that will be maintained at least in the short-term future. However I have seen new programming languages being launched and mentioned in particular those specialised in machine learning applications. One that I may explore more in the future is the Julia Language. However that will have to wait for another day.

This is day 106 of #500daysofAI. My current focus for day 101–200 is mostly on Python programming. If you enjoy this article please give me a response as I do want to improve my writing or discover new research, companies and projects.

AI Policy and Ethics at Student at University of Copenhagen MSc in Social Data Science. All views are my own.