Summary
The Python language has seen exponential growth in popularity and usage over the past decade. This has been driven by industry trends such as the rise of data science and the continued growth of complex web applications. It is easy to think that there is no threat to the continued health of Python, its ecosystem, and its community, but there are always outside factors that may pose a threat in the long term. In this episode Russell Keith-Magee reprises his keynote from PyCon US in 2019 and shares his thoughts on potential black swan events and what we can do as engineers and as a community to guard against them.
Announcements
- Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
- When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
- And to grow your professional network and find opportunities with the startups that are changing the world then Angel List is the place to go. Go to pythonpodcast.com/angel to sign up today.
- You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Upcoming events include the O’Reilly AI Conference, the Strata Data Conference, and the combined events of the Data Architecture Summit and Graphorum. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register.
- Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email hosts@podcastinit.com)
- To help other people find the show please leave a review on iTunes and tell your friends and co-workers
- Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
- Your host as usual is Tobias Macey and today I’m interviewing Russell Keith-Magee about potential black swans for the Python language, ecosystem, and community and what we can do about them
Interview
- Introductions
- How did you get introduced to Python?
- Can you start by explaining what a Black Swan is in the context of our conversation?
- You were the opening keynote for PyCon this year, where you talked about some of the potential challenges facing Python. What motivated you to choose this topic for your presentation?
- What effect did your talk have on the overall tone and focus of the conversations that you experienced during the rest of the conference?
- What were some of the most notable or memorable reactions or pieces of feedback that you heard?
- What are the biggest potential risks for the Python ecosystem that you have identified or discussed with others?
- What is your overall sentiment about the potential for the future of Python?
- As developers and technologists, does it really matter if Python continues to be a viable language?
- What is your personal wish list of new capabilities or new directions for the future of the Python language and ecosystem?
- For listeners to this podcast and members of the Python community, what are some of the ways that we can contribute to the long-term success of the language?
Keep In Touch
- BeeWare
- freakboy3742 on GitHub
- @freakboy3742 on Twitter
- Website
Picks
- Tobias
- Russell
Links
- PyCon 2019 Keynote Presentation
- Perth
- Western Australia
- Django
- BeeWare
- RedHat
- Emacs
- Vim
- Lisp
- Glyph
- Twisted
- Cal Henderson
- Flickr
- Slack
- Black Swan
- Nassim Nicholas Taleb
- PyCon US
- Ewa Jodlowska
- Python Software Foundation
- Swift
- JavaScript
- Django Girls
- Briefcase packaging tool
- PyPy
- Web Assembly (WASM)
- COBOL
- Tidelift
- Cricket unit test runner
The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
Hello, and welcome to podcast.init, the podcast about Python and the people who make it great. When you're ready to launch your next app or want to try a project you hear about on the show, you'll need somewhere to deploy it. So take a look at our friends over at Linode. With 200 gigabit private networking, scalable shared block storage, node balancers, and a 40 gigabit public network, all controlled by a brand new API, you've got everything you need to scale up. And for your tasks that need fast computations, such as training machine learning models and running your CICD pipelines, they just launched dedicated CPU instances. They've also got worldwide data centers, including a new 1 in Toronto and 1 opening in Mumbai at the end of the year. So go to python podcast.com/linode, that's linode, today to get a $20 credit and launch a new server in under a minute. And don't forget to thank them for their continued support of this show And to grow your professional network and find opportunities with the start ups that are changing the world, then AngelList is the place to go. Go to python podcast.com /angel today to sign up. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis.
For even more opportunities to meet, listen, and learn from your peers, you don't want to miss out on this year's conference season. We have partnered with organizations such as O'Reilly Media, Dataversity, and the Open Data Science Conference with upcoming events, including the O'Reilly AI Conference, the Strata Data Conference, and the combined events of the Data Architecture Summit in Graphorum. Go to python podcast.com/conferences to learn more and to take advantage of our partner discounts when you register. And visit the site at pythonpodcast.com to subscribe to the show, sign up for the mailing list, read the show notes, and don't forget to visit the site at pythonpodcastdot com to subscribe to the show, sign up for the mailing list, and read the show notes. And to help other people find the show, please leave a review on iTunes and tell your friends and coworkers. Your host as usual is Tobias Macy. And today, I'm interviewing Russell Keith Magee about potential black swans for the Python language, its ecosystem, and community, and what we can do about them. So, Russell, can you start by introducing yourself?
[00:02:12] Unknown:
Hi. So I'm Russell Keith. I am a Perth, Western Australia resident, born and bred. I have been an active member of the Python community for about 13 years now, 13, 14 years. Got most of my style or my public reputation, I got known through, through the through Django being 1 of the early contributors to Django. I've since I continue to be a part of the Django community. Most of my my open source efforts have sort of migrated over time towards other things, which is sort of what brings me here today, I suppose. And do you remember Hey First got introduced to Python? I would have first seen it in the late nineties in the 1.4, 1.5 sort of time frame. At that point, it was mostly a scripting language that had wonky syntax that was used as a configuration language for Red Hat, and I sort of saw it had the sort of visceral reaction everyone does when you've learned c and all of a sudden this white space sensitive language appears, and it didn't immediately take. But after a while of using it, it kind of and I had well, a while of using it and also a while of dealing with other code bases that were not whitespace significant, but variously had or hadn't applied good formatting rules. In particular, at the time, I was writing a lot of, like professionally, I was working with Java, and you could get the Java standard library or the source code for the Java standard library, and just the internal formatting of it was just atrocious.
And all you sort of had this sudden realization that if this code had been written properly, it would have been in the indented, and Python's just saying as a formalism, we're going to use that indentation as the thing that you have to do in order for the code to run. You never see badly formatted code again. And that was sort of light bulb moment went on that, you know, this there there is a there is value here in if the language makes you do something, then it's going to be done every time. It doesn't become an optional feature, and that sort of design aspect became very, very appealing. And I've got a lot more involved in using Python after that. Didn't end up using it professionally until or using it in a serious capacity professionally until, I got involved with the Django project, which was an interesting little series of coincidences where I was tinkering with a toy project in my spare time, discovered Django, got involved with Django, and then the work project that I was on just turned out to be a good match for a web service. And then working on Django was something I could then actually validly use work time to to contribute. Did you ever end up finishing the side project that led you to Django? Oh, no. No. No. No. No. That 1 that 1 is gonna continue until the day I die, I suspect. It was, it, interestingly, does actually have a lot of tie ins to the things that I'm dealing with or that I'm working on now with with the BWOE project and in its content management and editing. I've been on this long search for the perfect text editor since I started writing serious term papers and theses and stuff back in university.
I'm still not there. I at some point, I'm going to just admit defeat and realize that it's not going to happen, but amazing. Other interesting things have happened along the way. So
[00:05:24] Unknown:
You you mean emacs and VIM don't fit the bill?
[00:05:26] Unknown:
So and this is the it's it's interesting you say that because emacs for me almost is the right idea. Like, it is a it is a very close embodiment to what I'm to what I've sort of got in the back of my head here about this idea of a programmable editor where the content is something you can manipulate through the editor itself. The difference is that there's 2 significant changes between what I what I would like to see on top of Emacs. 1 is to use a language that isn't quite so esoteric as Lisp, but would like to be this thing to be, managed using Python. You better script it and control it using Python.
And the second is that I have a $5, 000 laptop with a 4 k display attached to it. I would like to be able to use the native widgets and native controls of my operating system, please, not reinvent what the file menu is supposed to look like because in 1970 something, someone decided what a user interface was gonna look like, and therefore, that's what my application has to look like. Now I wanted to I wanted to be a native application in the operating system that I'm in using all the capabilities of my operating system like tree widgets and file widgets and so on, not try and force everything into a desktop beta 4 from the 19 seventies.
So, yeah, you know, the there is a philosophical kind of background in what EMACS is doing, but it's there's sort of an evolution that I would like to see happen. There's a there's another on layer on top of that is that I I want I don't wanna just be, you know, 80 by 25 characters of text. I actually if I say something's bold, I want it to look bold. I want it to be a larger font, a bold font on the screen. That is yeah. I I got involved I originally I got involved with Django because I thought that, hey. This web thing might actually be useful to as a way of delivering this, which I suppose in some regards, we kind of have seen with with the way that, like Google Docs and and Dropbox Paper and things like that have emerged. But, yeah, I have I haven't,
[00:07:24] Unknown:
ever really got beyond the tinkering phase with that project. I've built lots of other things along the way, like Django and Bware and so on. Yeah. It's funny how that ends up being a recurring theme where glyph ended up inventing Twisted because he wanted to write a game that never actually got finished, and many other people who have ended up finding Python because of some side project that they've been abandoned in favor of other things that they discover. Yeah. And and even outside of pipeline, Cal Henderson is is, originally was the creator of Flickr and is now the
[00:07:53] Unknown:
ceoct, I can't remember, of, of Slack, both of which are essentially well, Flickr was a way of managing his game resources that were photo or there were there were images, and Slack was a was a chat forum for for a game, and they've kind of all both turned into massive huge things all on their own. Eventually, I'm sure Cal will finish writing his game he's been working on for 20 odd years at this point. But, yeah.
[00:08:16] Unknown:
In any case, the main reason that I invited you here today is so that we can talk about your PyCon keynote. But before we get into that, 1 of the main themes that you touched on there is the idea of a black swan. So I'm curious if you can start by
[00:08:32] Unknown:
explaining what that term means, particularly in the context of the conversation that we're having today. Sure. So, the black swan is a sort of a well, is an animal that is close to me geographically and to my heart geographically. It's the state bird of Western Australia. The the the reason it connects in is that it's become a bit of a metaphor, for a for a larger idea after that. In the 1600 or part of the 1600, there was a very firm belief that all swans were white. There's there's a Roman phrase, a Latin phrase that I I can't put my finger on right now, but it's basically saying like, it uses as an example that but we owe that all that all swans are white. And then Dutch explorers or Dutch traders who were accidentally sailing around and bumping into Western Australia discovered Perth and discovered black swans, and all of a sudden, the world's idea of what a swan could be changed overnight.
Now there was nothing particularly radical about the idea that a bird could be black. There are other black birds. There just wasn't any black swans that we knew about. And the fact that we hadn't seen them yet didn't mean they didn't exist. So, there's a essayist and statistician and economist named Nicholas Nassim Nicholas Nassim Taleb who wrote a book in the, late 19 nineties, early 2000, can't remember, where he used the black swan as a metaphor for world changing events, saying things that have always been true or suddenly the the world changes in some radical way. But as a result of this new observation, this new understanding of the world, the way everyone sees the world changes.
There are certain events that have occurred in the world that have just radically changed what everyone thinks about about how the world operates. The computing industry is is a great example of that. We had in the 19 seventies, we had the microprocessor revolution when all of a sudden Apple and IBM made home computers. And all of a sudden, what people think of as computers gradually changes. Apple did it in the, did it again in sort of the early 2000 with the iPhone. They it was this world where everyone had these brick phones. You know, you had your Nokias and your Motorola and whatnot. And iPhone Apple came out with the iPhone, radically changed what everyone thought a phone was, and the world has never been the same since.
So the the idea behind black swans, though, is is not to say that the world is gonna radically change. It's that it's the things that you don't expect that will completely change the world you're in. The I the idea that you need that there are thing sometimes your assumptions are incorrect because you haven't thought about all the consequences of your assumptions. And then the only way to really protect against the future is to really challenge everything that you think about the world and why everything you think about the world is the way it is and why it must be the way it is. Because if it ever ever changes, it could completely upset the way you make money or the way you way you operate. In the context of Python, Python is today a popular language. It is a wide spread language. It's used in education. It's used, for web programming. It's used for all sorts of things, used, you know, used for data science.
But why is it going to stay that way? It's not inevitable that Python will always be a popular language. So what's gonna change that? What could change that? What how would could the industry change in such a way that Python is no longer popular or that changes the changes the focus of people who are currently using Python to use another language. And so the conversation that I tried was trying to trying to get started at at this year through my keynote was to think about the future of Python. Where is Python going? What are the strategic risks to Python? Things that may not have happened yet but could happen, and if they did happen, would radically change the Python ecosystem that we know about today.
And I, you know, I highlighted a couple in my keynote, but I think there are even just the basic process of thinking about where we are as an ecosystem, where we are as a community, what could change, how computing could change, how programming could change, how society could change such that the Python that we know today could be at risk. And yeah. So and that was that was kind of the the the black swan in the context of Python is to think about how what what what things do we currently believe must always be white in the Python community? And if someone turned up tomorrow with a black version of it, would completely change Python's viability as as a programming language.
[00:13:28] Unknown:
A catalyst for choosing this particular topic at this particular time as the, way to set the stage and set the conversation for the overall conference, which is the largest gathering for the Python community on an annual basis? And also just I'm wondering too if you were selected ahead of time to present the keynote and then you chose the topic or if you submitted the topic and then it became the keynote? So this wasn't a submitted talk that got turned into a keynote. I I was approached by by Ernest,
[00:14:00] Unknown:
3 or 4 months before the the event just to say, hey. You know, are you interested? Would you be would you would you be interested in giving a talk? It the the talk that I gave was a completely new presentation, new set of ideas. This is the first time I spoke about black swans as a metaphor, for this whole thing. But I this is sort of about a a general subject area that I've been speaking about for a while, about from a technical perspective, what are the risks to the Python community, and from a social perspective, what risks exist to our community continuing to to survive and thrive.
So this was it was ideas that I have presented at other events and other so I've been on the keynote circuit for a while. I've been around a number of regional pythons, over the last couple of years telling a version of this story, but this was a and because of that, you know, Ernest knows me, knows my work, sort of invited me to take that and say, hey. Do you want do you want the big stage for a bit to to talk about these ideas? And, yeah, I I think it was very it was a very strategic thing from from Ernest's part that, you know, this is it's the opening keynote. This is an opportunity to both in part inspire change or at least inspire the discussion that could possibly lead to change.
I will leave it to others to decide whether I've, met that challenge, but, it was certainly an honor to to be given the opportunity.
[00:15:23] Unknown:
And after you gave the keynote and as you engaged with people throughout the rest of the conference, I'm wondering what sort of effect or impact you observed from the talk that you gave and some of the conversations or notable or memorable reactions that you received as feedback over the remainder of the weekend and into the sprints?
[00:15:46] Unknown:
So, I mean, I got a a lot of a a lot of people coming and saying, hi. Thanks. Love your keynote kind of, you know, the the the sort of the polite, ongoing, which was, you know, very very nice to hear the people who enjoyed the keynote, and it's very easy to just kind of let the keynote or let let it let it talk go and just, you know, not not not give it any more thought. But, evidently, obviously, people were giving it thought and we're we're the ideas were percolating in the back of their head. I there's a couple of stories that I that I've sort of aftermath stories that I that I have enjoyed. 1, I I haven't actually confirmed it with her, but, Eva apparently, cried when I I think when I was talking about the, the fundraising for the PSF, which, I wouldn't say I would say it made me happy that I made her cry, but it's sort of by the sound of it, it was a sort of a happy cry in terms of, that I was saying things that she's been wanting to say has been trying to say or trying to get people to say for a while. So that was very I mean, it's weird to say I was I was happy I made Eva cry, but, you know, it was I'm glad I elicited a reaction that she was she was sympathetic to. The other side of that is that is sort of the the aftermath. Like, the the I heard, apparently, the PSF was inundated with people wanting to join as members or or donate to the fundraising drive in the immediate aftermath of the talk. And I did have a couple of very good conversations with a number of people about fundraising in the Python ecosystem and how we fund the work that we think we need needs to be done in the Python ecosystem.
The the disappointment's the wrong way, but kind of we're kind of wrong way to describe it, but the sort of the the aftermath the the long term effect has not been quite what I would have hoped. Or at least if it is, it's it's a slow burn. It hasn't sort of we haven't sort of seen a large scale response that I would I would have liked. You know, the I I gave a I gave a talk. I got a lot of feedback from people saying they they like the talk. They enjoyed the talk. I I thought I tried to make an impassioned plea that we need fundraising. Some people went and donated straight away, but the PSF had to extend their fundraiser twice to meet their funding goal of $60, 000. And that, for me, is a is a concern. And that's 1 of the fund 1 of the things that I was little flagging in my in in my in my talk is that these things that we build or these things that we use in the Python ecosystem take resources, and $60, 000 at 1 level sounds like a lot of money. And, you know, it is a lot of money. It would be a lot of money to a lot of people, but it also doesn't do a whole lot. Like, if you think about the the salary of an engineer, $60, 000 doesn't get you very far of a well trained engineer in the United States in particular. So the sort of the the the disappointing thing that I take from it is that the.
If there has been an effect, it certainly is I I hope there is a longer term effect that we might see, but I I I don't think I have seen the needle move significantly in terms of addressing the resourcing need, on a larger scale that or at least on the scale that I think it kinda needs to be addressed, to
[00:18:41] Unknown:
to to really address the problems that I was kind of describing oh, the technical problems that I was describing in that in that talk. Yeah. I'll agree that it was disheartening to see the fact that the PSF needed to extend their deadline for their fundraiser so many times, and I did my best as well to try and assist in their efforts. But 1 of the other things that I noted throughout the remainder of the conference is I happened to chance across a few other conversations of notable people in the community talking about different approaches to either obtaining large sums from various corporate sponsors for being earmarked to different aspects of research and development as well as different potential approaches in terms of community, organizational either creating new organizational elements or, appending to the Python Software Foundation as a means of trying to accelerate some of the r and d work that you're advocating for. So in that regard, I think that your talk was successful. But I agree that the immediate impact isn't as large or significant as we might have hoped. But I think that it has led to some other ongoing conversations
[00:19:50] Unknown:
that may yet prove to bear fruit and have some significant impact down the road. Yeah. And I suppose that is that is sort of the long term. Like, a lot of these things, institutional wheels move slowly. You don't just sort of wake up 1 morning and decide you're gonna donate $1, 000, 000 to a new project. So, you know, possibly a little bit overoptimistic to believe that the world was gonna turn just because I stood up on stage and said it should turn. So, yeah, yes. I think that that having the conversation having the conversation start is an important part of the process. I'm impatient. I wanna I wanna see stuff move, please. So yeah. But yeah. It is it is definitely it is definitely, comforting to know the conversations are happening. I mean, I think I think they already were happening. Maybe maybe it was slight focal focus point, but having an occasion to to speak about it and have have people speak about it at length during PyCon. There are definitely some interesting ideas that are out there, and a lot of those are gonna face some like, there are organizational problems, and and just throwing money into a community isn't gonna make those problems disappear. If anything, it'll make them or make some of the problems worse because you've gotta work out how you're gonna manage that problem. Like, there's even if tomorrow a company turned up and gave the PSF $10, 000, 000, how do they spend that money? Who are they gonna what are they gonna spend it on? Who decides what it gets spent on? Does the company that gave you the money have control over what it gets spent on?
These are all kind of open ended questions that are and they are the hard questions as well, and I don't wanna underestimate that for a second. The the setting up the infrastructure that allows money to be spent in a way that gets that that removes the appearance of bias or removes the appearance that you can buy influence on the PSF or buy influence on the Python development process is just as important as having the money as well. So, yeah, there is definitely a con an ongoing conversation that
[00:21:38] Unknown:
needs to happen. Yeah. And from the sort of outside perspective of Python continuing to rank incredibly high on these different language indexes of popularity and, the fact that it has become so widespread in so many different domains. Some people might say that this conversation doesn't even need to happen right now because the Python community is so successful and vibrant, and it's producing new capabilities all the time. And so I'm wondering what it is about the current point in time, both in terms of the community as well as the larger ecosystem of technology and software that means that this is the right time to be having this conversation and planning for the future of Python versus just sort of riding the wave that is the popularity of the language and its community.
[00:22:25] Unknown:
I suppose I would argue that we, to some extent, have already started to see what happens if you take that approach. I am a very proud member of the Django community, but the focus of Python over the fa past past couple of years, the focus of, of web technology generally has moved from a place where you would have said Python was 1 of the premier languages for building web tech to being almost difficult to recommend why you would use Python. The the the web space has very much moved on and is very much a JavaScript world now.
Now we can argue whether that's a good thing or a bad thing, but just because Python was successful in the web space did not mean it was going to remain successful forever in the web space. The web changed, and Python didn't have a good story, and so people didn't hang around the Python ecosystem for that. Now I don't think we've lost that battle entirely. I don't I don't think we have completely ceded all ground to, to the to to the JavaScript community in the web. I think there is still a lot of stuff we can do in that space, but we are starting to see we're starting to see the effects of that shift in the focus of development moving into more into JavaScript tooling than it is into Python tooling in Webtech.
The there are analogies in similar spaces elsewhere, Other other domains where Python currently has has some semblance of supremacy, like, data science is a good example. Yes. We are currently Python is a very widely lang used language in data science. It does not mean that it will always be a well used language in data science. And just expecting that Python will go along for the ride and nothing else will come along means that we're going to miss opportunities to cement and ensure Python's long term long term success. Now Apple is currently throwing a lot of money into Swift. There are there is a lot of money in the Java ecosystem. There is a lot of money in the JavaScript ecosystem, all of which looking to acquire pieces of the broader computing market that Python currently considers to be its domain. If we are not pushing back and trying to expand what Python can be used for and to ensure that Python remains the best option in those ecosystems or in the exist in the ecosystems where it already has superior has some semblance of super supremacy, then longer term, what reason do we have to believe that Python will continue to be the premier language for data science? It certainly won't ever completely die away, but will there come a time where people turn to JavaScript or Swift or some other language as the primary language for doing doing data science work? It's entirely possible. It's just gonna take time and the development of those individual ecosystems and those ecosystems satisfying other requirements.
What are those other requirements? That's then the $1, 000, 000 question. I have a few ideas around the fact that Python doesn't have a good story on mobile. Python doesn't have a good story in the web. JavaScript has a really good story in the web, Java has a JavaScript has an okay story on mobile, Swift has a really good story on mobile, has a really good story on desktop for Mac, it doesn't have as good a story for Android, but, you know, that's a space where it could move in. And these are areas where Python is not currently looking. Python is not having doesn't doesn't have a good story on mobile. Python doesn't have a good story for application distribution. If we don't develop 1, then people are going to pick the tools that are best for what they need to do. And if what they need to do is build an app for their phone, they're not gonna learn Python. They're gonna learn another language and then discover that, oh, this other language has really good data science tools, and then they won't learn Python for data science either. So, yeah, that that's kind of the the big strategic risk that I see is not paying attention to what else Python could be used for and developing those capabilities because they could be useful and letting other ecosystems claim territory that Python would have historically called its own. And 1 of the other risk factors
[00:26:32] Unknown:
in that some of these other domains are either gaining ground where Python was previously very popular or new areas that have been developing, such as mobile, where Python hasn't yet established itself, particularly because a number of those areas, notably mobile and the web, are some of the first interactions that people now have with computation and where they might decide that they actually want to get involved in programming. And so because of the fact that the default choice isn't Python, it means that there is a reduced probability that they are going to end up choosing Python at any point in their computing career, and then we don't have newcomers to the community to replace people who are aging out or retiring or moving on to other projects or disciplines or whatever the case may be that causes them to move away from Python. So we need to be able to make sure that we are maintaining and growing the people who are using the language as well as increasing the capabilities of the language itself in some of these new domains to make it a viable choice for somebody who is coming into the area. Yeah. No. I completely agree. Like, you only gotta cast cast your minds back about 20 years. Visual Basic was a huge language because it was the language that was available on everybody's Windows computer,
[00:27:49] Unknown:
and it was good enough to do most of what, you know, your average average everyday non expert programming user needed to do with their computer. They could they could move their Word documents, move their Excel documents, write a little script to interact with the database. They could do though they do that kind of thing if they were so inclined, and a lot of programmers never moved beyond learning Visual Basic. Python has a really good case to make as being a first contact language. You know, the success of programs like Django Girls and, you know, using using Python as a language of first contact for programming in in schools and education context, it proves that Python is a good language to teach someone how to program in. It is used in a lot of domains or it can be used in a lot of domains, so it has the capability to do a wide range of things. But if nobody has any reason to pick it up in the first place because it's gonna be their 3rd programming language, then why are they gonna pick it up at all if they can if they can do what they need to do with JavaScript or with Swift or with, you know, another another language somewhere else? And so beyond some of the risk factors and potential black swans that we've touched on, I know that you had also identified some other potential areas that we should be focusing on in your keynote, and I'm sure that you have ideas on areas beyond that that you didn't get a chance to cover. So I'm wondering, what are the main domains or problem spaces that you're thinking of and focusing your energies on and areas that you think other people should be paying attention to as well? So the 2 that I like, the obvious ones, obviously, like, being able to work in mobile, being able to work in web, they are they are 2 that I've obviously made a very big case for and through some of some of the BWIP projects. 1 of the ones that doesn't get as much attention out of BWIP, but I think is probably probably 1 of the most immediately deliverable, is a Python packaging story that giving your code to someone who is a nonexpert user.
If I write a pygame right now, giving that pygame to someone else is a non trivial activity. It shouldn't be. Giving your code to someone else and not having to teach them how to install a Python installer and then how to set up a virtual environment, you know, that's not using software. Using software is me giving you a zip file, you unpacking it, and starting the program, or me giving you an installer, and you run the installer, and the program runs. There have been any number of little tools along the way that have kind of been in this space, but we we don't have a good story, a good reliable story for packaging your code as an app that you can give to someone else, in particular, in this era where an app means something that's in an app store, you know, either on on the Microsoft App Store or on the Apple App Store or whatever. That packaging things as stand alone apps is increasingly important, an area that I think we we really do have to pay attention to.
The the good news is also it's not a it's it's a relatively I wouldn't say it's an easy thing to to address, but it is a much smaller target than trying to get Python to run-in the web or trying to get Python to run on a mobile because all we've really gotta do is work out how to describe the Python that is already running in a way that I can give it to somebody else. And the briefcase project is part of that, part of the word we sort of we're looking at that as a as a as a general task. Another big 1 that I'm it connects into a lot of the work that I'm sort of doing with Python on web and Python on mobile is the the sort of optimization of the runtime of Python. Now PyPy, the Python JITA interpreter, has made a lot of work in this sort of in this space. But PyPy isn't the only you know, that that is sort of it's its own runtime machine. It does a very good job at being being an optimized interpreter, but it has the way Python is currently developed is very much there is CPython, and then there are a bunch of other people who do Python like things.
And that c focus is problematic for a lot of the optimizations and improvements that kind of need to happen. Every time that the c, you know, the CPython, implementation of Python decides to take a module and implement it in c for speed or performance reasons, that's great for CPython, but makes the rest of the ecosystem looking at ways of making Python run faster a little bit more difficult because now is 1 more piece that we have to reimplement. There have been a lot of improvements to Python's bytecode over the last couple of versions, between, like, 3.33.8.
There have been some huge steps in in optimizing various pieces of bytecode operation and what But if you look at, JavaScript as a as an analog, JavaScript has gotten orders of magnitude faster to, like, almost near native performance in some in some operations because so much effort has been put in put into jitting their, their virtual machine. Now that's kind of PyTorch, I suppose, is kind of the the analog there in terms of what is possible in a Python space, but it's being done external to Python. It's not really being done as part of the core of Python. The core of Python is very much c c focused and CPython focused. And outside that, you know, there are there are ecosystems where if you want to run-in a Java virtual machine, you have to run-in Java bytecode, and nothing that CPython does makes that any easier. If you wanna run-in WASM, if you wanna run-in in the web, then you need to be targeting the WASM binary format and the WASM virtual machine or the sort of operating virtual machine. Performance is certainly something that hasn't been ignored, but it's not something that has been a focus of development in the same way that has been in other ecosystems is something that's a concern. And that and that sort of spills out when 1 of the major areas where Python has a current foothold is numerical processing, and numerical processing at scale is all about performance. So NumPy is effectively having to kind of work around the fact that CPython doesn't optimize and vectorize operations really, really well. Now, you know, it obviously does work. It does work really well. But if you had first first level baked into the language, baked into the compiler, baked into the interpreter support for these numerical constructs, for these optimized CPU constructs.
That has a lot more potential, and that's what we are seeing in the way that the that, JavaScript virtual machines are approaching the problem. That's that Swift is approaching the problem. They're they're able to they are approaching the problem at a much low level in terms of looking at performance, and that that that is that is a strategic risk to Python as a whole. And
[00:34:12] Unknown:
given all of these potential risks, and the current state of computing, and the fact that there are new languages coming out that are focusing on some of the same problem spaces that Python has to date considered its domain. I'm wondering what you currently maintain as your overall sentiment about the potential for the future of Python.
[00:34:34] Unknown:
So I it depends when you ask me. Like, I I I I I will swing wildly from 1 to the other. On the 1 hand, the worst case scenario, Python isn't going anywhere. Python is now a sufficiently large, sufficiently embedded language in enough ecosystems that I have no doubt that I will be able to live out the rest of my career as a Python programmer if only because there will be systems that need to be maintained long into the future. You know, you don't get to be, you know, on those list by Tiobe lists of most popular programming languages unless you are in some very large systems in some very large places. And once you're in large banking systems and large insurance systems, you can't get that stuff out. You know, we are still maintaining COBOL code, and nobody learns COBOL anywhere unless they're learning how to maintain an old COBOL codebase anymore. So there you go. There is an extent to which Python is at this point, at very worst case, the next COBOL. This is a language that is going to be around forever. It is going to be maintained for a very, very long time. It's going to need to be maintained for a very, very long time. Some of that maintenance may end up being Python 2.7 code until, you know, the until the heat death of the universe just because it's going to be so hard to to unembed that last little bit of Python. So that's that's sort of, I think, is the worst case scenario. Python's not gonna go away. It will just cease to be as vibrant as it once was. The best case scenario, I think, has Python the equal as if not better of of JavaScript on the web. It has is the equal if not better of, all the languages that the vendors are pushing as their language of first preference for for app development.
If we can marshal the resources to provide tools that are up to the task, and I think we're entirely capable of doing it, it's just a it's purely a matter of the resources to do the development work, then I think Python has a very, very rosy future. Python Python is a very expressive language. It is a very clean language. It's a very easy to teach language, and yet it remains a very powerful language. It is successful as a language today because of those properties. And if it if it falters, if it fails in any capacity, it will only be because we haven't been planning for where the future of computing is going,
[00:36:51] Unknown:
not because of some inherent failing of Python as a language or as an ecosystem. And outside of the fact that a lot of people have sentimental attachments to the Python language and its ecosystem and community, but purely thinking in terms of the fact that we're developers and technologists. At the end of the day, does it really matter whether or not Python continues to be a viable language, or if it fades and is relegated to be the next COBOL because, you know, 1 of the things that we do as developers is is that we learn new things, we adopt new capabilities, and so maybe we all just move to Rust or Go or JavaScript. So at the end of the day, how big of a deal is it if Python happens to fade into the background?
[00:37:30] Unknown:
I mean, in the in the broadest philosophical sense, no. It doesn't matter at all. No. It's it's at the end of the day, it's a tool. It's it's a tool for getting work done. If we ever forget that, then that's gonna be 1 of the primary reasons that would like, this is that's effectively the the the the underlying message of everything that I've just said here. You know, if it if you ever forget that Python is not a good unto itself, it is a tool for getting work done. And if we ever forget what problem it is we're trying to solve, then, yeah, Python deserves to to to die off. But the there's a reason why it's become successful. There's a reason why Python is loved by so many people. There is a reason why Python has been used for so many things. It's because it has been a very useful tool. It has evolved to be a very useful tool, and part of that is not just it's it's not just the tool itself. It's not like there is so much more to Python than just the language. So the language is is obviously the the linchpin that holds it all together, but there is all so much more to the ecosystem than just a language.
There is a whole philosophy about the way that computing works, about the way that compute you should be interacting with your computer, about there being only 1 way to do it, that are being the Zen of Python as a philosophy for how you approach computing as a task. And completely aside from that, there is then also all of the tools that we have built and all the ecosystem and tooling that we have built around the Python ecosystem. The primary reason that I think it matters is because we have already built it. And if we take it to another ecosystem, we have to rebuild all of that tooling, and that's resources that have effectively been wasted at that point. You know, every new language has to develop a new packaging ecosystem, and that new packaging ecosystem learns the hard way all of the lessons that Python has learned over the last 15 years about how packaging ecosystems go badly wrong. Now, okay, sometimes you do need a clean start. You do need to just tear this down and and build it from scratch.
But in the process of doing that, that's not it's it's not always that simple because there's a reason why things are complicated. The world is complicated. And whilst it's appealing to say, well, let's just all tear it down and build it from scratch, you need to appreciate why the complexity exists. Python is a large and complex ecosystem because it solves larger and complex problems. We're We're not going to make things better by going and adopting a new language because we're just gonna have to rebuild all the tools we've already built. We're gonna have to rebuild all the communities we've already built. We're gonna have to rebuild all of the community expectations, the community norm community norms that we've already built. And, okay, second time around, it may be a little bit faster, but you're also gonna go through the process of making the same set of mistakes all over again.
And that, to me, is a waste of resources. Why not spend a tenth of those resources making what we have better, rather than trying to reinvent all the wheels that are already sitting on PyPI ready to be installed. And in some fortuitous
[00:40:28] Unknown:
future where you happen to be handed $10, 000, 000 to do it as you see fit to improve the fates of Python, what would be your personal wish list of new capabilities for the language or new directions for the future of the ecosystem? And in the absence of that sudden influx of funding and time, what would you like to see done by the listeners of this podcast and the members of the broader Python community to help ensure the long term success of the language and ways that they can contribute? So I I think
[00:41:00] Unknown:
I've very much stuck my tentpole in the sand of what I would like to see in the Python ecosystem around the stuff that I'm doing in Bware. I would like to see a Python as a viable language for doing native application development on iPhone and Android. I would like to see it in the web as well as a native client side, user you know, native client client side capability so that you can I could legitimately say I have built my web application entirely in Python, and I didn't have to touch JavaScript in order to do it? To be able to package those apps using metadata that is commonly understood across the Python ecosystem that I can share my GitHub repository, give it to somebody else, they can type whatever 3 line incantation is necessary, and they can get their own version of that application that they can distribute to whoever they wanna distribute the version of the app to. So that's that's kind of the the technical dream of what I would like to see in Python as an ecosystem. What I would like to see more broadly, though, and this isn't necessarily even something that's Python specific. It's to find the ways that we can make the Python ecosystem, as an example of an open source ecosystem more generally, sustainable so that we can so that these sort of things aren't falling on individuals volunteering spare time. There are any number of people in even in just the Python community who have given of themselves enormous amounts of time, enormous amounts of personal resources, in some cases, enormous amounts of either direct money or potential lost wages so that other companies can make obscene amounts of money. The upshot of that is that we don't have a situation like Swift where a single company is in control of what the language is doing. We genuinely have with Python a language that is owned by the community where everyone can contribute and everyone can get involved. However, there's sort of a weird case there where everyone can get involved, everybody should get involved, and very few people actually are getting involved. And I don't necessarily just mean they're contributing code or contributing effort to the physical maintenance of the code. I mean, there are a lot of companies that use Python and use other open source tooling that don't contribute back in any capacity at all. And at the simplest capacity, which they could donate would be or should could give back would literally be the money to help get the work done that needs to be done. My my biggest wish list, and this isn't just about Python, it's about the open source ecosystem more broadly, is to find out how to crack this nut of working out how to find the resources to enable us to have sustainable maintenance of the tools that we are all using and all depending on and all like to use rather than it falling on to occasional companies who, for whatever reason, decide it's in their interests to donate 20% time or occasional 20% time to actually have genuine resources towards the maintenance of the tooling that we're using. Because the current situation, though, like, I I am I have now been in this game long enough, and I'm starting to see, like, my second, third generation of people burning out on contributing to open source because they are very much aware of everything that needs to be done. There is an immense amount of work that could be done, but there is no resources to actually make that work be done. And yet there are companies that are using this software that are making absurd amounts of money with it. And that's the problem I would really that in my heart of hearts, that's the problem I would like to get solved. Coming back to the like, when we're starting the talk at the beginning, it is somewhat telling that of the something like $70, 000 that the PSF did manage to raise out of their out of their fundraiser, something like I think it was 20 3, 000. I'll stand corrected with that number, but it was something something of that order of the of that fundraising came because people bought a license to pie chart, not because they were just giving money, because they got something in return. There is the the model of open source funding being based around philanthropy is clearly not working because people aren't donating money.
Even like, anyone could donate money today. The PSF had a fundraiser open for months, and yet people didn't donate. Why not? Some of that is an economic is actually a business thing. The ways that business operates or the way the business operates is that you need to have you gotta put that onto your balance sheet, and it's very, very hard to find a reason to spend money when you don't actually have to spend that money. Finding out how to reframe the open source offering in such a way that it does fit on balance sheets in an obvious way, I think, is the critical part of this puzzle. Working out where the money is going to come from to actually maintain and develop and research the changes that we need in the Python ecosystem and the rest of the open source ecosystem is the big piece of the puzzle that is currently missing. Yeah. And it's definitely telling that there are businesses
[00:45:47] Unknown:
being established around that entire problem space. The 1 that comes first to mind is Tide Lift, because I know some of the folks who work there, but I know that there are other efforts underway to make some sort of an identifiable exchange for companies to contribute money to the overall sustainability of open source as a sort of risk mitigation factor for their business. And so it it'll definitely be interesting to see how businesses like that and others continue to engage with and help frame the conversation about sustainability and open source. But, yeah, it's definitely a large and complex problem that we have not yet found a established solution to and 1 that I definitely welcome everyone to engage with and try to help brainstorm around and do their best to contribute to the solution of to make sure that we do continue to have a vibrant and viable ecosystem of open source technologies and languages
[00:46:47] Unknown:
and communities. Yeah. And I and some of this this sort of the open source being independent is a key is 1 of the sort of key potential offerings here is that we're not going to have an ecosystem that is beholden to a 1 single company's financial bottom line. You know, we are actually an independent organization, independent group, building solutions that are good for as many people as possible that can be then adapted and changed in the ways that various subgroups needed to be adapted and changed. But all of that takes resources. All of that takes time, and working out how to funnel those resources is is the critical part. You know, you mentioned Tidelift. I I do wish Tidelift all the very best, but I have also spoken to them, and their model doesn't work well for research and development. It works great for maintenance, but doesn't work as well for research and development because people are willing to spend money on making sure that what I have continues to work, but you don't know what it is that we need it to become. And that is ultimately the biggest risk is what's coming down the pipeline that's gonna gonna flatten us when we when we all of a sudden we turn around and discover that, oh, you mean Python can't run any of the devices that our that our users have. So yeah. And are there any other aspects of the potential trials and tribulations in the future of Python or any other problem areas that you have identified or anything else pertaining to this space and conversation that we didn't yet that you would like to cover before we close out the show? Nothing specific. I mean, like, sort of the biggest call to action in all of this is is essentially that we need to keep having this conversation and need to start having the conversation, not amongst ourselves as technologists, but having the conversation with the people who are actually in control of the purse strings, pressing our managers who have discretionary spending budgets to actually discretionarily spend some of that budget.
You know, if you have not sat down with your line manager and said, hey. Is our company a donor to the PSF? Then that is something you can do today. That is something you can do right now. And now that conversation may not go anywhere. But if, you know, a manager is in charge of 10 people and all 10 of them come to him and say or her and say, hey. Would you you know, why aren't we donating the PSF? Then that at least puts it in their mind, and maybe they will take it to their managers. Hey. Do you think maybe we should do this? And it might percolate up as part of a broader conversation that this is something that needs to happen. So, you know, have those conversations. Don't just kind of accept the world the way it is.
[00:49:11] Unknown:
Be the change you wanna see in the world. And if you like Python, if you like the Python ecosystem, this is a collective thing. This isn't a company that is telling you this is what Python is. This is a community of people who are working together to make Python what it is. Your contribution may well be convincing your boss to open their wallet. Well, I definitely think that, as you said, this is a conversation that needs to keep happening, so I appreciate you continuing to push that forward. And for anybody who wants to get in touch or follow along with the work that you're doing, I'll have you add your preferred contact information to the show notes. And so with that, I'm going to move us into the picks. And this week, I'm going to choose the band Jethro Tull. It's a group that I've listened to for a long time. They've been around for a lot longer than I have, and, somehow they still continue to make music. I definitely appreciate their particular style. It's fairly esoteric, and it's good to put on and listen to every now and then. There's definitely something to be said for 15 minute flute solos. Absolutely.
So, yeah, that's my pick this week. If you're looking for some new music or some old music to listen to, take a look at them. And so with that, I'll pass it to you, Russell. Do you have any picks this week? I do. I have I have 2. 1 of which is, slightly nepotistic,
[00:50:21] Unknown:
a project of my own, which is not as highly profiled, but it is it is 1 that I'm very fond of. So I am a very late convert to Pytest. I've I've been a use the unit test that's in the box, thank you very much, until actually my current current work my current employer, their test suite was Pytest. So I have very slowly come to, appreciate the benefits that Pytest brings. However, the 1 thing about Pytest that I cannot bring myself to like is how chatty it is, when it runs its test suites. You know, it tells you what's going to run. It tells you what's running. It tells you what ran, and then it tells you everything you could possibly know about the things that have failed. I have, Cricket, which is a a unit test runner that I've I've been working on for a while as part of the BW suite. But as I as I stopped getBazure, I wrote a Pytest plug in that that is, Pytest TLDR, which is essentially restoring old school unit test output. So just and here's the name of the test that file, but for running in pytest. So 1 pytest tldr install, and all of a sudden your pytest output is a lot more consumable, or at least it is in my opinion. I I appreciate this is all opinionated stuff. So, I'm willing to wear that. The other is, a tool when I came across recently, and again, this is kind of harks back to a stop stopgap measure to something that Bware has been working on for a while, and, eventually, I'll get around to working on it. 1 of the Bware 1 of the where Bware almost originally started was in trying to run a debugger because I wanted have context sensitive debugging, like, be able to see the source code I was debugging while I was debugging it. And along the way, I've kind of that's I've got distracted building a widget toolkit, making Python work in the browser, and all sorts of other things. So as a stop get measure, I've recently become a convert to, p d b p d b p p to p d b plus plus which is still a console based debugger, but at least as a console based debugger where you can see the code that you're debugging as you're debugging it, rather than the 1 line at a time approach that pdb gives you out of the box.
[00:52:12] Unknown:
So, yeah, that would be my my 2 picks. 1 1 I 1 I'm involved with, 1 I just hardly endorse. And 1 thing that's worth noting too with p d b p p is that it's a drop in replacement for the built in p d b so that you don't have to modify your workflow or your code much if at all to to be able to make use of it. Yeah. No. Absolutely. It is it is completely transparent. It, you know, just masks over the old PDB. It actually plugs into exactly the same PDB infrastructure.
[00:52:37] Unknown:
If if you are at that level where you've kind of been using Python for a while and you kinda like to to to stick your toes into a little bit more of the internals, digging into how PDB works is a remarkably entertaining activity because it exposes a lot about the internals of how Python operates. And BDB, which is the framework that PDB is based on, is extraordinarily powerful, but very, very simple in the grand scheme of things and well worth a bit of time looking into. So and PDBPP is then just a much richer user interface over the same underlying base framework. So,
[00:53:13] Unknown:
well, thank you very much for taking the time today to join me and discuss your thoughts and insights on this overall problem space. It's definitely 1 that, as you said, we need to continue talking about. So I appreciate your time today and your overall efforts in contributing to the broader community and trying to help push us forward. So with that, I'd like to, thank you once more, and I hope you enjoy the rest of your day. Thank you very much. And, yeah, as a as a plug there, I'm it's in the in the links for keeping in touch.
[00:53:42] Unknown:
If you do like the work that I'm doing, I am you can you can sponsor me through the b web project, or I'm I was 1 of the first round of GitHub sponsors, so you can sponsor me directly through GitHub as well. And more broadly, I am looking for any way to be able to commercialize this the the work that I'm doing in Bware. I have ideas about how that could be commercialized. So if you have a business brain or are interested in maybe helping with that, I'd certainly appreciate any help in that space. So, you know, get in touch. Let me know.
Introduction to Russell Keith Magee
Early Experiences with Python
The Concept of Black Swans
Impact of the PyCon Keynote
Current Python Ecosystem and Future Risks
Key Areas for Python's Future Development
Sentiment on Python's Future
Does Python's Future Really Matter?
Wish List for Python's Future
Call to Action for the Python Community