Michael Kennedy: Python in 2025 is a delightfully refreshing place.
Michael Kennedy: The guild's days are numbered,
Michael Kennedy: packaging is getting sharper tools,
Michael Kennedy: and the type checkers are multiplying
Michael Kennedy: like gremlins snacking after midnight.
Michael Kennedy: On this episode, we have an amazing panel
Michael Kennedy: to give us a range of perspectives
Michael Kennedy: on what mattered in 2025 in Python.
Michael Kennedy: We have Barry Warsaw, Brett Cannon,
Michael Kennedy: Gregory Kampfhammer, Jody Burchell, Reuven Lerner,
Michael Kennedy: and Thomas Worders on the show to give us their thoughts.
Michael Kennedy: This is Talk Python To Me, episode 532, recorded December 9th, 2025.
Michael Kennedy: Welcome to Talk Python To Me, the number one Python podcast for developers and data scientists.
Michael Kennedy: This is your host, Michael Kennedy.
Michael Kennedy: I'm a PSF fellow who's been coding for over 25 years.
Michael Kennedy: Let's connect on social media.
Michael Kennedy: You'll find me and Talk Python on Mastodon, BlueSky, and X.
Michael Kennedy: The social links are all in your show notes.
Michael Kennedy: You can find over 10 years of past episodes at talkpython.fm.
Michael Kennedy: And if you want to be part of the show, you can join our recording live streams.
Michael Kennedy: That's right.
Michael Kennedy: We live stream the raw uncut version of each episode on YouTube.
Michael Kennedy: Just visit talkpython.fm/youtube to see the schedule of upcoming events.
Michael Kennedy: Be sure to subscribe there and press the bell so you'll get notified anytime we're recording.
Michael Kennedy: Look into the future and see bugs before they make it to production.
Michael Kennedy: Sentry's SEER AI code review uses historical error and performance information at Sentry
Michael Kennedy: to find and flag bugs in your PRs before you even start to review them.
Michael Kennedy: Stop bugs before they enter your code base.
Michael Kennedy: Get started at talkpython.fm/seer-code-review.
Michael Kennedy: Hey, before we jump into the interview, I just want to send a little message to all the companies out there with products and services trying to reach developers.
Michael Kennedy: That is the listeners of this show.
Michael Kennedy: As we're rolling into 2026, I have a bunch of spots open.
Michael Kennedy: So please reach out to me if you're looking to sponsor a podcast or just generally sponsor things in the community.
Michael Kennedy: And you haven't necessarily considered podcasts.
Michael Kennedy: You really should reach out to me and I'll help you connect with the Talk Python audience.
Michael Kennedy: thanks everyone for listening all of 2025 and here we go into 2026 cheers hey everyone it's so
Michael Kennedy: awesome to be here with you all thanks for taking the time out of your day to be part of talk python
Michael Kennedy: for this year in review this python year in review so yeah let's just jump right into it gregory
Michael Kennedy: welcome welcome to the show welcome back to the show how you doing hi i'm an associate professor
Gregory Kapfhammer: of computer and information science and i do research and software engineering and software
Gregory Kapfhammer: testing. I've built a bunch of Python tools, and one of the areas we're studying now is flaky test
Gregory Kapfhammer: cases in Python projects. I'm also really excited about teaching in a wide variety of areas. In fact,
Gregory Kapfhammer: I use Python for operating systems classes or theory of computation classes. And one of the
Gregory Kapfhammer: things I'm excited about is being a podcast host. I'm also a host on the Software Engineering Radio
Gregory Kapfhammer: podcast sponsored by the IEEE Computer Society, and I've had the cool opportunity to interview a
Gregory Kapfhammer: whole bunch of people in the Python community. So Michael, thanks for welcoming me to the show.
Michael Kennedy: Yeah, it's awesome to have you back. And we talked about FlakyTest last time. I do have to say
Michael Kennedy: your AV setup is quite good. I love the new mic and all that. Thomas, welcome. Awesome to have
Thomas Wourters: you here. Thanks for having me. I'm Thomas Wauters. I'm a longtime Python core developer,
Thomas Wourters: although not as long as one of the other guests on this podcast. I worked at Google for 17 years.
Thomas Wourters: for the last year or so I've worked at Meta. In both cases, I work on Python itself within the
Thomas Wourters: company and just deploying it internally. I've also been a board member of the PSF, although I'm not
Thomas Wourters: one right now. And I've been a steering council member for five years and currently not because
Thomas Wourters: the elections are going and I don't know what the result is going to be. But I think there's like
Thomas Wourters: five, six chance that I'll be on the steering council since we only have six candidates for
Michael Kennedy: five positions when this episode probably airs. I don't know. That's quite the contribution to the
Thomas Wourters: whole community. Thank you. I always forget this. I also got the, what is it, the Distinguished
Thomas Wourters: Service Award from the PSF this year. I should probably mention that. So yes, I have been
Michael Kennedy: recognized. No need to talk about it further. Wonderful. Wonderful. Jody, welcome back on the
Michael Kennedy: show. Awesome to catch up with you. Yeah, thanks for having me back. I am a data scientist and
Jodie Burchell: developer advocate at JetBrains working on PyCharm. And I've been a data scientist for around 10
Jodie Burchell: years. And prior to that, I was actually a clinical psychologist. So that was my training,
Jodie Burchell: my PhD, but abandoned academia for greener pastures. Let's put it that way.
Jodie Burchell: Noah Franz-Gurig.
Michael Kennedy: Brett, hello. Good to see you.
Brett Cannon: Hello. Yes. Yeah, let's see here. I've been at Microsoft for 10 years. I started doing,
Brett Cannon: working on AI R&D for Python developers.
Brett Cannon: Also keep Wazzy running for Python here
Brett Cannon: and do a lot of internal consulting for teams outside.
Brett Cannon: I am actually the shortest running
Brett Cannon: core developer on this call, amazingly,
Brett Cannon: even though I've been doing it for 22 years.
Brett Cannon: I've also only gotten the Frank Wilson award,
Brett Cannon: not the DSA.
Brett Cannon: So I feel very under accomplished here
Brett Cannon: as a core developer.
Brett Cannon: Yeah, that's me in a nutshell.
Brett Cannon: Otherwise, I'm still trying to catch that.
Barry Warsaw: Most quoted.
Barry Warsaw: Yeah, most quoted.
Brett Cannon: I will say actually at work, it is in my email footer that I'm a famous Python quotationist.
Brett Cannon: That was Anthony Shaw's suggestion, by the way.
Brett Cannon: That was not mine, but does link to the April Fool's joke from last year.
Brett Cannon: And I am still trying to catch Anthony Shaw, I think, on appearances on this podcast.
Michael Kennedy: Well, plus one.
Michael Kennedy: Anthony Shaw should be here, honestly.
Michael Kennedy: I mean, I put it out into Discord.
Michael Kennedy: He could have been here, but probably at an odd time.
Michael Kennedy: You used to work on VS Code a bunch on the Python aspect of VS Code.
Michael Kennedy: You recently changed roles, right?
Brett Cannon: Not recently.
Brett Cannon: That was, I used to be the dev manager.
Michael Kennedy: Every seven years, years ago.
Brett Cannon: Yeah, September of 2024.
Brett Cannon: So it's been over a year.
Brett Cannon: But yeah, I used to be the dev manager.
Michael Kennedy: That counts as recent for me.
Brett Cannon: Yes, I used to be the dev manager for the Python experience in VS Code.
Michael Kennedy: Okay, very cool.
Michael Kennedy: That's quite a shift.
Brett Cannon: Yeah, it went back to being an IC basically.
Michael Kennedy: You got all, you're good at your TPS reports again now?
Brett Cannon: Actually, I just did do my connect, so I kind of did.
Michael Kennedy: Awesome.
Michael Kennedy: Reuven, I bet you haven't filed a TPS report in at least a year.
Reuven Lerner: So yeah, I'm Reuven.
Reuven Lerner: I'm a freelance Python and Pandas trainer.
Reuven Lerner: I just celebrated this past week 30 years since going freelance.
Reuven Lerner: So I guess it's working out okay.
Reuven Lerner: We'll know at some point if I need to get a real job.
Reuven Lerner: I teach Python Pandas both at companies and on my online platform.
Reuven Lerner: I have newsletters.
Reuven Lerner: I've written books, speaking conferences, and generally try to help people improve their
Reuven Lerner: Python and Pandas fluency and confidence and have a lot of fun with this community as well
Reuven Lerner: as with the language.
Michael Kennedy: Oh, good to have you here.
Michael Kennedy: Barry, it's great to have a musician on the show.
Barry Warsaw: Thanks.
Barry Warsaw: Yeah, I've got my bases over here.
Barry Warsaw: So, you know, if you need to be serenaded.
Michael Kennedy: Yeah, like a Zen of Python may break out at any moment.
Michael Kennedy: You never know when it's going to happen.
Barry Warsaw: Thanks for having me here.
Barry Warsaw: Yeah, I've been a core developer for a long time, since 1994.
Barry Warsaw: And I've been, you know, in the early days, I did tons of stuff for Python.org.
Barry Warsaw: I worked with Guido at CNRI and we moved everything from the mailing, the Postmaster stuff,
Barry Warsaw: and the version control systems back in the day, websites, all that kind of stuff.
Barry Warsaw: I try to not do any of those things anymore.
Barry Warsaw: There's way more competent people doing that stuff now.
Barry Warsaw: I have been a release manager.
Barry Warsaw: I'm currently back on the steering council and running again.
Barry Warsaw: between Thomas and I, we'll see who makes it to six years, I guess.
Barry Warsaw: And I'm currently working for NVIDIA,
Barry Warsaw: and I do all Python stuff.
Barry Warsaw: Some half and half, roughly, of internal things
Barry Warsaw: and external open source community work,
Barry Warsaw: both in packaging and in core Python.
Michael Kennedy: That's, I guess, I think that's about it.
Michael Kennedy: Yeah, you all are living in exciting tech spaces, that's for sure.
Michael Kennedy: That's for sure.
Michael Kennedy: For sure.
Michael Kennedy: Yeah. Well, great to have you all back on the show. Let's start with our first topic. So the
Michael Kennedy: idea is we've each picked at least a thing that we think stood out in 2025 in the Python space
Michael Kennedy: that we can focus on. And let's go with Jody first. I'm excited to hear what you thought was
Jodie Burchell: one of the bigger things. I'm going to mention AI. Like, wow, what a big surprise. So to kind of
Jodie Burchell: give context of where I'm coming from, I've been working in NLP for a long time. I like to say I was
Jodie Burchell: working on LLMs before they were cool. So sort of playing around with the very first releases from
Jodie Burchell: Google in like 2019, incorporating that into search. So I've been very interested sort of
Jodie Burchell: seeing the unfolding of the GPT models as they've grown. And let's say slightly disgusted by the
Jodie Burchell: discourse around the models as they become more mainstream, more sort of the talk about people's
Jodie Burchell: jobs being replaced, a lot of the hysteria, a lot of the doomsday stuff. So I've been doing talks
Jodie Burchell: and other content for around two and a half years now, just trying to cut through the hype a bit,
Jodie Burchell: being like, you know, they're just language models, they're good for language tasks. Let's think about
Jodie Burchell: realistically what they're about. And what was very interesting for me this year, I've been
Jodie Burchell: incorrectly predicting the bubble bursting for about two and a half years. So I was quite vindicated
Jodie Burchell: when in August, GPT-5 came out,
Jodie Burchell: and all of a sudden, everyone else started saying,
Michael Kennedy: maybe this is a bubble.
Michael Kennedy: Don't you think that was the first big release
Michael Kennedy: that was kind of a letdown compared to what the hype was?
Jodie Burchell: Yeah, and it was really interesting.
Jodie Burchell: So I found this really nice Atlantic article,
Jodie Burchell: and I didn't save it, unfortunately,
Jodie Burchell: but essentially it told sort of the whole story
Jodie Burchell: of what was going on behind the scenes.
Jodie Burchell: So GPT-4 came out in March of 2023,
Jodie Burchell: and that was the model that came out
Jodie Burchell: with this Microsoft research paper saying, you know, sparks of AGI, artificial general intelligence,
Jodie Burchell: blah, blah, blah. And from that point, there was really this big expectation sort of fueled by
Jodie Burchell: OpenAI that GPT-5 was going to be the AGI model. And it turns out what was happening internally
Jodie Burchell: is these scaling laws that were sort of considered, you know, this exponential growth thing that would
Jodie Burchell: sort of push the power of these models perhaps towards human-like performance. They weren't
Jodie Burchell: laws at all. And of course they started failing. So the model that they had originally pitched as
Jodie Burchell: GPT-4 just didn't live up to performance. They started this post-training stuff where they were
Jodie Burchell: going more into like specialized reasoning models. And what we have now are good models that are good
Jodie Burchell: for specific tasks, but I don't know what happened, but eventually they had to put the GPT-5 label on
Jodie Burchell: something. And yeah, let's say it didn't live up to expectations. So I think the cracks are starting
Jodie Burchell: to show because the underlying expectation always was this will be improving to the point where
Jodie Burchell: anything's possible and you can't put a price on that. But it turns out that if maybe there's a
Michael Kennedy: limit on what's possible, yeah, you can put a price on it. And a lot of the valuations are on the
Jodie Burchell: first part. Yes. And it's always been a bit interesting to me because I come from a scientific
Jodie Burchell: background and you need to know how to measure stuff, right? And I'm like, what are you trying
Jodie Burchell: to achieve? Like Gregory's nodding, like, please jump in. I'm on my monologue, so please don't
Jodie Burchell: interrupt me. You really need to understand what you're actually trying to get these models to do.
Jodie Burchell: What is AGI? No one knows this. And what's going to be possible with this? And it's more science
Jodie Burchell: fiction than fact. So this for me has been the big news this year, and I'm feeling slightly smug,
Jodie Burchell: I'm going to be honest, even though my predictions were off by about a year and a half.
Michael Kennedy: Yeah, maybe it's not an exponential curve.
Michael Kennedy: It's a titration S curve with an asymptote.
Michael Kennedy: We'll see.
Jodie Burchell: Yeah, sigmoid.
Jodie Burchell: Yeah.
Reuven Lerner: Yeah, yeah, yeah.
Reuven Lerner: I mean, I think we have to sort of separate the technology from the business.
Reuven Lerner: And the technology, even if it doesn't get any better, even if we stay with what we have today,
Reuven Lerner: I still think this is like one of the most amazing technologies I've ever seen.
Reuven Lerner: It's not a god.
Reuven Lerner: It's not a panacea.
Reuven Lerner: But it's like a chainsaw that if you know how to use it, it's really effective.
Reuven Lerner: but in the hands of amateurs, you can really get hurt. And so, yes, it's great to see this sort of
Reuven Lerner: thing happening and improving, but who knows where it's going to go. And I'm a little skeptical of
Reuven Lerner: the AGI thing. What I'm a little more worried about is that these companies seem to have no
Reuven Lerner: possible way of ever making the money that they're promising to their investors. And I do worry a lot
Reuven Lerner: that we're sort of like a year 2000 situation where, yeah, the technology is fantastic,
Reuven Lerner: But the businesses are unsustainable. And out of the ashes of what will happen, we will get some amazing technology and even better than we had before. But there are going to be ashes.
Jodie Burchell: For me, that also makes me worry. And I don't know if anyone reads Ed Zitron here. He's a
Jodie Burchell: journalist kind of digging into the state of the AI industry. He does get a bit sort of,
Jodie Burchell: his reputation is a bit of a crank now. So I think he's leaned into that pretty hard,
Jodie Burchell: but he does take the time to also pull out numbers and point out things that don't make sense.
Jodie Burchell: And he was one of the first ones to sound the whistle on this circular funding we've been seeing.
Jodie Burchell: So the worry, of course, is when a lot of this becomes borrowings from banks and then that starts dragging in funding from everyday people.
Jodie Burchell: And also the effect that this has had on particularly the U.S. economy, like the stock market.
Jodie Burchell: I think the investment in AI spending now exceeds consumer spending in the U.S., which is a really scary prospect.
Michael Kennedy: That is crazy.
Jodie Burchell: Mm-hmm. But yeah, also as Reven said, I love LLMs. They are the most powerful tools we've
Jodie Burchell: ever had for natural language processing. It's phenomenal the problems we can solve with them
Jodie Burchell: now. I didn't think this sort of stuff would be possible when I started in data science.
Jodie Burchell: I still think there's a use case for agents, although I do think they've been a bit overstated,
Jodie Burchell: especially now that I'm building them. Let's say it's not very fun building
Jodie Burchell: non-deterministic software. It's quite frustrating, actually. But I hope we're going to see improvements
Jodie Burchell: in the framework, particularly I've heard good things about Pydantic AI. And yeah, hopefully we
Jodie Burchell: can control the input outputs and make them a bit more strict. This will fix a lot of the problems.
Michael Kennedy: One thing I do want to put out in this conversation, I think is worth separating. And Reuven,
Michael Kennedy: you touched on this some. I want to suggest to you, I'll throw this out to you all and see what
Michael Kennedy: you think. I think it's very possible that this AI bubble crashes the economy and causes bad things
Michael Kennedy: economically to happen and a bunch of companies that are like wrappers over open ai api go away
Michael Kennedy: but i don't think things like the agentic coding tools will vanish they might stop training they
Michael Kennedy: might slow their advance because that's super expensive but i even as if you said even if we
Michael Kennedy: just had claude sonnet 4 and the world never got something else it would be so much far farther
Michael Kennedy: beyond autocomplete and the other stuff that we had before and stack overflow that it's i don't
Michael Kennedy: think it's going to go. The reason I'm throwing this out there is I was talking to somebody and
Michael Kennedy: they were like, well, I don't think it's worth learning because I think the bubble is going to
Michael Kennedy: pop. And so I don't want to learn this agent at coding because it won't be around very long.
Brett Cannon: What do you all think? It's here to stay. I think it's just, where's the limit? Where does it stop?
Brett Cannon: I think that's the big open question for everybody, right? Like pragmatically, it's a tool. It's useful
Brett Cannon: in some scenarios and not in others. And you just have to learn how to use the tool appropriately
Brett Cannon: for your use case and to get what you need out of it. And sometimes that's not using it because
Brett Cannon: it's just going to take up more time than it will to be productive. But other times it's
Brett Cannon: fully juices up your productivity and you can get more done. It's give and take. But I don't think
Brett Cannon: it's going to go anywhere because as you said, Michael, there's even academics doing research now.
Brett Cannon: There's open weight models as well. There's a lot of different ways to run this, whether you're
Brett Cannon: at the scale of the frontier models that are doing these huge trainings or you're doing something
Brett Cannon: local and more specialized. So I think the general use of AI isn't going anywhere. I think it's just
Brett Cannon: the question of how far can this current trend go and where will it be i want to say stop that's
Brett Cannon: because that plays into the whole it's never it's going to completely go away i don't think it ever
Brett Cannon: will i think it's just going to be where where are we going to start to potentially bump up against
Gregory Kapfhammer: limits one thing that i'll say is that many of these systems are almost to me like a dream come
Gregory Kapfhammer: true now admittedly it's the case that the systems i'm building are maybe only tens of thousands of
Gregory Kapfhammer: lines or hundreds of thousands of lines but i can remember thinking to myself how cool would it be
Gregory Kapfhammer: if I had a system that could automatically refactor
Gregory Kapfhammer: and then add test cases and increase the code coverage
Gregory Kapfhammer: and make sure all my checkers and linters pass
Gregory Kapfhammer: and do that automatically and continue the process
Gregory Kapfhammer: until it achieved its goal.
Gregory Kapfhammer: And I remember thinking that five to seven years ago,
Gregory Kapfhammer: I would never realize that goal in my entire lifetime.
Gregory Kapfhammer: And now when I use like anthropics models
Gregory Kapfhammer: through open code or Claude code,
Gregory Kapfhammer: it's incredible how much you can achieve so quickly,
Gregory Kapfhammer: even for systems that are of medium to moderate scale.
Gregory Kapfhammer: So from my vantage point, it is a really exciting tool.
Gregory Kapfhammer: It's incredibly powerful.
Gregory Kapfhammer: And what I have found is that the LLMs are much better
Gregory Kapfhammer: when I teach them how to use tools
Gregory Kapfhammer: and the tools that it's using
Gregory Kapfhammer: are actually really quick, fast ones
Gregory Kapfhammer: that can give rapid feedback to the LLM
Gregory Kapfhammer: and tell it whether it's moving
Gregory Kapfhammer: in the right direction or not.
Michael Kennedy: Yeah, there's an engineering angle to this.
Michael Kennedy: It's not just Vibe Coding
Michael Kennedy: if you take the time to learn it.
Jodie Burchell: There was actually a very interesting study. I don't think the study itself has been released.
Jodie Burchell: I haven't found it yet, but I saw a talk on it by some guys at Stanford. So they call it the 10K
Jodie Burchell: developer study. And basically what they were doing was studying real code bases, including,
Jodie Burchell: I think 80% of them were actually private code bases and seeing the point where the team started
Jodie Burchell: adopting AI. And so their findings are really interesting and nuanced. And I think they probably
Jodie Burchell: intuitively align with what a lot of us have experienced with AI. So basically, yes, there
Jodie Burchell: are productivity boosts, but it produces a lot of code, but the code tends to be worse than the code
Jodie Burchell: you would write and also introduces more bugs. So when you account for the time that you spend
Jodie Burchell: refactoring and debugging, you're still more productive. But then it also depends on the
Jodie Burchell: type of project, as Gregory was saying. So it's better for greenfield projects, it's better for
Jodie Burchell: smaller code bases. It's better for simpler problems and it's better for more popular languages because
Jodie Burchell: obviously there's more training data. And so this was actually, I like this study so much. I'll
Jodie Burchell: actually share it with you, Michael, if you want to put it in the show notes, but it shows that,
Jodie Burchell: yeah, the picture is not that simple and all this conflicting information and conflicting experiences
Jodie Burchell: people were having line up completely with this. So again, like I work at an IDE company, it's tools
Jodie Burchell: for the job. It's not like your IDE will replace you. AI is not going to replace you. It's just
Jodie Burchell: going to make you maybe more productive sometimes.
Michael Kennedy: Yeah.
Michael Kennedy: Wait, IDE, you work for me.
Michael Kennedy: Right.
Michael Kennedy: It's not about you.
Jodie Burchell: But then I work for the IDE.
Michael Kennedy: This portion of Talk Python To Me is brought to you by Sentry.
Michael Kennedy: Let me ask you a question.
Michael Kennedy: What if you could see into the future?
Michael Kennedy: We're talking about Sentry, of course.
Michael Kennedy: So that means seeing potential errors, crashes, and bugs before they happen, before you even
Michael Kennedy: accept them into your code base.
Michael Kennedy: That's what Sentry's AI Sears Code Review offers.
Michael Kennedy: You get error prediction based on real production history.
Michael Kennedy: AI Sear Code Review flags the most impactful errors your PR is likely to introduce before merge
Michael Kennedy: using your app's error and performance context, not just generic LLM pattern matching.
Michael Kennedy: Sear will then jump in on new PRs with feedback and warning if it finds any potential issues.
Michael Kennedy: Here's a real example.
Michael Kennedy: On a new PR related to a search feature in a web app, we see a comment from seer bicenturybot in the PR.
Michael Kennedy: And it says, potential bug, the process search results function, can enter an infinite recursion when a search query finds no matches.
Michael Kennedy: As the recursive call lacks a return statement and a proper termination condition.
Michael Kennedy: And Seer AI Code Review also provides additional details which you can expand for further information on the issue and suggested fixes.
Michael Kennedy: And bam, just like that, Seer AI Code Review has stopped a bug in its tracks without any
Michael Kennedy: devs in the loop.
Michael Kennedy: A nasty infinite loop bug never made it into production.
Michael Kennedy: Here's how you set it up.
Michael Kennedy: You enable the GitHub Sentry integration on your Sentry account, enable Seer AI on your
Michael Kennedy: Sentry account, and on GitHub, you install the Seer by Sentry app and connect it to your
Michael Kennedy: repositories that you want it to validate.
Michael Kennedy: So jump over to Sentry and set up Code Review for yourself.
Michael Kennedy: Just visit talkpython.fm/seer-code-review.
Michael Kennedy: The link is in your podcast player show notes
Michael Kennedy: and on the episode page.
Michael Kennedy: Thank you to Sentry for supporting Talk Python and me.
Reuven Lerner: I mean, the other thing is a lot of people
Reuven Lerner: and a lot of the sort of when people talk about AI
Reuven Lerner: and LLMs and so forth in context of coding,
Reuven Lerner: it's the LLM writing code for us.
Reuven Lerner: And maybe because I'm not doing a lot of serious coding,
Reuven Lerner: it's more instruction and so forth.
Reuven Lerner: I use it as like a sparring or brainstorming partner
Reuven Lerner: So it does, you know, checking of my newsletters for language and for tech edits and just sort of exploring ideas.
Reuven Lerner: And for that, maybe it's because I do everything in the last minute and I don't have other people around or I'm lazy or cheap and don't want to pay them.
Reuven Lerner: But definitely the quality of my work has improved dramatically.
Reuven Lerner: The quality of my understanding has improved, even if it never wrote a line of code for me.
Reuven Lerner: Just getting that feedback on a regular automatic basis is really helpful.
Michael Kennedy: Yeah, I totally agree with you.
Michael Kennedy: All right. We don't want to spend too much time on this topic, even though I believe Jody has put her finger on what might be the biggest tidal wave of 2025.
Michael Kennedy: But still, a quick parting thoughts. Anyone else?
Brett Cannon: I'm glad I'll never have the right bash from scratch ever again.
Michael Kennedy: Tell me about it.
Michael Kennedy: Yeah.
Barry Warsaw: I'll just say from anecdotally, the thing that I love about it is when I need to do something
Barry Warsaw: and I need to go through docs, online docs for whatever it is, you know, it might be
Barry Warsaw: GitLab or some library that I want to use or something like that.
Barry Warsaw: I never even search for the docs.
Barry Warsaw: I never even try to read the docs anymore.
Barry Warsaw: I just say, hey, you know, whatever model I need to set up this website.
Barry Warsaw: And I just, just tell me what to do or just do it.
Barry Warsaw: And it's an immense time saver and productivity.
Barry Warsaw: And then it gets me bootstrapped to the place where now I can start to be creative.
Barry Warsaw: I don't have to worry about just like digging through pages and pages and pages of docs to
Barry Warsaw: figure out one little setting here or there.
Barry Warsaw: That's an amazing time saver.
Gregory Kapfhammer: Yeah, that's a really good point.
Gregory Kapfhammer: Another thing that I have noticed, there might be many things for which I had a really good
Gregory Kapfhammer: mental model, but my brain can only store so much information.
Gregory Kapfhammer: So for example, I know lots about the abstract syntax tree for Python, but I forget that
Gregory Kapfhammer: sometimes.
Gregory Kapfhammer: And so it's really nice for me to be able to bring that back into my mind quickly with
Gregory Kapfhammer: an LLM.
Gregory Kapfhammer: And if it's generating code for me that's doing a type of AST parsing, I can tell whether
Gregory Kapfhammer: that's good code or not because I can refresh that mental model.
Gregory Kapfhammer: So in those situations, it's not only the docs, but it's something that I used to know
Gregory Kapfhammer: really well that I have forgotten some of.
Gregory Kapfhammer: And the LLM often is very powerful when it comes to refreshing my memory and helping me to get started and move more quickly.
Michael Kennedy: All right. Out of time, I think. Let's move on to Brett. What do you got, Brett?
Brett Cannon: Well, I actually originally said we should talk about AI, but Jody had a way better pitch for it than I did because my internal pitch was a little bit AI.
Brett Cannon: Do I actually have to write a paragraph explaining why? Then Jody actually did write the paragraph. So she did a much better job than I did.
Brett Cannon: So the other topic I had was using tools to run your Python code.
Brett Cannon: And what I mean by that is traditionally, if you think about it,
Brett Cannon: you install the Python interpreter, right?
Brett Cannon: Hopefully you create a virtual environment, install your dependencies,
Brett Cannon: and you call the Python interpreter in your virtual environment to run your code.
Brett Cannon: Those are all the steps you went through to run stuff.
Brett Cannon: But now we've got tools that will compress all that into a run command,
Brett Cannon: just do it all for you.
Brett Cannon: And it seems like the community has shown a level of comfort with that,
Brett Cannon: that I'd say snuck up on me a little bit,
Brett Cannon: but I would say that I think it's a good thing, right?
Brett Cannon: It's showing us, I'm going to say us,
Brett Cannon: as the junior core developer here on this call,
Brett Cannon: as to, sorry to make you too feel old,
Brett Cannon: but admittedly, Barry did write my letter of recommendation
Brett Cannon: to my master's program.
Brett Cannon: So what happened was like, yeah,
Brett Cannon: we had Hatch and PDM,
Brett Cannon: poetry before that, and uv as of last year,
Brett Cannon: all kind of come through
Brett Cannon: and all kind of build on each other
Brett Cannon: and take ideas from each other
Brett Cannon: and kind of just slowly build up
Brett Cannon: this kind of repertoire of tool approaches
Brett Cannon: that they all kind of have a baseline kind of,
Brett Cannon: not synergy is the right word,
Brett Cannon: but share just kind of approach to certain things
Brett Cannon: with their own twists and added takes on things.
Brett Cannon: But in general, this whole like,
Brett Cannon: you know what, you can just tell us to run this code
Brett Cannon: and we will just run it, right?
Brett Cannon: Like inline script metadata coming in
Brett Cannon: and help making that more of a thing.
Brett Cannon: Disclaimer, I was the PEP delegate for getting that in.
Brett Cannon: But I just think that's been a really awesome trend
Brett Cannon: And I'm hoping we can kind of leverage that a bit.
Brett Cannon: Like I have personal plans that we don't need to go into here,
Brett Cannon: but like I'm hoping as a Python core team,
Brett Cannon: we can kind of like help boost this stuff up a bit
Brett Cannon: and kind of help keep a good baseline for this for everyone.
Brett Cannon: Because I think it's shown that Python is still really good for beginners.
Brett Cannon: You just have to give them the tools to kind of hide some of the details
Brett Cannon: to not shoot yourself in the foot and still leads to a great outcome.
Michael Kennedy: Yeah, 2025 might be the year that the Python tools stepped outside of Python.
Michael Kennedy: Instead of being, you install Python and then use the tools.
Michael Kennedy: You do the tool to get Python, right?
Michael Kennedy: Like uv and PDM and others.
Brett Cannon: Yeah, and inverted the dependency graph in terms of just how you put yourself in, right?
Brett Cannon: I think the interesting thing is these tools treat Python as an implementation detail almost, right?
Brett Cannon: Like when you just say uv or hatch run or PDM run thing,
Brett Cannon: these tools don't make you have to think about the interpreter.
Brett Cannon: It's just a thing that they pull in to make your code run, right?
Brett Cannon: It's not even necessarily something you have to care about if you choose not to.
Brett Cannon: And it's an interesting shift in that perspective, at least for me.
Brett Cannon: But I've also been doing this for a long time.
Barry Warsaw: I think you're really onto something.
Barry Warsaw: And what I love at sort of a high level is this, I think there's a renewed focus on the user experience.
Barry Warsaw: And like uv plus the PEP 723, the inline metadata, you know, you can put uv in the shebang line of your script.
Barry Warsaw: And now you don't have to think about anything.
Barry Warsaw: You get uv from somewhere, and then it takes care of everything.
Barry Warsaw: And Hatch can work the same way, I think, for developers.
Barry Warsaw: But this renewed focus on installing your Python executable,
Barry Warsaw: you don't really have to think about, because those things are very complicated,
Barry Warsaw: and people just want to hit the ground running.
Barry Warsaw: And so if you think about the previous discussion about AI,
Barry Warsaw: I just want things to work.
Barry Warsaw: I know what I want to do.
Barry Warsaw: I can see it.
Barry Warsaw: I can see the vision of it.
Barry Warsaw: And I just don't want to.
Barry Warsaw: An analogy is like when I first learned Python
Barry Warsaw: and I came from C++ and all those languages.
Barry Warsaw: And I thought, oh my gosh, just to get like, hello world,
Barry Warsaw: I have to do a million little things that I shouldn't have to do.
Barry Warsaw: Like create a main and get my braces right
Barry Warsaw: and get all my variables right and get my pound includes correct.
Barry Warsaw: And now I don't have to think about any of that stuff.
Barry Warsaw: And the thing that was eye-opening for me with Python was the distance between vision of what I wanted and working code just really narrowed.
Barry Warsaw: And I think that as we are starting to think about tools and environments and how to bootstrap all this stuff, we're also now taking all that stuff away.
Barry Warsaw: Because people honestly don't care.
Barry Warsaw: I don't care about any of that stuff.
Barry Warsaw: I just want to go from like, I woke up this morning and had a cool idea and I just wanted to get at work.
Michael Kennedy: Or you wanted to share it so you could just share the script and you don't have to say,
Michael Kennedy: here's your steps that you get started with.
Barry Warsaw: Exactly.
Reuven Lerner: I want to thank the two of you for, oh, sorry, sorry, go ahead.
Reuven Lerner: I'm just going to say, like, for years teaching Python that how do we get it installed?
Reuven Lerner: At first, it surprised me how difficult it was for people.
Reuven Lerner: Because like, oh, come on, we just got Python.
Reuven Lerner: Like, what's so hard about this?
Reuven Lerner: But it turns out it's a really big barrier to entry for newcomers.
Reuven Lerner: And I'm very happy that Jupyter Lite now has solved its problems with input.
Reuven Lerner: And it's like huge.
Reuven Lerner: But until now, I hadn't really thought about starting with uv because it's cross-platform.
Reuven Lerner: And if I say to people in the first 10 minutes of class, install uv for your platform and
Reuven Lerner: then say uv in it, your project, bam, you're done.
Reuven Lerner: It just works.
Reuven Lerner: And then it works cross-platform.
Reuven Lerner: This is mind-blowing.
Reuven Lerner: And I'm going to try this at some point.
Reuven Lerner: Thank you.
Gregory Kapfhammer: I can comment on the mind-blowing part because now when I teach undergraduate students, we
Gregory Kapfhammer: start with uv in the very first class. And it is awesome. There were things that would take students,
Gregory Kapfhammer: even very strong students who've had lots of experience, it would still take them a week to
Gregory Kapfhammer: set everything up on their new laptop and get everything ready and to understand all the key
Gregory Kapfhammer: concepts and know where something is in their path. And now we just say, install uv for your
Gregory Kapfhammer: operating system and get running on your computer. And then, hey, you're ready to go. And I don't have
Gregory Kapfhammer: teach them about docker containers and i don't have to tell them how to install python with some
Gregory Kapfhammer: package manager all of those things just work and i think from a learning perspective whether you're
Gregory Kapfhammer: in a class or whether you're in a company or whether you're teaching yourself uv is absolutely
Jodie Burchell: awesome i'm actually wondering whether i am the one who is newest to python here i taught myself
Jodie Burchell: python in 2011 so i was like python 2.7 stage but it was my first programming language i was just
Jodie Burchell: procrastinating during my PhD. And I was like, I should learn to program. So I just taught myself
Jodie Burchell: Python. And I can tell you, you do not come from an engineering background. And you're like,
Jodie Burchell: what is Python? What is Python doing? Why am I typing Python to execute this hello world? And
Jodie Burchell: if you're kind of curious, you get down a rabbit hole before you even get to the point where you're
Jodie Burchell: just focusing on learning the basics. And so it's exactly, I was going to say with Reuven,
Jodie Burchell: And like whether you thought about it for teaching, because we're now debating for Humble Data,
Jodie Burchell: which is a beginner's data science community that I'm part of, whether we switch to uv.
Jodie Burchell: This was Chuck's idea because it does abstract away all these details.
Jodie Burchell: The debate I have is, is it too magic?
Jodie Burchell: This is kind of the problem because I also remember learning about things like virtual
Jodie Burchell: environments, because again, this was my first programming language and being like,
Jodie Burchell: oh, it's a very good idea.
Jodie Burchell: This is best practices.
Jodie Burchell: And it's also a debate we have in PyCharm, right?
Jodie Burchell: Like how much do you magic away the fundamentals versus making people think a little bit, but
Jodie Burchell: I'm not sure.
Michael Kennedy: All right.
Michael Kennedy: Like, would you even let somebody run without a virtual environment?
Michael Kennedy: That's like, that's a take you, that's a stance you could take.
Jodie Burchell: I used to when I first learned Python, because it was too complicated, but then I learned
Jodie Burchell: better.
Jodie Burchell: But yes.
Thomas Wourters: The consideration here is like hiding the magic isn't like hiding the details and having
Thomas Wourters: all this magic just work is great as long as it works.
Thomas Wourters: And the question is, how is it going to break down and how are people going to know how to deal
Thomas Wourters: when it breaks down, if you hide all the magic? And I think virtual envs were, or let's say before
Thomas Wourters: we had virtual envs, installing packages was very much in the, you had to know all the details
Thomas Wourters: because it was very likely going to break down in some way right before we had virtual envs,
Thomas Wourters: because you would end up with weird conflicts or multiple copies of a package installed in
Thomas Wourters: different parts of the system. When we got virtual ends, we sort of didn't have to worry about that
Thomas Wourters: anymore because we were trained in that you can just blow away the virtual one and it just works.
Thomas Wourters: And with uv, we're back into, this looks like a single installation. We don't know what's going
Thomas Wourters: to go on, but we've learned, we as a community and also the people working on uv, we have learned
Thomas Wourters: from those earlier mistakes or not, maybe not mistakes, but consequences of the design.
Thomas Wourters: And they have created something that is, that appears to be very stable where it's unlikely
Thomas Wourters: the magic will break.
Thomas Wourters: And when the magic does break, it's obvious what the problem is or, or it automatically
Thomas Wourters: fixes itself.
Thomas Wourters: So like it's not reusing, broken, installations and that kind of thing.
Thomas Wourters: So the risk now, as it turns out, I think as is proven by the community adopting uv so
Thomas Wourters: fast and so willingly, I think it's acceptable.
Thomas Wourters: Well, I think it's, yeah, I think it's proven itself.
Thomas Wourters: It's clear that this is, it's worth the potential of discovering weird edge cases later, both
Thomas Wourters: because it's probably low likelihood, but also the people behind uv Astral have proven that
Thomas Wourters: they would jump in and fix those issues, right?
Thomas Wourters: They would do anything they need to keep uv workable the same way.
Thomas Wourters: And they have a focus that Python as a whole cannot have because they cater to fewer use
Michael Kennedy: cases than Python as a whole needs to.
Michael Kennedy: On the audience, Galano says, as an enterprise tech director in Python coder, I believe we
Michael Kennedy: should hide the magic which empowers the regular employee to do simple things that make their
Michael Kennedy: job easier.
Michael Kennedy: Yeah.
Barry Warsaw: This notion of abstractions, right, has always been there in computer science.
Barry Warsaw: And, you know, we've used tools or languages or systems where we've tried to bring that
Barry Warsaw: abstraction layer up so that we don't have to think about all these details, as I mentioned
Barry Warsaw: before. The question is, that's always the happy path. And when I'm trying to teach somebody
Barry Warsaw: something like, here's how to use this library or here's how to use this tool, I try to be very
Barry Warsaw: opinionated to keep people on that happy path. Like, assume everything's going to work just right.
Barry Warsaw: Here's how you just make you go down that path to get the thing done that you want. The question
Barry Warsaw: really is when things go wrong, how narrow is that abstraction? And are you able, and even when
Barry Warsaw: you're just curious, like what's really going on underneath the hood? Of course, that's not a really
Barry Warsaw: good analogy today because cars are basically computers on wheels that you can't really
Brett Cannon: understand how they work. But back in your day. But back in my day, we were changing spark plugs,
Brett Cannon: you know, but and crank that window down. Exactly. So I think we always have to leave that
Barry Warsaw: room for the curious and the bad path where when things go wrong or when you're just like,
Barry Warsaw: you know what, I understand how this works, but I'm kind of curious about what's really going on.
Barry Warsaw: How easy is it for me to dive in and get a little bit more of that background, you know,
Barry Warsaw: a little bit more of that understanding of what's going on. I want the magic to decompose,
Brett Cannon: right like you should be able to explain the magic path via a more decomposed steps using the tool
Brett Cannon: all the way down to what the tools like to do behind the scenes just just to admit i the reason
Brett Cannon: i brought this up and i've been thinking about this a lot is i'm thinking of trying to get the python
Brett Cannon: launcher to do a bit more because one interesting thing we haven't really brought up here is we're
Brett Cannon: all seeing uv uv uv uv is a company there's always there's they might disappear and we haven't
Brett Cannon: de-risked ourselves from that. Now we do have Hatch, we do have PDM, but as I said, there's kind
Brett Cannon: of a baseline I think they all share that I think they would be probably okay if the Python launcher
Brett Cannon: just did because that's based on standards, right? Because that's the other thing that there's been
Brett Cannon: a lot of work that has led to this step, right? Like we've gotten way more packaging standards,
Brett Cannon: we've got PEP 723, like we mentioned. There's a lot of work that's come up to lead to this point
Brett Cannon: that all these tools can lean on to have them all have an equivalent outcome because it's expected
Brett Cannon: is how they should be.
Brett Cannon: And so I think it's something we need to consider
Brett Cannon: of how do we make sure,
Brett Cannon: like, by the way, uv,
Brett Cannon: I know the people, they're great.
Brett Cannon: I'm not trying to spares them
Brett Cannon: or think they're going to go away,
Brett Cannon: but it is something we have to consider.
Brett Cannon: And I will also say, Jody,
Brett Cannon: I do think about this for teaching
Brett Cannon: because I'm a dad now
Brett Cannon: and I don't want my kid coming home
Brett Cannon: when they get old enough to learn Python
Brett Cannon: and go, hey, dad,
Brett Cannon: why is getting Python code running so hard?
Brett Cannon: So I want to make sure that that never happens.
Jodie Burchell: But they fall in love with it from the start.
Michael Kennedy: I realized something for the 2026 year interview.
Michael Kennedy: I have to bring a sign that says time for next topic because we got a bunch of topics and we're running low on time.
Michael Kennedy: So, Thomas, let's jump over to yours.
Michael Kennedy: Oh, and I had two topics as well.
Thomas Wourters: So I'm only going to have to pick my favorite child, right?
Thomas Wourters: That's terrible.
Thomas Wourters: My second favorite child is Lazy Imports, which is a relatively new development.
Thomas Wourters: So we'll probably not get to that.
Thomas Wourters: And just accepted.
Thomas Wourters: Yes, it's been accepted and it's going to be awesome.
Thomas Wourters: So I'll just give that a shout out and then move to my favorite child, which is free threaded
Thomas Wourters: Python.
Thomas Wourters: For those who were not aware, the global interpreter lock is going away.
Thomas Wourters: I am stating it as a fact.
Thomas Wourters: It's not actually a fact yet, but it, you know, that's because the steering council hasn't
Thomas Wourters: realized the fact yet.
Brett Cannon: It is trending towards.
Thomas Wourters: Well, I was originally on the steering council that accepted the proposal to add free threading
Thomas Wourters: as a, as an experimental feature, we had this idea of adding it as experimental and then making it
Thomas Wourters: supported, but not the default and then making it the default. And it was all a little vague and,
Thomas Wourters: and up in the air. And then I didn't get reelected for the steering council last year,
Thomas Wourters: which I was not sad about at all. I sort of ran on a, well, if there's nobody better, I'll do it,
Thomas Wourters: but otherwise I have other things to do. And it turns out those other things were making sure that
Thomas Wourters: prefer that Python landed in a supported state. So I lobbied the steering council quite hard,
Thomas Wourters: as Barry might remember at the start of the year, to get some movement on this, like get some
Thomas Wourters: decision going. So for Python 3.14, it is officially supported. The performance is great. It's like
Thomas Wourters: between a couple of percent slower and 10% slower, depending on the hardware and the compiler that
Thomas Wourters: you use. It's basically the same speed on macOS, which is really like it's, that's a combination of
Thomas Wourters: the ARM hardware and Clang specializing things, but it's basically the same speed, which, wow.
Thomas Wourters: And then on recent GCCs on Linux, it's like a couple of percent slower. The main problem is
Thomas Wourters: really community adoption, getting third-party packages to update their extension modules for
Thomas Wourters: the new APIs and the things that by necessity sort of broke, and also supporting free threading in a
Thomas Wourters: in a good way and in packages for Python code, it turns out there's very few changes that
Thomas Wourters: need to be made for things to work well under free threading.
Thomas Wourters: They might not be entirely thread safe, but usually like almost always in cases where it
Thomas Wourters: wasn't thread saved before either, because the guild doesn't actually affect thread safety.
Thomas Wourters: Just the likelihood of things breaking.
Michael Kennedy: I do think there's been a bit of a, the mindset of the Python community hasn't really been
Michael Kennedy: focused on creating thread safe code because the GIL is supposed to protect us.
Michael Kennedy: But soon as it takes multiple steps, then all of a sudden it's just less likely.
Michael Kennedy: It's not that it couldn't happen.
Thomas Wourters: Yeah, that's my point, right?
Thomas Wourters: It's not the GIL never gave you threat safety.
Thomas Wourters: The GIL gave cpythons internals threat safety.
Thomas Wourters: It never really affected Python code and it very rarely affected thread safety in
Thomas Wourters: extension modules as well.
Thomas Wourters: So they already had to take care of, of making sure that the global interpreter
Thomas Wourters: couldn't be released by something that they ended up calling indirectly so it's actually not that
Thomas Wourters: hard to port most things to support free threading and the benefits we've seen some experimental
Thomas Wourters: work because you know it's still it's still new there's still a lot of things that don't
Thomas Wourters: quite support it there's still places where thread contention slows things things down a lot but
Thomas Wourters: we've seen a lot of examples of really promising very parallel problems that now speed up by 10x or
Thomas Wourters: more. And it's going to be really excited in the future. And it's in 2025 that this all started.
Thomas Wourters: I mean, Sam started it earlier, but he's been working on this for years, but it landed in 2025.
Michael Kennedy: It dropped its experimental stage in 314, basically. Yeah. I was going to say, were we all,
Brett Cannon: the three of us on the steering council at the same time when we decided to start the experiment
Barry Warsaw: for free threading? I think Barry wasn't on it. Yeah, I missed a couple of years there, but I'm
Barry Warsaw: Not sure.
Barry Warsaw: No, I totally agree.
Barry Warsaw: I think free threading is one of the most transformative developments for Python, certainly since Python 3, but even maybe more impactful because of the size of the community today.
Barry Warsaw: Personally, you know, not necessarily speaking as a current or potentially former steering council member.
Barry Warsaw: We'll see how that shakes out.
Barry Warsaw: But I think it's inevitable.
Barry Warsaw: I think free threading is absolutely the future of Python, and I think it's going to unlock incredible potential and performance.
Barry Warsaw: I think we just have to do it right.
Barry Warsaw: And so I talked to lots of teams who are building various software all over the community.
Barry Warsaw: And I actually think it's more of an educational and maybe an outreach problem than it is a technological problem.
Barry Warsaw: I mean, yes, there are probably APIs that are missing that will make people's lives easier.
Barry Warsaw: There's probably some libraries that will make other code a little easier to write or whatever or to understand.
Barry Warsaw: But like all that's solvable.
Barry Warsaw: And I think really reaching out to the teams that are, you know, like Thomas said,
Barry Warsaw: that are building the ecosystem, that are moving the ecosystem to a free threading world.
Barry Warsaw: That's where we really need to spend our effort on.
Barry Warsaw: And we'll get there.
Barry Warsaw: It won't be that long.
Barry Warsaw: It certainly won't be as long as it took us to get to Python 3.
Reuven Lerner: I'm sort of curious as someone who's not super experienced with threading or, you know, basic concurrency.
Reuven Lerner: I mean, I've used it, but I feel like now we have threads, especially with free threading and sub interpreters and multiprocessing and asyncio.
Reuven Lerner: And I feel like for many people now it's like, oh, my God, which one am I supposed to use?
Reuven Lerner: And for someone who's experienced, you can sort of say, well, this seems like a better choice.
Reuven Lerner: But are there any plans to sort of try to have a taxonomy of what problems are solved by which of these?
Thomas Wourters: The premise here is that everyone would be using one or more of these low-level techniques that you mentioned.
Thomas Wourters: And I think that's not a good way of looking at it.
Thomas Wourters: Like AsyncIO is a library that you want to use for the things that AsyncIO is good at.
Thomas Wourters: And you can actually very nicely combine it with multiprocessing, with subprocesses, with
Thomas Wourters: so that subprocesses and subinterpreters, just to make it clear that those are two very separate
Thomas Wourters: things and multithreading, both with and without free threading.
Thomas Wourters: And it solves different problems or it gives you different abilities within the AsyncIO
Thomas Wourters: framework.
Thomas Wourters: And the same is true for like GUI frameworks.
Thomas Wourters: I mean, GUI frameworks usually want threads for multiple reasons, but you can use these
Thomas Wourters: other things as well.
Thomas Wourters: I don't think it's down to teaching end users when to use or avoid all these different things.
Thomas Wourters: I think we need higher level abstractions for tasks that people want to solve.
Thomas Wourters: And then those can decide on what for their particular use case is a better approach.
Thomas Wourters: For instance, PyTorch has multiple.
Thomas Wourters: So it's used for people who don't know to train, not just train, but it's used in AI
Thomas Wourters: for generating large matrices and LLMs and what have you.
Thomas Wourters: Part of it is loading data and processing.
Thomas Wourters: And the basic ideas of AsyncIO are,
Thomas Wourters: oh, you can do all these things in parallel
Thomas Wourters: because you're not waiting on the CPU,
Thomas Wourters: you're just waiting on IO.
Thomas Wourters: Turns out it is still a good idea to use threads
Thomas Wourters: for massively parallel IO
Thomas Wourters: because otherwise you end up waiting longer than you need to.
Thomas Wourters: So a problem where we thought AsyncIO would be the solution
Thomas Wourters: and we never needed threads is actually much improved if we tie in threads as well.
Thomas Wourters: And we've seen massive, massive improvements in data loader.
Thomas Wourters: There's even an article, a published article from some people at Meta
Thomas Wourters: showing how much they improve the PyTorch data loader by using multiple threads.
Thomas Wourters: But at a very low level, we don't want end users to need to make that choice, right?
Brett Cannon: I concur to futures is a good point, right?
Brett Cannon: Like all of these approaches are all supported there and it's a unified one.
Brett Cannon: So if you were to teach this, for instance, you could say use concurrent.tot futures.
Brett Cannon: These are all there.
Brett Cannon: This is the potential tradeoff.
Brett Cannon: Like basically use threads.
Brett Cannon: It's going to be the fastest unless there's like some module you have that's not that's
Brett Cannon: screwing up because of threads, then use sub interpreters.
Brett Cannon: And if for some reason sub interpreters don't work, you should move to the processing pool,
Brett Cannon: the process pool.
Brett Cannon: But I mean, basically, you just kind of just like, it's not go sort the fast stuff.
Brett Cannon: And for some reason, it doesn't work.
Brett Cannon: Use the next fastest and just kind of do it that way.
Brett Cannon: After that, then you start to the lower level.
Brett Cannon: Like, okay, why do I want to use subinterpreters instead of threads?
Brett Cannon: Those kinds of threads.
Brett Cannon: But I think that's a different, as I think we're all searching,
Brett Cannon: a different level of abstraction, which is a term we keep bringing up today.
Brett Cannon: It's a level that a lot of people are not going to have to care about.
Brett Cannon: I think the libraries are the ones that are going to have to care about this
Brett Cannon: and who are going to do a lot of this for you.
Michael Kennedy: Let me throw this out on our way out the door to get to Reuven's topic.
Michael Kennedy: I would love to see it solidify around async and await.
Michael Kennedy: And you just await a thing, maybe put a decorator on something.
Michael Kennedy: say this, this one, I want this to be threaded. I want this to be IO. I want this. And you don't,
Michael Kennedy: you just use async and await and don't have to think about it, but that's, that's my dream.
Michael Kennedy: Reuven, what's your dream?
Reuven Lerner: Wow. How long do you have?
Michael Kennedy: No, what's your topic?
Reuven Lerner: So I want to talk about Python ecosystem and funding. When I talk to people with Python
Reuven Lerner: and I talk to them about it, how it's open source, they're like, oh, right, it's open source. That
Reuven Lerner: means I can download it for free. And from their perspective, that's sort of where it starts
Reuven Lerner: and ends. And the notion that people work on it, the notion that needs funding, the notion that
Reuven Lerner: there's a Python software foundation that supports a lot of these activities, the infrastructure
Reuven Lerner: is completely unknown to them and even quite shocking for them to hear. But Python is in many
Reuven Lerner: ways, I think, starting to become a victim of its own success, that we've been dependent on
Reuven Lerner: companies for a number of years to support developers and development. And we've been
Reuven Lerner: assuming that the PSF, which gives money out to lots of organizations to run conferences and
Reuven Lerner: workshops and so forth, can sort of keep scaling up and that they will have enough funding. And
Reuven Lerner: we've seen a few sort of shocks that system in the last year. Most recently, the PSF announced that
Reuven Lerner: it was no longer going to be doing versus sort of pared down about a year ago, what it would give
Reuven Lerner: money for. And then about five months ago, six months ago, I think it was in July or August,
Reuven Lerner: they said, actually, we're not going to be able to fund anything for about a year now.
Reuven Lerner: And then there was the government grant, I think from the NSF that they turned down. And I'm not disputing the reasons for that at all. It basically, it said, well, we'll give you the money if you don't worry about diversity and inclusion. And given that that's like a core part of what the PSF is supposed to do, they could not do that without shutting the doors, which would be kind of counterproductive.
Reuven Lerner: And so I feel like we're not yet there, but we're sort of approaching this, I'm going to term like a problem crisis in funding Python.
Reuven Lerner: The needs of the community keep growing and growing, whether it's workshops, whether it's PyPI, whether it's conferences.
Reuven Lerner: And companies are getting squeezed.
Reuven Lerner: And the number of people, it always shocks me every time there are PSF elections, the incredibly small number of people who vote.
Reuven Lerner: Which means that, let's assume half the people who are members, third of the people.
Reuven Lerner: Like for the millions and millions of people who program Python out there, an infinitesimally
Reuven Lerner: small proportion of them actually join and help to fund it.
Reuven Lerner: So I'm not quite sure what to do with this other than express concern.
Reuven Lerner: But I feel like we've got to figure out ways to fund Python and the PSF in new ways that
Reuven Lerner: will allow it to grow and scale as needed.
Thomas Wourters: I couldn't agree more.
Thomas Wourters: Obviously, the PSF is close to my heart because I was on the board for, I think, a total of
Thomas Wourters: six or nine years or something over, you know, the last 25.
Thomas Wourters: I was also for six months, I was the interim general manager because Eva left and we hadn't
Thomas Wourters: hired Deb yet while I was on the board.
Thomas Wourters: I remember signing the sponsor contracts for the companies that came in wanting to sponsor
Thomas Wourters: Python.
Thomas Wourters: And it is like, it's ridiculous how, and I can say this working for a company that is
Thomas Wourters: one of the biggest sponsors of the PSF and has done so for years.
Thomas Wourters: It's ridiculous how small those sponsorships are and yet how grateful we were that they
Thomas Wourters: came in because every single one has such a big impact.
Thomas Wourters: You can do so much good with the money that comes in.
Thomas Wourters: We need more corporate sponsorships more than we need.
Thomas Wourters: Like, I mean, obviously a million people giving us a couple of bucks, giving the PSF, let's
Thomas Wourters: be clear.
Thomas Wourters: I'm not on the board anymore.
Thomas Wourters: Giving the PSF a couple of bucks would be fantastic.
Thomas Wourters: But I think the big players in the big corporate players where all the AI money is, for instance,
Thomas Wourters: having done basically no sponsorship of the PSF is mind-boggling. It is a textbook
Thomas Wourters: tragedy of the commons right there, right? They rely entirely on PyPI and PyPI is run entirely
Thomas Wourters: with community resources, mostly because of very generous and consistent sponsorship,
Thomas Wourters: basically by Fastly, but also the other sponsors of the PSF. And yet very large players use those
Thomas Wourters: resources more than anyone else and don't actually contribute. Georgie Kerr, she wrote this fantastic
Jodie Burchell: blog post saying pretty much this straight after Europython. So Europython this year was really big
Jodie Burchell: actually. And she was wandering around looking at the sponsor booths and the usual players were there,
Jodie Burchell: but none of these AI companies were there. And the relationship actually between AI, if you want to
Jodie Burchell: call it that. Let's call it ML and neural networks. And like some of the really big companies and
Jodie Burchell: Python actually is really complex. Obviously, a lot of these companies and some of us are here,
Jodie Burchell: employ people to work on Python. Companies like Meta and Google have contributed massively to
Jodie Burchell: frameworks like PyTorch, TensorFlow, Keras. So it's not as simple a picture as saying cough up money
Jodie Burchell: all the time. Like there's a more complex picture here, but definitely there are some notable
Jodie Burchell: absences. And we talked about the volume of money going through. I totally agree with the sentiment.
Jodie Burchell: When the shortfall came and the grants program had to shut down, we were brainstorming at JetBrains,
Jodie Burchell: like maybe we can do some sort of, I don't know, donate some more money and call other companies
Jodie Burchell: to do it. Or we can call on people in the community. And I was like, I don't want to call
Jodie Burchell: on people in the community to do it because they're probably the same people who are also
Jodie Burchell: donating their time for Python. Like it's just squeezing people who give so much of themselves
Jodie Burchell: to this community even more. And it's not sustainable. Like Reuben said, if we keep doing
Jodie Burchell: this, the whole community is going to collapse. Like I'm sure we've all had our own forms of
Brett Cannon: burnout from giving too much. I'm going to pat ourselves on the back here. Everyone on this
Brett Cannon: call who works at a company are all sponsors of the PSF. Thank goodness. But there's obviously a
Brett Cannon: lot of people not on this call who are not sponsors. And I know personally, I wished every
Brett Cannon: company that generated revenue from python usage donated to the psf like and it doesn't see and i
Brett Cannon: think part of the problem is some people think it has to be like a hundred thousand dollars it does
Brett Cannon: not have to be a hundred thousand dollars now if you can afford that amount please do or more there
Brett Cannon: are many ways to donate more than the maximum amount for getting on the website but it's one
Brett Cannon: of these funny things where a lot of people just like oh it's not me right like even startups don't
Brett Cannon: some do to give those ones credit but others don't because like oh we're we're burning through
Brett Cannon: capital level i was like yeah but we're not we're asking for like less so you'd pay a dev right by
Brett Cannon: a lot per year right like the amount we actually asked for to get to the highest tier is still less
Brett Cannon: than a common developer in silicon valley if we're gonna price point to a geograph geogra geographical
Thomas Wourters: location we call kind of comprehend i'm gonna steal a net bachelor's observation here and yeah what
Thomas Wourters: the psf would be happy with is less than a medium company spends on the tips of expensed meals every
Brett Cannon: year. Yeah. Yeah. And it's a long running problem, right? Like, I mean, I've been on the PSF for a
Brett Cannon: long time, too. I've not served as many years as Thomas on the board, but I was like executive
Brett Cannon: vice president because we had to have someone with that title at some point. It's always been a
Brett Cannon: struggle, right? Like I and I also want to be clear, I'm totally appreciative of where we have
Brett Cannon: gotten to, right? Because for the longest time, I was just dying for paid staff on the core team.
Brett Cannon: And now we have three developers as residents. Thank goodness. Still not enough to be clear.
Brett Cannon: I want five.
Brett Cannon: And I've always said that,
Brett Cannon: but I'll happily take three.
Brett Cannon: But it's one of these things
Brett Cannon: where it's a constant struggle.
Brett Cannon: And it got a little bit better
Brett Cannon: before the pandemic
Brett Cannon: just because everyone
Brett Cannon: was spending on conferences
Brett Cannon: and PyCon US is a big driver
Brett Cannon: for the Python Software Foundation.
Brett Cannon: And I know your Python's a driver
Brett Cannon: for the European Society.
Brett Cannon: But then COVID hit
Brett Cannon: and conferences haven't picked back up.
Brett Cannon: And then there's a whole new cohort
Brett Cannon: of companies that have come in post-pandemic
Brett Cannon: that have never had that experience
Brett Cannon: of going to PyCon and sponsoring PyCon.
Brett Cannon: And so they don't think about,
Brett Cannon: I think, sponsoring PyCon
Brett Cannon: the PSF because that's also a big kind of in your face, you should help sponsor this.
Brett Cannon: And I think it's led to this kind of lull where offered spending has gone down, new entrants
Brett Cannon: into the community have not had that experience and thought about it. And it's led to this kind
Brett Cannon: of dearth where, yeah, that PSF had to stop giving out grant money. And it sucks. And I would love
Reuven Lerner: to see it not be that problem. I want to add one interesting data point that I discovered in
Reuven Lerner: short. Keep it short. Yes. NumFocus has about twice the budget of the PSF. I was shocked to
Reuven Lerner: discover this. So basically it is possible to get money from companies to sponsor development of
Reuven Lerner: Python related projects. And I don't know what they're doing that we aren't. And I think it's
Michael Kennedy: worth talking and figuring it out. We need a fundraiser and marketer in residence, maybe. Who
Thomas Wourters: knows? Lauren does a great job, to be clear. The PSF has Lauren and Lauren is that. But it's still
Brett Cannon: hard. We have someone doing it full time at the PSF and it's just hard to get companies to give
Brett Cannon: cash up cash.
Michael Kennedy: Yeah, and what do we get in return?
Michael Kennedy: Well, we already get that.
Michael Kennedy: So, yeah, I know.
Barry Warsaw: All right, Barry.
Barry Warsaw: To just, you know, shift gears
Barry Warsaw: into a different area,
Barry Warsaw: something that I've been thinking a lot
Barry Warsaw: over this past year on the steering council.
Barry Warsaw: Thomas, I'm sure, is going to be,
Barry Warsaw: you know, very well aware,
Barry Warsaw: having been instrumental
Barry Warsaw: in the lazy imports PEP A10.
Barry Warsaw: We have to sort of rethink
Barry Warsaw: how we evolve Python
Barry Warsaw: and how we pose changes to Python
Barry Warsaw: and how we discuss those changes in the community.
Barry Warsaw: Because I think one of the things that I have heard
Barry Warsaw: over and over and over again is that authoring PEPs
Barry Warsaw: is incredibly difficult and emotionally draining
Barry Warsaw: and it's a time sink.
Barry Warsaw: And leading those discussions on discuss.python.org,
Barry Warsaw: which we typically call DPO,
Barry Warsaw: can be toxic at times and very difficult.
Barry Warsaw: So one of the things that I realized
Barry Warsaw: as I was thinking about this
Barry Warsaw: is that peps are 25 years old now, right?
Barry Warsaw: So we've had this,
Barry Warsaw: and not only just peps are old,
Barry Warsaw: but like we've gone through at least two,
Barry Warsaw: if not more sort of complete revolutions
Barry Warsaw: in the way we discuss things.
Barry Warsaw: You know, the community has grown incredibly.
Barry Warsaw: The developer community is somewhat larger,
Barry Warsaw: but just the number of people
Barry Warsaw: who are using Python and who have an interest in it has grown exponentially. So it has become
Barry Warsaw: really difficult to evolve the language in the standard library and the interpreter. And we need
Barry Warsaw: to sort of think about how we can make this easier for people and not lose the voice of the user.
Barry Warsaw: And the number of people who actually engage in topics on DPO is the tip of the iceberg. You know,
Barry Warsaw: We've got millions and millions of users out there in the world who, for example, lazy imports will affect, free threading will affect and don't even know that they have a voice.
Barry Warsaw: And maybe we have to basically represent that, but we have to do it in a much more collaborative and positive way.
Barry Warsaw: That's something that I've been thinking about a lot.
Barry Warsaw: And whether or not I'm on the steering council next year, I think this is something that I'm going to spend some time on trying to think about, you know, talk to people about ways we can make this easier for everyone.
Michael Kennedy: The diversity of use cases for Python in the last couple of years.
Michael Kennedy: So complex.
Michael Kennedy: Yes, exactly.
Brett Cannon: It should also be preface that Barry created the PEP process. He should have started that one.
Barry Warsaw: It is that old.
Barry Warsaw: Yeah.
Brett Cannon: By the way, just so everyone knows, these are not ages jokes to be mean to Barry.
Brett Cannon: We've always known Barry long enough that we know Barry's okay with us making these jokes.
Brett Cannon: To be very, very clear.
Thomas Wourters: Also, I am almost as old as Barry, although I don't look as old as Barry.
Brett Cannon: Yeah, we're all over from the same age anyways.
Thomas Wourters: Yeah, Barry and I have known each other for 25 years,
Thomas Wourters: and I've always made these jokes of him.
Thomas Wourters: So it is different when you know each other in person.
Thomas Wourters: Let's put it that way.
Thomas Wourters: For the PEP process, I think for a lot of people,
Thomas Wourters: it's not obvious how difficult the process is.
Thomas Wourters: I mean, it wasn't even obvious to me.
Thomas Wourters: I saw people avoiding writing peps multiple times,
Thomas Wourters: and I was upset, like on the steering council, right?
Thomas Wourters: I saw people making changes where I thought,
Thomas Wourters: this is definitely something
Thomas Wourters: that should have been discussed in a PEP
Thomas Wourters: and the discussion should be recorded in a PEP and all that.
Thomas Wourters: And I didn't understand why they didn't until,
Thomas Wourters: basically until PEP 8.10.
Thomas Wourters: So I did PEP 779,
Thomas Wourters: which was the giving free threading supported status
Thomas Wourters: at the start of the year.
Thomas Wourters: And the discussion there was, you know,
Thomas Wourters: sort of as expected and it's already,
Thomas Wourters: was already an accepted PEP.
Thomas Wourters: It was just the question of how does it become supported?
Thomas Wourters: That one wasn't too exhausting.
Thomas Wourters: And then we got to Lazy Imports, which was Pablo, who is another steering council member,
Thomas Wourters: as well as a bunch of other contributors, including me and two of my co-workers and
Thomas Wourters: one of my former co-workers, who had all had a lot of experience with Lazy Imports, but
Thomas Wourters: not necessarily as much experience with the PEP process.
Thomas Wourters: And Pablo took the front seat because he knew the PEP process and he's done like five PEPs
Thomas Wourters: in the last year or something, some ridiculous number.
Thomas Wourters: And he shared with us the vitriol he got for like offline for the, just the audacity of proposing
Thomas Wourters: something that people disagreed with or something. And that was like, this is a technical suggestion.
Thomas Wourters: This is not a code of conduct issue where I have received my fair share of vitriol around.
Thomas Wourters: This is a technical discussion. And yet he gets this, these ridiculous accusations in his mailbox.
Thomas Wourters: And for some reason, only the primary author gets it as well, which is just weird to me.
Brett Cannon: But people are lazy.
Brett Cannon: Thomas is what I think you just said.
Barry Warsaw: Remember, the steering council exists because Guido was the got the brunt of this for Pet 572, which was the walrus operator.
Barry Warsaw: Right. Which is just like this minor little syntactic thing that is kind of cool when you need it.
Barry Warsaw: But like just the amount of anger and negative energy and vitriol that he got over that was enough to for him to just say, I'm out, you know, and you guys figure it out.
Barry Warsaw: And that cannot be an acceptable way to discuss the evolution of the language.
Thomas Wourters: Especially since apparently now every single PEP author of any contentious or semi contentious pep.
Thomas Wourters: Although I have to say, Pep 810 had such broad support.
Thomas Wourters: It was hard to call it contentious.
Thomas Wourters: It's just there's a couple of very loud opinions, I guess.
Thomas Wourters: And I'm not saying we shouldn't listen to people.
Thomas Wourters: We should definitely listen to especially contrary opinions.
Thomas Wourters: But there has to be a limit.
Thomas Wourters: There has to be an acceptable way of bringing things up.
Thomas Wourters: There has to be an acceptable way of saying, hey, you didn't actually read the Pep.
Thomas Wourters: please go back and reconsider everything you said after you fully digested the things,
Thomas Wourters: because everything's already been addressed in the pep.
Thomas Wourters: It's just really hard to do this in a way that doesn't destroy the relationship with the person you're telling this, right?
Thomas Wourters: It's hard to tell people, hey, I'm not going to listen to you because you haven't, you know, you've done a bad job.
Brett Cannon: You've chosen not to inform yourself.
Barry Warsaw: I think you make another really strong point, Thomas, which is that there have been changes that have been made to Python that really should have been a pep.
Barry Warsaw: And they aren't because people don't want to go through core developers, don't want to go through this gauntlet.
Barry Warsaw: And so they'll create a PR and then that.
Barry Warsaw: But that's also not good because then, you know, we don't have that.
Barry Warsaw: We don't have the right level of consideration.
Barry Warsaw: And you think about the way that, you know, if you're in your job and you're making a change to something in your job, you have a very close relationship to your teammates.
Barry Warsaw: And so you have that kind of respect and hopefully, right, like compassion and consideration.
Barry Warsaw: And you can have a very productive discussion about a thing and you may win some arguments and you may lose some arguments, but the team moves forward as one.
Barry Warsaw: And I think we've lost a bit of that in Python.
Michael Kennedy: So that's not great.
Michael Kennedy: I think society in general could use a little more civility and kindness, especially to strangers that they haven't met in forums, social media, driving, you name it.
Michael Kennedy: Okay, but we're not going to solve that here, I'm sure.
Michael Kennedy: So instead, let's do Gregory's topic.
Gregory Kapfhammer: Hey, I'm going to change topics quite a bit, but I wanted to call 2025 the year of type checking and language server protocols.
Gregory Kapfhammer: So many of us probably have used tools like mypy to check to see if the types line up in our code or whether or not we happen to be overriding functions correctly.
Gregory Kapfhammer: And so I've used mypy for many years and loved the tool and had a great opportunity to chat with the creator of it.
Gregory Kapfhammer: And I integrate that into my CI and it's really been wonderful.
Gregory Kapfhammer: And I've also been using a lot of LSPs, like, for example, PyRite or PyLands.
Gregory Kapfhammer: But in this year, one of the things that we've seen is, number one, Pyrefly from the team at Meta.
Gregory Kapfhammer: We've also seen ty from the team at Astral.
Gregory Kapfhammer: And there's another one called Zubon.
Gregory Kapfhammer: And Zubon is from David Halter.
Gregory Kapfhammer: David was also the person who created JEDI,
Gregory Kapfhammer: which is another system in Python that helped with a lot of LSP tasks.
Gregory Kapfhammer: What's interesting about all three of the tools that I just mentioned
Gregory Kapfhammer: is that they're implemented in Rust,
Gregory Kapfhammer: and they have taken a lot of the opportunity to make the type checker
Gregory Kapfhammer: and or the LSP significantly faster.
Gregory Kapfhammer: So for me, this has changed how I use the LSP or the type checker and how frequently I use it.
Gregory Kapfhammer: And in my experience, it has helped me to take things that might take tens of seconds or hundreds of seconds and cut them down often to less than a second.
Gregory Kapfhammer: And it's really changed the way in which I'm using a lot of the tools like ty or Pyrefly or Zubon.
Gregory Kapfhammer: So I can have some more details if I'm allowed to share, Michael, but I would say 2025 is the year of type checkers and LSPs.
Michael Kennedy: I think given the timing, let's have people give some feedback.
Michael Kennedy: I personally have been using Pyrefly a ton and am a big fan of it.
Thomas Wourters: I don't know if I'm allowed to have an opinion that isn't Pyrefly is awesome.
Thomas Wourters: I mean, I'm not on the Pyrefly team, but I do regularly chat with people from the Pyrefly team.
Michael Kennedy: Tell people real quick what it is, Thomas.
Thomas Wourters: So Pyrefly is Meta's attempt at a Rust-based type checker.
Thomas Wourters: And so it's very similar to ty.
Thomas Wourters: Started basically at the same time, a little later.
Thomas Wourters: Meta originally had a type checker called Pyre, which was written in OCaml.
Thomas Wourters: They basically decided to start a rewrite in Rust.
Thomas Wourters: And then that really took off.
Thomas Wourters: And that's where we're going now.
Brett Cannon: Yeah.
Brett Cannon: I don't know what I can say because I'm actually on the same team as the Pylands team.
Brett Cannon: So, but no, I mean, I think it's good.
Brett Cannon: I think this is one of those interesting scenarios
Brett Cannon: where some people realize like,
Brett Cannon: you know what, we're going to pay the penalty
Brett Cannon: of writing a tool in a way that's faster,
Brett Cannon: but makes us go slower
Brett Cannon: because the overall win for the community
Brett Cannon: is going to be a good win.
Brett Cannon: So it's worth that headache, right?
Brett Cannon: Not to say I don't want to scare people off
Brett Cannon: from writing Rust, but let's be honest,
Brett Cannon: it takes more work to write Rust code
Brett Cannon: than it does take to write Python code.
Brett Cannon: But some people chose to make that trade off
Brett Cannon: and we're all benefiting from it.
Brett Cannon: The one thing I will say
Brett Cannon: that's kind of interesting from this
Brett Cannon: that hasn't gotten a lot of play yet
Brett Cannon: because it's still being developed,
Brett Cannon: But PyLens is actually working with the Pyrefly team to define a type server protocol, TSP, so that a lot of these type servers can just kind of feed the type information to a higher level LSP and let that LSP handle the stuff like symbol renaming and all that stuff.
Brett Cannon: Right. Because the key thing here and the reason there's so many different type checkers is there are there is a spec.
Brett Cannon: Right. And everyone's trying to implement it. But there's differences like in type in terms of type inferencing.
Brett Cannon: And if I actually go listen to Michael's interview,
Brett Cannon: talk Python to me with the Pyrefly team,
Brett Cannon: they actually did a nice little explanation
Brett Cannon: of the difference between Pyrites approach
Brett Cannon: and Pyrefly's approach.
Brett Cannon: And so there's a bit of variance.
Brett Cannon: But for instance, I think there's some talk now
Brett Cannon: of trying to like, how do we make it
Brett Cannon: so everyone doesn't have to reimplement
Brett Cannon: how to rename a symbol, right?
Brett Cannon: That's kind of boring.
Brett Cannon: That's not where the interesting work is.
Brett Cannon: And that's not performant from perspective of
Brett Cannon: you want instantaneously to get that squiggly red line
Brett Cannon: in whether it's VS Code
Brett Cannon: or it's in PyCharm or whatever your editor is, right?
Brett Cannon: You want to get it as fast as possible,
Thomas Wourters: but the rename-
Brett Cannon: Jupyter.
Thomas Wourters: Jupyter.
Thomas Wourters: No, not Emacs.
Thomas Wourters: Everything but Emacs.
Brett Cannon: No, not Emacs.
Barry Warsaw: Just to bring things full circle,
Barry Warsaw: it's that focus on user experience, right?
Barry Warsaw: Which is, yes, you want that squiggly line,
Barry Warsaw: but when things go wrong,
Barry Warsaw: when your type checker says,
Barry Warsaw: oh, you've got a problem,
Barry Warsaw: you know, like I think about as an analogy,
Barry Warsaw: how Pablo has done an amazing amount of work
Barry Warsaw: on the error reporting, right?
Barry Warsaw: When you get an exception and, you know, now you have a lot more clues about what is it that I actually have to change to make the tool, you know, to fix the problem, right?
Barry Warsaw: Like so many times years ago, you know, when people were using mypy, for example, and they'd have some complex failure of their type annotations and have absolutely no idea what to do about it.
Barry Warsaw: And so getting to a place where now we're not just telling people you've done it wrong,
Barry Warsaw: but also here's some ideas about how to fix it.
Michael Kennedy: I think this is a full circle here because honestly, using typing in your Python code
Michael Kennedy: gives a lot of context to the AI when you ask for help.
Michael Kennedy: If you just give it a fragment and it can't work with it.
Gregory Kapfhammer: That's true.
Gregory Kapfhammer: And also, if you can teach your AI agent to use the type checkers and use the LSPs,
Gregory Kapfhammer: it will also generate better code for you.
Gregory Kapfhammer: I think the one challenge I would add to what Barry said a moment ago is that if you're a developer and you're using, say, three or four type checkers at the same time, you also have to be careful about the fact that some of them won't flag an error that the other one will flag.
Gregory Kapfhammer: So I've recently written Python programs and even built a tool with one of my students named Benedek that will automatically generate Python programs that will cause type checkers to disagree with each other.
Gregory Kapfhammer: I will flag it as an error, but none of the other tools will flag it as an error.
Gregory Kapfhammer: And there are also cases where the new tools will all agree with each other, but disagree with mypy.
Gregory Kapfhammer: So there is a type checker conformance test suite.
Gregory Kapfhammer: But I think as developers, even though it might be the year of LSP and type checker,
Gregory Kapfhammer: we also have to be aware of the fact that these tools are maturing and there's still disagreement among them.
Gregory Kapfhammer: and also just different philosophies when it comes to how to type check and how to infer.
Gregory Kapfhammer: And so we have to think about all of those things as these tools mature and become part of our ecosystem.
Michael Kennedy: Yeah, Greg, that last point is important.
Thomas Wourters: Out of curiosity, how did the things where the type checkers disagree
Thomas Wourters: match up with the actual runtime behavior of Python?
Thomas Wourters: Was it like false positives or false negatives?
Gregory Kapfhammer: That's a really good question.
Gregory Kapfhammer: I'll give you more details in the show notes because we actually have it in a GitHub repository
Gregory Kapfhammer: and I can share it with people.
Gregory Kapfhammer: But I think some of it might simply be related to cases where mypy is more conformant to the spec, but the other new tools are not as conformant.
Gregory Kapfhammer: So you can import overload from typing and then have a very overloaded function.
Gregory Kapfhammer: And mypy will actually flag the fact that it's an overloaded function with multiple signatures, whereas PyRite and Pyrefly and Zubon will not actually flag that, even though they should.
Michael Kennedy: Another big area is optional versus not optional.
Michael Kennedy: Yes.
Michael Kennedy: Like, are you allowed to pass a thing that is an optional string when the thing accepts a string?
Michael Kennedy: Some stuff's like, yeah, it's probably fine.
Michael Kennedy: Others are like, no, no, no.
Michael Kennedy: This is an error that you have to do a check.
Michael Kennedy: And if you want to switch type checkers, you might end up with a thousand warnings that you didn't previously had because of an intentional difference of opinion on how strict to be, I think.
Gregory Kapfhammer: Yeah.
Gregory Kapfhammer: So you have to think about false positives and false negatives when you're willing to break the build because of a type error.
Gregory Kapfhammer: All of those things are things you have to factor in.
Gregory Kapfhammer: But to go quickly to this connection to AI, I know it's only recently, but the Pyrefly
Gregory Kapfhammer: team actually announced that they're making Pyrefly work directly with Pydantic AI.
Gregory Kapfhammer: So there's going to be an interoperability between those tools so that when you're building
Gregory Kapfhammer: an AI agent using Pydantic AI, you can also then have better guarantees when you're using
Gregory Kapfhammer: Pyrefly as your type checker.
Jodie Burchell: It makes total sense, though, because then the reasoning LLM that's at the core of the
Jodie Burchell: agent can actually have that information before it tries to execute the code and you don't get in that
Jodie Burchell: loop that they often get in. You can correct it before it runs. Yeah, really good point. I want to
Reuven Lerner: just sort of express my appreciation to all the people working on this typing stuff. As someone
Reuven Lerner: who's come from many, many years in dynamic languages, I was always like, oh, typing. Those
Reuven Lerner: E, I love seeing how easy it is for people to ease into it when they're in Python.
Reuven Lerner: It's not all or nothing.
Reuven Lerner: C, I love the huge number of tools.
Reuven Lerner: The competition in this space is really exciting.
Reuven Lerner: And D, guess what?
Reuven Lerner: It really, really does help.
Reuven Lerner: And I'll even add an E, which is my students who come from Java, C++, C#, and so forth
Reuven Lerner: feel relief.
Reuven Lerner: They find that without type checking, it's like doing a trapeze act without a safety
Reuven Lerner: net.
Reuven Lerner: And so they're very happy to have that typing in there,
Reuven Lerner: typings in there.
Reuven Lerner: So kudos to everyone.
Michael Kennedy: All right, folks, we are out of time.
Michael Kennedy: This could literally go for hours longer.
Michael Kennedy: It was a big year.
Michael Kennedy: It was a big year,
Michael Kennedy: but I think we need to just have a final word.
Michael Kennedy: I'll start and we'll just go around.
Michael Kennedy: So my final thought here is,
Michael Kennedy: we've talked about some things that are negatives
Michael Kennedy: or sort of downers or whatever here and there,
Michael Kennedy: but I still think it's an incredibly exciting time
Michael Kennedy: To be a developer, data scientist, there's so much opportunity out there.
Michael Kennedy: There's so many things to learn and take advantage of and stay on top of.
Michael Kennedy: And amazing.
Michael Kennedy: Every day is slightly more amazing than the previous day.
Michael Kennedy: So I love it.
Michael Kennedy: Gregory, let's go to you next.
Michael Kennedy: Let's go around the circle.
Gregory Kapfhammer: Yeah, I wanted to give a shout out to all of the local Python conferences.
Gregory Kapfhammer: I actually, on a regular basis, have attended the PyOhio conference.
Gregory Kapfhammer: And it is incredible.
Gregory Kapfhammer: The organizers do an absolutely amazing job.
Gregory Kapfhammer: And they have it hosted on a campus, oftentimes at Ohio State or Cleveland State University.
Gregory Kapfhammer: And incredibly, PyOhio is a free conference that anyone can attend with no registration fee.
Gregory Kapfhammer: So Michael, on a comment that I think is really positive, wow, I'm so excited about the regional
Gregory Kapfhammer: Python conferences that I've been able to attend.
Gregory Kapfhammer: Thomas.
Thomas Wourters: Wow, I didn't expect this.
Thomas Wourters: So I think I want to give a shout out to new people joining the community and also joining
Thomas Wourters: just core developer team as triagers or it's just drive by commenters. I know we harped a little bit
Thomas Wourters: about people, you know, giving strong opinions and discussions, but I always look to the far future
Thomas Wourters: as well as the near future. And we always need new people. We need new ideas. We need new opinions. So
Thomas Wourters: yeah, I'm, I'm excited that there's still people joining and signing up and even when it's
Thomas Wourters: thankless work. So I guess I want to say thank you to people doing all the thankless work. Jodi.
Jodie Burchell: Yeah, I want to say this is actually really only my third year or so really in the Python community.
Jodie Burchell: So before that, I was just sort of on the fringes, right?
Jodie Burchell: And after I started advocacy, I started going to the conferences and meeting people.
Jodie Burchell: And I think I didn't kind of get how special the community was until I watched the Python documentary this year.
Jodie Burchell: And I talked to Paul about this, Paul Everett afterwards, also made fun of him for his like early 2000s fashion.
Jodie Burchell: but I think, yeah, like I'm a relative newcomer to this community and you've all made me feel so
Jodie Burchell: welcome. And I guess I want to thank all the incumbents for everything you've done to make
Jodie Burchell: this such a special tech community for minorities and everyone, newbies, you know, Python,
Brett Cannon: Python is love. Oh, geez. How am I supposed to follow that?
Brett Cannon: I think one of the interesting things that we're kind of looping on here is
Brett Cannon: I think the language evolution has slowed down, but it's obviously not stopped, right?
Brett Cannon: Like as Thomas pointed out, there's a lot more stuff happening behind the scenes.
Brett Cannon: Lazy imports are coming, and that was a syntactic change, which apparently brings out the mean side of some people.
Brett Cannon: And we've obviously got our challenges and stuff, but things are still going.
Brett Cannon: We're still looking along.
Brett Cannon: We're still trying to be an open, welcoming place for people like Jody and everyone else who's new coming on over
Brett Cannon: and to continue to be a fun place for all of us slightly grain-beard people who have been here for a long time
Brett Cannon: to make us want to stick around.
Brett Cannon: I think it's just more of the same, honestly.
Brett Cannon: It's all of us just continuing to do what we can
Brett Cannon: to help out to keep this community being a great place.
Brett Cannon: And it all just keeps going forward.
Brett Cannon: And I'll just end with,
Brett Cannon: if you work for a company that's not sponsored the PSF,
Brett Cannon: please do so.
Reuven Lerner: It's rare to have, I mean, a programming language
Reuven Lerner: or any sort of tool
Reuven Lerner: where it is both really, really beneficial to your career
Reuven Lerner: and you get to hang out with really special,
Reuven Lerner: nice, interesting people.
Reuven Lerner: And it's easy to take all that for granted if you've been steeped in the community.
Reuven Lerner: I went to a conference about six months ago, a non-Python conference.
Reuven Lerner: And that was shocking to me to discover that all the speakers were from advertisers and sponsors.
Reuven Lerner: Everything was super commercialized.
Reuven Lerner: People were not interested in just like hanging out and sharing with each other.
Reuven Lerner: And it was a shock to me because I've been to basically only Python conferences for so many years.
Reuven Lerner: I was like, oh, that's not the norm in the industry.
Reuven Lerner: So we've got something really special going that not only is good for the people, but good for everyone's careers and mutually reinforcing and helping each other.
Reuven Lerner: And that's really fantastic.
Reuven Lerner: And we should appreciate that.
Barry Warsaw: Barry, final word.
Barry Warsaw: Thomas stole my thunder just a little bit, but just to tie a couple of these ideas together.
Barry Warsaw: Python, and you know, Brett said this, right?
Barry Warsaw: This is Python is the community or the community is Python.
Barry Warsaw: There's no company that is telling anybody what Python should be.
Barry Warsaw: Python is what we make it.
Barry Warsaw: And, you know, as folks like myself get a little older
Barry Warsaw: and, you know, and we have younger people
Barry Warsaw: coming into the community,
Barry Warsaw: both developers and everything else
Barry Warsaw: who are shaping Python into their vision.
Barry Warsaw: I encourage you,
Barry Warsaw: if you've thought about becoming a core dev,
Barry Warsaw: find a mentor.
Barry Warsaw: There are people out there that will help you.
Barry Warsaw: If you want to be involved in the community, the PSF,
Barry Warsaw: you know, reach out.
Barry Warsaw: There are people who will help guide you
Barry Warsaw: this community. You can be involved. Do not let any self-imposed limitations stop you from
Barry Warsaw: becoming part of the Python community in the way that you want to. And eventually run for the
Thomas Wourters: steering council because we need many, many, many more candidates next year. And you don't need any
Thomas Wourters: qualifications either because I'm a high school dropout and I never went to college or anything.
Thomas Wourters: And look at me.
Brett Cannon: And I have a PhD and I will tell you,
Brett Cannon: I did not need all that to become a Python developer
Brett Cannon: because I was the Python developer before I got the PhD.
Brett Cannon: I'm a bass player.
Barry Warsaw: So if I can do it, anybody can do it.
Michael Kennedy: Thank you everyone for being here.
Michael Kennedy: This awesome look back in the air
Michael Kennedy: and I really appreciate you all taking the time.
Gregory Kapfhammer: Thank you, Michael.
Gregory Kapfhammer: Thanks everybody.
Michael Kennedy: Bye everybody.
Michael Kennedy: This has been another episode of Talk Python To Me.
Michael Kennedy: Thank you to our sponsors.
Michael Kennedy: Be sure to check out what they're offering.
Michael Kennedy: It really helps support the show.
Michael Kennedy: Look into the future and see bugs before they make it to production.
Michael Kennedy: Sentry's Seer AI Code Review uses historical error and performance information at Sentry
Michael Kennedy: to find and flag bugs in your PRs before you even start to review them.
Michael Kennedy: Stop bugs before they enter your code base.
Michael Kennedy: Get started at talkpython.fm/seer-code-review.
Michael Kennedy: If you or your team needs to learn Python,
Michael Kennedy: we have over 270 hours of beginner and advanced courses
Michael Kennedy: on topics ranging from complete beginners to async code, Flask, Django, HTMX, and even LLMs.
Michael Kennedy: Best of all, there's no subscription in sight.
Michael Kennedy: Browse the catalog at talkpython.fm.
Michael Kennedy: And if you're not already subscribed to the show on your favorite podcast player,
Michael Kennedy: what are you waiting for?
Michael Kennedy: Just search for Python in your podcast player.
Michael Kennedy: We should be right at the top.
Michael Kennedy: If you enjoy that geeky rap song, you can download the full track.
Michael Kennedy: The link is actually in your podcast blur show notes.
Michael Kennedy: This is your host, Michael Kennedy.
Michael Kennedy: Thank you so much for listening.
Michael Kennedy: I really appreciate it.
Michael Kennedy: I'll see you next time.
Michael Kennedy: I think is the norm.