Python's change in leadership

Shedding Its Skin

Article from ADMIN 52/2019
Guido van Rossum discusses Python's origin story, changes in leadership, and the future of the project.

I sat down with Python creator Guido van Rossum for a lively discussion of Python history and the future of the Python project.

"I don't know how much this is like a revisionist origin story, but the story I always tell is I was working as a programmer on a project named Amoeba [1], which was a distributed system," said Guido.

Amoeba was a micro kernel-based system. It's still famous in research circles. Amoeba resulted in a lot of good new ideas and a lot of Ph.D.s and papers. The famed Andrew S. Tanenbaum [2] was also involved in the project, and all of his Ph.D. students basically created parts of Amoeba.

Guido was just a programmer and they were using a very primitive Amoeba cluster, which the team had built out of MicroVAX machines. "We wanted to actually prove that Amoeba could be used for a programmer's day-to-day use. We wanted to develop a suite of applications or simple utilities that would be the equivalent of the standard Unix utilities in the Amoeba world," he said.

One of Amoeba's hang-ups was that it was not like Unix. The team had to write its own login application and filesystem and build its own backup tool.

Guido was part of a small team that was writing those applications, after the core of the operating system kernel had been implemented by the other team composed of Ph.D. students.

Guido was fed up because they had only two programming languages to use. "You could write your application either in C or as a shell script. It was like some kind of crufty port of the Unix v7 shell, which was not as powerful as shell scripting should be," he said.

The dilemma was that if you didn't want to do it as a shell script, you had to write a full-fledged C program with all sorts of issues. "If you wanted to read the lines from a file, you had to implement your own I/O library, your own linked list implementation, [and] your own memory allocation. It was all very tedious, and I realized that considering the size of our team and the number of applications we had to write, there was no way we could finish it with either of the two solutions," he said.

Guido started thinking that if there was a programming language somewhere in between Shell and C, then they would be much more productive. "Shell scripts are nice and compact, but they're slow. And as soon as you want series logic or anything involving arithmetic, it's very clumsy and error prone," he said.

At the same time, C was overkill for many of the applications they were considering. "I thought, what we do need is an interpretive programming language that has a compact, concise syntax, but it's more readable and has more features that allow you to write larger programs," said Guido, "A language that's optimized for, say, programs between a hundred and a thousand lines rather than shell scripts, which are limited to ideally five or 10 lines."

Guido combined this work on a new language with his experience on a previous project where he had learned a lot about implementing an interpreted programming language. His previous work was released as the ABC programming language [3], but it never became popular.

"I didn't start from scratch. I started with the idea of what if I took all the good features from ABC but removed all the bad features and replace[d] them with what I thought would make better features," said Guido.

He had initially given himself about three months to do that, which was a large chunk of time. Luckily, the team was not very tightly managed. Guido can't recall, but either the team manager was on a sabbatical or simply let the team decide what they wanted to do. As a result, Guido had a lot of extra time.

"So, in three months while still doing my day job of writing applications for Amoeba, I also in my spare time, weekends, evenings plus some of my date time, I created the first prototype implementation of Python. We almost immediately started using it," he said.

Soon he found that Python had become increasingly popular outside of the Amoeba project. The rest is history now.

Technically, Guido started writing the first lines of code in December 1989. The first open source release was in made in 1991 (the same year as the Linux kernel).

The public version of Python is over 27 years old. During all that time, Guido had been the final arbiter, or Benevolent Dictator for Life (BDFL), of Python up until July 2018.

Leaving the Project

In the June and July of 2018, a sequence of events [4] eventually led to Guido resigning as the Python community's BDFL. The community worked out a new leader and a new governance model for the project. In honor of Guido, the community calls the project's singular leader the Gracious Umpire Influencing Decisions Officer (GUIDO).

In any case, like many creators, Guido was no longer writing much code. "I was still very much directly involved in designing future language features and tak[ing] the temperature of the room and mak[ing] a call on all sorts of tricky issues."

Before the whole drama unfolded, Guido had considered retiring from the leadership role. Some six years ago, Guido said he floated the idea of retiring in a keynote address.

"The interesting thing is that the Python community sort of started with an email where someone wrote what if Guido were hit by a bus," he said. "The possibility of me no longer being available has always been on the mind of the Python community. So, the need for a governance system was not a surprise. Since 2000, we had a pretty formal process for deciding language design issues and also community issues." The process is called Python Enhancement Proposal (PEP), something with which Guido was deeply involved.

Guido had successfully led the project into one of the most widely used programming languages; however, he doesn't consider himself a people person.

"I'm not necessarily very good at dealing with people by nature. I'm kind of geeky and sort of on the autistic spectrum, as they say," said Guido. "I think I've done okay dealing with the community; at the same time, the community has also done okay dealing with me."

Despite the recent changes, he is confident that the community around Python is very healthy. "But for my personal, mental, and physical health, it's important that I step away from all that," he said, "I'm getting older and not always available. You should see how many pills I take every night and sometimes during the day to sort of stay around."

Guido wants to spend less time feeling stressed about the community, because he feels touched by everything that is said and done about Python. He was also aware of the fact that being the project's BDFL meant all of it was going to end up on his plate. "I thought that should be a responsibility that should either be shared or transferred to someone else," he said.

He is not worried about the project. In response to my question about Python being his baby and how you never stop worrying about your kids, he joked that if his son is over 28 and still living in his basement and dependent on him that means he has done something wrong as a parent.

Guido is quite confident about the future of the project. "Some of the currently active core developers are good personal friends that I've known for 20 years or more. So, I am completely confident that with the core developers that we currently have plus the new developers that join the project together we'll be able to weather any kind of storm that might come Python's way," he said.

The Author

Swapnil Bhartiya is a writer and journalist covering Linux and open source for more than 10 years. He is also a science fiction writer whose stories have been broadcast on Indian radio and published in leading Indian magazines. He founded an open source web magazine while living in Europe. Swapnil currently resides in Washington, DC.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs

Support Our Work

ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.

Learn More”>


		<div class=