Show logo
Explore all episodes

Python's Tale

  |  Command Line Heroes Team  
Application development and delivery
Tech history

Command Line Heroes • • Python's Tale | Command Line Heroes

Python's Tale | Command Line Heroes

About the episode

A benevolent dictator for life steps down and changes the course of the Python language forever. Guido van Rossum's "Transfer of Power" memo brings attention to the way programming languages evolve.

In this episode, Emily Morehouse makes the connection between Python's technical extensibility and its inclusive community. Michael Kennedy explains how Python is both easy to learn and powerful enough to build YouTube and Instagram. And Diane Mueller highlights how the Python community took the lead on so many inclusive practices that are spreading in tech—including the rise of community-led decision-making.

Sometimes, a benevolent dictator can get a language started. But Python shows it's communities that make languages thrive.

Command Line Heroes Team Red Hat original show

Subscribe

Subscribe here:

Listen on Apple Podcasts Listen on Spotify Subscribe via RSS Feed

Transcript

On the morning of July 12, 2018, members of the Python community all around the globe woke up, grabbed a cup of coffee and popped open their laptops. Then one by one, they discovered a message from their benevolent dictator. Guido van Rossum, the man who invented Python, one of the world's greatest programming languages, maybe the greatest programming language, had written to them all. So imagine all those Python fans reading these words. I don't ever want to have to fight so hard and find that so many people despise my decisions. I would like to remove myself entirely from the decision process by giving myself a permanent vacation from being benevolent dictator for life. You will all be on your own. I am not going to appoint a successor. What are you going to do. Create a democracy? Anarchy? With that simple but earth-shattering note, Guido van Rossum, the man that the Python community had been following for decades ... Well, he basically just bowed out. His message was titled "Transfer of Power," and it would change the landscape of the Python language forever. But more than that, it called into question how all our programing languages were going to evolve and thrive in the future. Were languages supposed to be run by one Benevolent Dictator, giving them shape and coherence? Or, in our open source world, were languages more like spoken languages, things that grow and react according to the behavior of a whole bunch of different speakers? The Python community, the fastest growing community of any language out there, was about to find out. I'm Saron Yitbarek, and this is season 3 of Command Line Heroes, an original podcast from Red Hat. Last season on Command Line Heroes, we explored a huge stretch of territory, from gaming, to the art of the fail, to serverless development. We even ended up tracking one of NASA's rovers across the surface of Mars. But there is one episode that seemed to really capture everyone's imagination, the story of Grace Hopper. Her work on compilers led to the first high-level programming language, COBOL. We realized afterward that Grace Hopper's story was just one of so many stories of languages shaping the world of development and ops. New programming languages allow us to bridge humans and machines. They open gateways toward amazing new possibilities. So, season 3 is all about those languages. We're talking JavaScript, we're talking BASIC, Go, Perl. And yes, we're talking Python. Python is where our journey begins because by following the tale of Python, we learn a crucial truth about the future of all our programming languages. After Python's benevolent dictator abandoned his throne, the Python community was ... yeah, a bit lost. How do you organize things after a dictator steps down? Somebody suggested they can model their structure after the Presbyterian church. That idea didn't stick. To understand how Python did reorganize and what it means for the future of languages in general, we have to go back to the origin of the Python tale. Well, I'm writing all this code in C and it's getting kind of tedious. That's the man himself, Guido van Rossum, Python's Benevolent Dictator. Van Rossum had worked for years at Amsterdam's famous Centrum Wiskunde & Informatica, where he helped develop the ABC programming language. Here, he's describing the moment he was working in C and saw a need for a brand new language. It still felt like there were lots of bugs and it was just slow going. I was thinking, hmm, if we had an ABC implementation here, I would just write a whole login program in 15 minutes, and then I would move onto the account management program or something, and in C, it takes me a week each. I somehow started thinking about coming up with a way to use some of ABC's features in the Amoeba environment. Here's something we discovered in studying the history of programming languages. There's no such thing as brand new. They all borrow from old languages in order to cobble together solutions. Languages morph, they evolve, they branch. When van Rossum was getting frustrated with the possibilities out there, he imagined a language that could bridge the gap between C and shell programming. C was often overkill, but at the same time, shell scripts felt too cumbersome. There was a sweet spot between the two, and that was a spot that Python filled. When van Rossum first released Python in 1991, it was a revelation, for sysadmins especially. Here was a full-featured scripting language unlike anything that had come before. The first time that I used Python, I absolutely fell in love with it. That's Emily Morehouse, one of five women currently working as a core developer on Python. I think seeing such a stark difference between a first language like C++ and then moving into something like Python, you are really able to see the elegance of the language and the language design itself. You're not necessarily having to deal with any of the hairy implementation details of memory management, and it was such a great way to build things so much faster, and build things for a much wider variety of applications. Key to Python's attractiveness was its extensibility. A language like ABC, for example, is monolithic in design. There's no way for a real community to help define how the language will work. By contrast, van Rossum wanted Python to be open and extensible from the beginning. When approaching software design, you often will have to take either existing software or other software systems, and get them all to work together, and one of the very true values of how you can design software is making sure that it's extensible. It sounds like a no-brainer, but not every language has achieved the level of extensibility that Python had right from the start. The truth is, if a language doesn't have extensibility baked into it, there's a good chance it will end up collapsing under its own weight as it grows. Python has been designed in a very interesting way that allows it to be extensible at its core. You can actually patch different pieces of the system at runtime, so if you want to switch out how modules are imported, or you want to switch out your string types or your integer types, Python allows you to do all these things fairly easily. At the heart of Python's extensibility is something called C extensions, or C modules. So Python has actually been designed to give you an entry point to other languages, and essentially, if you can write a C extension or a C module that can then bridge to hundreds of other languages, you can kind of hack Python. It's all about the user's ability to adapt the language to their own needs. So Python, as Guido van Rossum envisioned it, was never going to be limited to one dictator's vision. His "Transfer of Power" memo was a long-time coming. Van Rossum understood the power of community influence, the power of bringing everyone under a big tent. Yes, he ended up getting called a dictator, but it was benevolent dictator. I think one of the reasons why Python has become such a diverse community is because of Guido. Python has female core developers now because Guido wanted that change to be made, and made it happen himself. Naomi Ceder, the chair of the Python Software Foundation, once gave a keynote where she said, "Python. Come for the language, and stay for the community." And that may be Guido van Rossum's greatest legacy. Not just Python, but the Python community he made room for. He made Python seriously extensible, but it was, in a way, socially extensible, too. It always had room for human additions. You have so many different applications of Python that your community is then, by definition, and by construct, very diverse. So it's really, really broadened the community reach. Emily Morehouse is a core Python developer and Director of Engineering at Cuttlesoft. Once Python hatched, it started to grow like nothing before. I'm looking at a Stack Overflow chart that shows the amount of chatter they get on each language, and Python's line is rocketing. In 2018, more people did Google searches for Python than for Kim Kardashian. All that excitement has it jostling for the title of most-used language against options like Java, C, and C++. So, what's with all that love, anyway? To find out, I caught up with developer Michael Kennedy, who lives at the center of the Python zeitgeist. Michael hosts not one, but two podcasts devoted to Python. Talk Python to Me, and Python Bytes. We'll throw some links in the show notes so you can check them out. Michael and I got chatting about how Python really hit its stride. If you look at the analytics and the surveys and stuff like that, it really seems to be that 2012 is a strong inflection point, and the most significant thing that happened around 2012 is the data science community switched away from things like R, some other stuff, to really focus on Python. Ever since that's happened, there's been even more momentum there, more machine learning libraries. A lot of the popular machine learning libraries, for example, are Python first, and then they'll consider other languages. Yeah, that's been my understanding, too. When I think about Python, I know it can be used for web development; I know a lot of people who still use it to build web apps. But I feel like the heart of it nowadays is more in the data science part of things. What do you think led to that happening? Why did the data science community leave things, or I can't say leave, but move away from things like R? Right, exactly. Where'd that come from? I think there's two things at play in that transition. One of those things certainly has to do with Python being a real, in quotes, "real" programming language, in the sense that you can build simple things. You can build graphs and data analysis tools and whatnot. But you can also build Instagram and YouTube and all these other ... Yeah, literally. Whereas things like R ... Yeah, literally, quite literally. Those are written in Python. So there are other languages they were using, like R at the time, was sort of scientific, statistics type programming language that did data sciencey stuff. But if you wanted to go build a web app to show off your results, well, what are you going to use? Node or Python or ... You couldn't stick with it. Yeah, that's a good point. So Python has this really nice ability that it ... Basically, it's a real programming language. So that's number one. Number two is, Python is pretty unique in this, what I call ... It's a full-spectrum language. What I mean by full spectrum is, I can be a biologist or astrophysicist or something, and I want to explore a little bit of data, I want to load up a CSV file and run some commands and get a picture. I don't need to understand classes, static methods, static main void, compilation, linking. You don't have to go through all the stuff that some programming languages do just to get started. You can do just a couple lines of code, type a command, and it runs. Yet, you can build things like Instagram and so on. It can grow into this absolutely professional system that you can use, but you're not forced to understand all these deep abstractions that are meant for large applications right away. You can adopt them as you need it. Does that make sense? Yeah, yeah. That makes a lot of sense. So we talked about that inflection point around 2012, and when I was looking and doing some research about Python, Python is actually one of the world's most Googled, Google searched, coding languages. Wow. Do you feel like it's really picking up and growing at this point? I do think it's picking up and that it's growing. In those last number of years we talked about, there's certainly more enterprise groups that are using Python. It used to be .NET, Java, maybe some C. That was the answer, and now Python is starting to make its way in, and I think it's getting sideloaded into those environments somewhat, and by that, I mean the data science folks. It's like, well, obviously we're going to use Jupyter Lab and all the cool notebook stuff. That's Python. Data science doesn't have such a legacy code base story. If I'm going to start a new project where we're exploring some ad campaign or some science results, that doesn't have a huge dependency on old stuff. Models and data expire, so it's more easy for the data science world to switch technologies or stay more current. That's a good point. Yeah, thanks. Yeah. And it sounds like it's not going to stop growing anytime soon. It sounds like it's going to keep growing, and the momentum is still going to carry it forward. What do you think is going to influence that growth the most, moving forward? I feel like it's this ball rolling downhill. We have all the libraries and packages you can use with Python. It's a ridiculous number that we have now. A year or two ago, it was 100,000. Now it's 170,000 packages or projects. Wow. You can just, in a couple lines of code, oh, I'd like to do machine learning. Someone at the conference showed us an example of, here's how we're going to train a machine learning system to be given a bunch of faces of people, choose what type of eyes they have. Do they have round eyes, do they have oval eyes, things like that. Apparently this drives the kind of makeup you have or something. Oh, wow. This woman did a great presentation, and she said, here's the code to train this model, and then to ask it questions. And it was 15 lines of code from beginning to end. Wow. And then you have, here's your thing that tells you, given a picture, what your eyes are like. Oh my goodness. The momentum of those types of things, these little, super powerful things, you can just bring in through these packages is ridiculous. Wow, that's so cool. Isn't that crazy? Okay. Let's pause that conversation for a sec. We're going to hear more from Michael later on, but I want to go back and underline something. It's what makes all those amazing Python qualities possible in the first place. The Python community. A defining part of Python's success is that huge, responsive community. At the same time, as we saw with van Rossum's departure, the size of that community can be overwhelming. Imagine having to carry the hangups of an entire language around with you. In a way, attracting such a massive community made the idea of a single dictator for life just untenable. Van Rossum wasn't necessarily prepared for how huge a response his language was going to receive, but, almost organically, community members pulled together Python's mailing list, its newsgroup, its website, and eventually, the process for discussing language changes via PEPs. That stands for Python Enhancement Proposals. So, despite the dictator title, van Rossum was building a language that you could really talk back to, a language that users could help build. I'm betting that despite his frustration at that moment of departure, van Rossum knew that a dynamic community would give more to his language than it could ever take away. My name is Diane Mueller. Diane's the Director of Community Development at Red Hat for the cloud platform. Over the past 30 years, she's witnessed a powerful evolution in the strength of open source communities, and she's been impressed by Python's community in particular. The Python community has done amazing ... They brought in the concept of codes of conduct for conferences, diversity scholarships, all of that sort of stuff. By bringing in the different voices and the different perspectives, we get a better and more innovative project that will live on longer, and hopefully work better for more people. Even the mistakes they made, they handled openly and transparently and through collaboration with the community after seeing that sort of spirit wither away into a bro culture from Silicon Valley and startups, Python felt like coming back home to the roots of where I got started, and the community that had been around back in the day. So it was pretty inspiring and pretty awesome. Inspiring largely because Python redefined what it means to be part of the community in the first place. I mentioned that Guido van Rossum started championing women in the community, even as he stepped down. But he also helped widen the tent in a more general way. Individuals bring a lot more to the table than just code contributions. Mostly community managers and project leads focus on trying to get people to contribute to their project, and in the Python community, people were really highly encouraging you to work on documentation, to help run the conferences, to help promote diversity. There were all sorts of other things you could do to be part of the Python community. So that idea, that contribution isn't just about code, it's about participation, it's about learning and education, and it's a lot about documentation, was the way into community for a lot of people. Of course, we've still got a ways to go. Meritocracy is still very technically focused. No one's going to doubt that. But I think you also see the belief that community management and community managers ... We're skilled parts of a community, as opposed to just the person we hired to create our events for us. For Diane, van Rossum's decision to officially abdicate his dictator role is part of a global shift. It's moving away from older, monolithic kinds of language-building. I think we might have moved on from that model, though every once in a while, I hear someone say, yeah, I'm the benevolent dictator for life of this project, and I'm like, yeah, I don't think so. Diane Mueller is a Director of Community Development at Red Hat. By the time Guido van Rossum sent that jaw-dropping "Transfer of Power" memo, the Python community was a powerhouse unto itself. It's common for projects to adopt new governance models as they grow, and in many ways, as we've seen, these folks were ready to take charge of their own language. But I still want to know, how exactly did that pan out? What happened after van Rossum stepped away. Let's go back to our conversation with Michael Kennedy to get some answers. ... back and away from Python, how has the community been doing without him? Well, the community has been okay, but we've been in ... at the highest level, kind of a stasis. The runtime and the language just basically had to go into a coma. There were proposals for interesting things, and they were sometimes complicated, but sometimes really simple. Like, hey, wouldn't it be great if we could ship Python yearly instead of every 18 months, so it's a little more predictable, tied around the yearly conference, things like that. Sure, yeah. That couldn't be decided, because there was no way to make decisions after he stepped down. He basically said, I'm going to go on vacation. This is up to you guys, you have to figure out how to keep running this. I'm not even going to tell you how to decide how to keep running it. This is your problem now. Wow. That sounds dramatic, but check this out. Remember those Python Enhancement Proposals, the PEPs that allowed the community to give feedback? Well, PEPs to the rescue. There was a series of them trying to determine new governance models for the Python community. Well, the big news is they've decided on one of those, called the Steering Council, which is five people—I believe they all have equal votes—and they've recently elected those five. So instead of it being on one person's shoulders, it's on all of them. One thing that I think is really nice is that we have Guido van Rossum as one of those members. He stepped away and said, I cannot be the single source of ... all the pressure of people wanting changes and feedback. But he still, he didn't completely run away from the language. He's still a core developer, and he's on the Steering Council. So he still has some say, but he doesn't have to take it on entirely, which is pretty cool. I'm wondering how that works out in reality, because I feel like if I'm on the Steering Council and I'm sitting next to the creator of the language, I'd probably tend to agree with whatever he says. Right, exactly. All things being equal, ties go to Guido. Yeah, exactly. I don't know. I do know some of the people on the Steering Council, and they've been constant contributors and developers, maybe even to ... at a code level, more so than Guido for 15 years. So they're also pretty deeply involved and pretty opinionated, so- And invested. Yeah, certainly invested. So I feel like it's going to be okay. Also, I feel like Guido's probably like, I still want to be involved, but he's probably done trying to impose his will on people, because that will just put him right back into the same ... I think he's probably going to take a more relaxed position. Okay. I'm wondering, do you feel like this model of having a benevolent dictator for life (BDFL), is that model almost required at the beginning of a language, in order to get it up and running, in order for it to be radical and have these breakthrough advances? I do. I think stuff, mostly design by committee, is not super. So in the early days, so many decisions about, how does the language work? Does it use semicolons? How does it do this, does it do that? All that stuff is really hard to committee decide, but Python is over 25 years old now. It's got so many people involved in it. I think now, that this is a pretty good model. They also debated whether or not there should just be a replacement BDFL, who do we elect now to be our king? They decided against that, though. Okay. If that BDFL position is so important, I'm wondering, how long does a community need one? It sounds like Guido decided on his own, hey, this is too much. This is not sustainable anymore, I'm not doing this anymore. But if it wasn't his decision, I'm wondering, is there an optimal time where that person should step down and we should move to something a little bit more democratic? Yeah, there has to be, right? I think that there probably is. It's hard for one person to still be completely connected with the pulse of the community and technology and the new trends, let's say, 40 years out. That would be super difficult, so there's got to be this switchover. I don't really know where it is, but I feel like it's got to be after you have other people doing more work than the BDFL is doing. More core contributors and developers, and you're just like, well, I was on vacation, and look at all these new things that happened, and it survived. Something to that effect. Yeah. It's almost like the community will tell you when it's ready. Right, exactly. The Python community is still taking on a life of its own, so that's where we'll leave them for now. Michael Kennedy is the host of two podcasts that'll keep on tracking their progression in the meantime. You can check out Talk Python to Me and Python Bytes. Have you ever heard the story of Solon, the guy known as the lawgiver of ancient Athens? Pretty cool guy. After Solon established a constitution for Athenian democracy, he went off into a state of voluntary exile. That's because he knew there was a danger he'd become a tyrant if he stayed in power. I guess Guido van Rossum is a latter day Solon, giving us decades of standard practice, which is a bit like a constitution. Here's a guy who set up a brilliant programming language, a language where an open source community could really make it their own. Then, he also gave them that transfer of power moment, where he told them, you're on your own. I'm no longer your dictator. He made sure that it had to be the community, not himself, that carried the Python mantle forward. In a way, Guido van Rossum's "Transfer of Power" memo is a manifesto for all programming languages in an open source world, because as any language grows its community, it ends up taking on challenges that only the community can solve. In season 3 of Command Line Heroes, we're doing a deep dive into the world of programming languages. Languages gain influence because they solve a new problem in some powerful new way, and for the rest of the season, we're uncovering the superpowers baked into JavaScript, Perl, COBOL, Go, and so much more. Next episode, we'll learn the story of BASIC, and what it teaches us about everybody's first language. If you want to dive deeper into Python or anything else you've heard on this episode, head over to redhat.com/commandlineheroes. Until then, I'm Saron Yitbarek. Keep on coding.

About the show

Command Line Heroes

During its run from 2018 to 2022, Command Line Heroes shared the epic true stories of developers, programmers, hackers, geeks, and open source rebels, and how they revolutionized the technology landscape. Relive our journey through tech history, and use #CommandLinePod to share your favorite episodes.