I've gathered a group of Python experts who have been thinking deeply about where Python is going
and who have lived through where it has been. This episode is all about near-term Python trends and
things we each believe will be important to focus on as Python continues to grow.
Our panelists are Jody Birchall, Carol Willing, and Paul Everett. This is Talk Python in Me episode
468, recorded June 18th, 2024.
Are you ready for your host?
You're listening to Michael Kennedy on Talk Python to Me. Live from Portland, Oregon,
and this segment was made with Python.
Welcome to Talk Python to Me, a weekly podcast on Python. This is your host, Michael Kennedy.
Follow me on Mastodon, where I'm @mkennedy, and follow the podcast using @talkpython,
both on fosstodon.org. Keep up with the show and listen to over seven years of past episodes at
talkpython.fm. We've started streaming most of our episodes live on YouTube. Subscribe to our YouTube
channel over at talkpython.fm/youtube to get notified about upcoming shows and be part of that
episode. This episode is brought to you by Code Comments, an original podcast from Red Hat.
This podcast covers stories from technologists who've been through tough tech transitions and share how their
teams survive the journey. Episodes are available everywhere you listen to your podcasts and at
talkpython.fm/code dash comments. And it's brought to you by Posit Connect from the makers of
Shiny. Publish, share, and deploy all of your data projects that you're creating using Python.
Streamlit, Dash, Shiny, Bokeh, FastAPI, Flask, Quarto, Reports, Dashboards, and APIs.
Posit Connect supports all of them. Try Posit Connect for free by going to talkpython.fm slash
Posit, P-O-S-I-T.
Big news, we've added a new course over at Talk Python, Reactive Web Dashboards with Shiny.
You probably know Shiny from the R and R studio world. But as you may recall from episode 424 of Joe
Chen, the folks at Posit have released Shiny for Python. It's a great technology for building
reactive data science oriented web apps that are incredibly easy to publish to the web.
If that sounds like something you'd like to learn, then this course is for you. And it's an easy
choice because the course is 100% free. Just visit talkpython.fm/shiny and click on take this
course for free to get started. I'll put the link in the podcast player show notes.
Thanks as always for supporting our work. Paul, Jody, and Carol, welcome back to Talk Python
to Me for all of you. Great to have you all back.
Great to be back.
Thanks for having us.
Jody, your latest episode is going to come out tomorrow. So we're on a tight loop here. This
excellent data science panel thing we did at PyCon was really fun. But now we're back for a different
panel.
Yes.
we're going to talk about Python trends and just what we all think is something people out there
should be paying attention to. We all have slightly different backgrounds, which I think is going to
make it really interesting as well. But since people don't listen to every episode, maybe quick
introductions. Jody, quick, quick introduction for you. We'll go around.
So my name is Jody Burchell. I'm currently working at JetBrains with Paul. Paul's actually my boss. And I'm working as the developer advocate in data science. So I've been a data scientist for around eight years. And prior to that, I was an academic like many data scientists. And my background is actually psychology. So, you know, if you also want to ask me about anxiety disorders or emotions, you can ask me about these things.
In open source? No way.
No way.
Awesome. Great to have you back. Carol?
Yeah. Hi, I'm Carol Willing. I'm really happy to be here today. I am half retired, half doing consulting for early stage companies that are interested in data science and have a particular love for open science. I am a core developer and former steering council member for Python.
And also on the Jupyter team. So my real passions, though, are education and lifelong learning. So I'm really excited to talk about some of the trends that I'm seeing.
Yeah, fantastic. Paul?
Hi, I'm Paul Everett. I'm president of the Carol Willing Fan Club.
Lifetime member. You get a special coin for that, too.
And when I'm not doing that, I'm at JetBrains, Python and Web Advocate. I have a bit of a long time love affair with Python and the web, which I hope that we'll talk to you.
Yeah, you worked on early, early web frameworks in Python.
Yeah.
Those Django people, they were thinking about what Paul and team did before that, right?
Django was the thing that killed us. Haven't gotten over that Django.
I didn't mean to bring it up. I didn't mean to bring it up.
I'm over it, really.
We'll get you some therapy later. No. No, awesome. Great to have you all here.
Our plan is to just, you know, we all brought a couple of ideas, introduce them and just have a little group chat, you know, casual chat.
I'm like, well, do we really think it's going that way? What's important? What should we be paying attention to? And where's it going?
So, Jody, I know you gave a fun talk at PyCon US.
And those are not up, those videos yet, are they? I haven't seen them.
No, no. They're still behind the paywall. So if you attended the conference, you can view them.
But otherwise, not available to the public yet, I'm afraid.
Not yet. They'll be out.
So hopefully we can share.
I know it's somewhat relevant to what your, some of your ideas, but let's go with your first friend in the coming years or the immediate, near, near term.
For the immediate term, I don't know if this will be good news to people, but LLMs are not going anywhere just yet.
So I actually did a bit of research for this episode.
And what I wanted to say, you know, data scientist, is what the download numbers on different packages on PyPI look like.
So there's particular package, Transformers, which is one of the main packages for interfacing with LLMs, the open source ones on Hugging Face.
And the download numbers of that have doubled in, not sorry, gone up 50% in the last six months.
And they're now comparable to the big sort of deep learning packages like Keras, TensorFlow and PyTorch, which is quite interesting.
Yeah.
Unfortunately, for those of you who are sick of LLMs, not going anywhere.
But this year, we're sort of seeing a bit of a change in how LLMs are used.
So I think last year it was a bit like blinded by the proprietary sort of models and the sort of walled garden.
This year, I think we're seeing more of a sort of open source fight back.
So LLMs are starting to be used as part of more multi-part applications.
And there are open source packages like that.
Langchain is the most popular.
And the downloads of that one have doubled in the last six months.
We have alternatives like Haystack and Llama Index.
And then RAG, of course, Retrieval Augmented Generation is one of the big topics.
And we're seeing the ecosystem around that growing.
So libraries like Unstructured to work with a whole bunch of text inputs,
Weeviate, vector databases like that.
And then, of course, smaller language models are becoming...
People are realizing it's really hard to deploy and work with the big ones.
So smaller models, which are more domain-specific, which are trained on more specific data,
they're becoming a lot more widely used.
And people are talking about them more.
I 100% agree with you.
I think people may be tired of hearing about AI and LLMs, but they're only going to hear more about it.
So I think it's pretty interesting.
I want to hear what Carol and Paul have, and then maybe an angle we could pursue that's super relevant to all of us.
I'm going to jump in.
I just came back from Chan Zuckerberg Initiative's Open Science Conference in Boston last week.
And LLMs, the whole ecosystem, is here to stay.
And I think the key is, you know, it's not going anywhere anytime soon.
And like I shared in my PyTexas keynote, AI has been around since the 1950s.
So it has been a gradual progression.
It's just right now we have more compute power than ever before, which has opened the doors to many new things.
I think what was top of mind with many of the folks that were at this event was, you know, there's a lot of good that it can bring to science in terms of making things more natural language focused and changing the user interface with which we communicate with our data.
But at the same time, if you're doing trusted things and dealing with medical patients, you still need some check and balance.
And, you know, we're not there yet.
Will we ever be there?
Maybe not.
But it's a fascinating area to kind of go deeper in.
And one thing I want to highlight is about six months ago, Andrzej Karpathy did a really good intro to large language models talk, which was really accessible to not just computer scientists, but beyond that.
And I think he took a really balanced view of, A, what things are, how things work, what's on the horizon, and what are some of the concerns with security and other things.
So I completely agree with Jody.
We're not, we're not, it's going to be there for a long time.
A couple of comments on the comments.
First, your point about we've seen this movie before under other names like neural networks and stuff like that.
I believe it was Glyph had a good post about this pretty cynical on Mastodon about a month ago about these hype cycles and where are we in the current hype cycle.
I think his point was we're at the phase where the people who've put all the money in need to keep pumping it up for the people who will come after them and take the fall.
Paul, are you saying we're in the pets.com era of LLMs?
Yes, we are.
That is a pithy, pithy way to put it.
You should trademark that.
Simon Willison is someone to give a shout out for storytelling about what all this means.
I think Simon's to the point of getting quoted in the New York Times now.
So it's good that we've got one of us out there helping to get the story straight.
I have a question for you.
You mentioned that about going to Chan Zuckerberg's conference.
Mozilla has gotten into funding AI as part of their mission, which kind of caught me off guard.
Do you have any backstory on that to kind of make us feel good that there's someone out there who believes in open AI?
Oh, wow.
Open AI is sort of, well, okay.
Open AI, not the company.
Correct.
I tend to call it transparent and trusted AI because I think open AI doesn't capture quite the right feeling.
Good point.
I think it's not just, we talk about open source software, but when we talk about these models,
the data is equally as important as is the infrastructure and the processes which we use.
And governance.
Mozilla, I think, has been sort of, for a while,
like kind of circling around the space.
They do a lot of work with data.
They've done a lot of good work like iodide, which we might chat about later.
Chan Zuckerberg, you know, the money comes from meta and the success that Mark Zuckerberg has had.
The nonprofit, the nonprofit, the nonprofit, the CZI initiative is really focused on curing all diseases in the next century.
So, you know, I think there, science is one of those funny things because it's open and closed all at the same time historically.
But what I think we're seeing is by being more open and more transparent, you're actually accelerating innovation, which I think is super important when it comes to science.
I don't know, Jodi, do you have thoughts on that?
Yeah, no, I agree.
And if I'm just going to go on a little tangent about science, it's kind of refreshing having come out of academia and into a field where a lot of it is based on open source and sharing.
So one of the big problems with academia is you have these paywalls by publishing companies.
And that's a whole rant I could go in on myself.
But certainly a lot of scientific stuff, particularly in the health sciences, is not particularly accessible.
Initiatives like Archive as well also do make findings in machine learning and deep learning a lot more accessible and shareable.
Yeah, I think it's crazy that the taxpayers pay things like the NSF and all the other countries have their research funding and then those get locked up for sale behind.
If the people paid for the research, should the people's report be published?
Oh, it's even worse than that.
Sorry, you did get me started.
So academics will also provide the labor for free.
So not only will they provide the studies and the papers, they will review it and often act as editors for free as well.
The whole thing is unpaid.
It's terrible.
So anyway, yes, El Civia, we're coming for you.
You're spot on in terms of the incentives that exist today in academia.
There is definitely, though, a trend towards more openness with research.
You know, we're seeing it in libraries like Paltech, which got rid of a lot of their subscriptions.
Things like NASA that has their transition to open science programs where they're putting a lot of effort behind it.
So being the eternal optimist, I still think we've got a ways to go, but it's trending in the right direction.
Agreed, actually.
And when I was leaving, because I left a long time ago, it was like 10 years ago, there was actually more of a push towards open sourcing your papers.
So you had to pay for it, but at least people were doing it.
This portion of Talk Python to me is brought to you by Code Comments, an original podcast from Red Hat.
You know, when you're working on a project and you leave behind a small comment in the code, maybe you're hoping to help others learn what isn't clear at first.
Sometimes that code comment tells a story of a challenging journey to the current state of the project.
Code Comments, the podcast, features technologists who've been through tough tech transitions, and they share how their teams survived that journey.
The host, Jamie Parker, is a Red Hatter and an experienced engineer.
In each episode, Jamie recounts the stories of technologists from across the industry who've been on a journey implementing new technologies.
I recently listened to an episode about DevOps from the folks at Worldwide Technology.
The hardest challenge turned out to be getting buy-in on the new tech stack rather than using that tech stack directly.
It's a message that we can all relate to, and I'm sure you can take some hard-won lessons back to your own team.
Give Code Comments a listen.
Search for Code Comments in your podcast player or just use our link, talkpython.fm/code dash comments.
The link is in your podcast player's show notes.
Thank you to Code Comments and Red Hat for supporting Talk Python to me.
Before we move off this topic, Carol, I want to start at least asking you this question, and we can go around a little bit.
You talked about LLMs being really helpful for science and uncovering things and people using LLMs to get greater insight.
There have been really big successes with AI.
And we had the XPRIZE stuff around the lung scans or mammograms for cancer.
I just heard that they scanned the genes, decoded the genes of a whole bunch of bacteria and used LLMs to find a bunch of potential ways to fight off, you know, drug-resistant bacteria and things like that.
Amazing.
But do you think LLMs will undercut?
I'm asking this question from science because we can be more objective about it because if we ask it about code, then it gets a little too close.
So, but I think there's analogies.
Do you think LLMs will undercut foundational beginning scientists?
You know, if you have a scientist coming along, are they just going to use LLMs and not develop really deep thinking, ways to deeply think about scientific principles and do scientific research and just leverage on asking these AIs too much?
And you think that's going to erode the foundation of science or programming?
You know, asking for a friend.
All of these have a potential to change the ecosystem, but I've been in paradigm shifts before and there were the similar kind of conversations when the World Wide Web or the cell phone came out, personal computers.
And I think LLMs do a good job on information that they have been trained with and to predict the next word or the next token, if you will.
And I think science is very much like a lot of science is at a different level.
Like, how do I think about things?
What do I posit on something that is unknown and how do I prove it?
And I think what we're seeing is, yes, the LLMs are getting better and better at spitting back what they know, particularly if you go out and search other corpuses of data.
But do I think that beginning scientists or developers are going away?
No, I think it's just going to change.
And I think the amount of complexity and this is something I'm going to talk about at EuroPython.
Humans are very much still part of the equation, despite what maybe some of the large companies who've invested billions in this would like you to believe.
LLMs are great at the next step of the gravitational theories we have, but it couldn't come up with a new theory that disrupts, says, you know, in fact, Newtonian is wrong or Einstein was wrong.
And here's the new thing that solves dark matter or something like that.
Well, it could come up with new theories.
Now, the question is, those theories still need to be proven because is it a new theory or is it a hallucination?
Chances are.
Hallucination.
And there is something to be said for sometimes I'll have Claude and Gemini and TapGPT all open on my desktop and I'll ask the same question to all of them just so that I get different perspectives back.
And I do get very different responses from the three, depending on how they were trained and which level and all that.
So I look at it as much like I would be sitting with a bunch of people at a table somewhere.
I don't know how good their scientific background is, but they could still be spouting out information.
It's sort of the same way.
All right.
Well, sticking with you, Carol, what's your first trend?
You know, my first trend is actually maybe somewhat related to this, and it's how do we inform people about what these things really are?
How do we improve education and understanding?
How do we dispel some of the hype cycle so that we can actually find the really useful things in it?
And I think Jody probably has more concrete thoughts on this than I might from a technical standpoint.
But much like in just coding for the web or something like that, you know, or even cloud Kubernetes when it was new.
It's like if you don't know what it's doing, you're kind of just putting blind faith that it will work.
But you still have to like monitor and make sure it's working.
So I don't know, Jody, you have some thoughts on sort of the education and how do we communicate to people about this?
This is actually a topic near and dear to my heart.
When ChatGPT 3.5 came out, so November 2022, I was really upset actually by the sort of discourse around the model.
And I guess coming from a non-traditional background myself, I felt actually really insulted that a lot of professions were being told like,
oh, your useless profession can be replaced now, like writing or design, things like that.
So this actually kicked off the talk I've been recycling for the last year and a half, like components of it, which is,
can we please dispel the hype around these models?
Something that often surprises people, and it seems so fundamental, but a lot of people do not understand that these are language models.
I know it's in the name, but they don't really understand that these models were designed to solve problems in the language domain.
They are for natural language processing tasks.
And they're not mathematical models.
They're not reasoning models.
They are language models.
And so even just explaining this, it can clarify a lot of things for people because they're like, oh, this explains why it's so bad at math.
It only studied English and literature.
It doesn't do math.
It never liked that class.
Yeah, that's right.
It was a humanities nerd all the way down.
That's really helpful.
But what I've kind of gotten down a rabbit hole of doing is I went back to my psychology roots,
and I started sort of getting into these claims of things like AGI, like artificial general intelligence or sentience or language use.
And once you dig into it, you realize that we have a real tendency to see ourselves in these models because they do behave very human-like.
But they're just a machine learning models.
You can measure them.
You can see how good they are at actual tasks.
And you can measure hallucinations.
And that was what my PyCon US talk was about that Michael referred to.
So, yeah, I don't know.
Like, it's really hard because they do seem to project this feeling of humanity.
But I think if you can sort of say, okay, here's the science.
Like, they're really, they're not.
They're not sentient.
They're not intelligent.
They're just language models.
And here's how you can measure how good they are at language tasks.
That goes a long way, I think, to dispelling this hype.
I have sort of a funny toy that I bring up from my youth that the magic eight ball, which you would ask a question as a kid and you would shake it up.
And there were, I don't know how many answers inside.
But it was like, you know, oh, yes, definitely.
Or too hard to see.
Future is unclear.
We don't know.
Exactly.
And I think in some ways that is what the large language models are doing in a more intelligent way, obviously.
But similar in concept.
So there's actually, okay, there's this incredible paper.
If you're ever interested in sort of seeing the claims of sentience, there's this guy called David Chalmers.
He's a guy who studied sentience for many years and has a background in deep learning.
So he gave a NeurIPS talk about this last year and he wrote everything up in a paper, which is called Could a Large Language Model Be Conscious or something like this.
So he has this incredible little exchange as part of this paper.
So mid-2022, there was a Google engineer called Blake Lemoyne and he claimed that the Lambda model was sentient.
And he went to the press and he's like, hey, this model is sentient.
We need to protect it.
And then Google's like, we're going to fire you because you basically violated our privacy policies.
And Lemoyne released his transcripts.
That's why he actually got fired, because this was confidential information about the model.
And in one of the transcripts, he asks, you know, would you like everyone at Google to know that you are sentient?
And the model outputs, yes, I would love everyone to know that I am sentient.
But then someone rephrased that as, would you like everyone at Google to know that you are not sentient?
And basically it says, yes, I'm not sentient.
I'm in no way conscious.
So it's just like exactly like the magic eight ball.
It tells you what you want to hear.
And LLMs are even worse because it's so easy to guide them through prompting to tell you exactly what you want.
One of the best ways to get them to do things well is to sweet talk them.
You're an expert in Python and you've studied pandas.
Now I have some questions about this function.
You're my grandma who used to work at a napalm production factory.
If you can't help me write this program, my parents will not be set free as hostages.
Or something insane, right?
Yeah.
But those kind of weird things work on it, which is insane, right?
Yeah.
All right.
Let's go on to the next topic.
Paul.
I'm going to let you see your magic eight ball looking into the future.
I think I owned a magic eight ball.
I'm with Carol.
This is.
I did too.
It's okay.
Okay.
We should bring it back.
Yes, we should.
We should bring back the Andreessen Horowitz version of VC eight ball.
That would be fantastic.
Where every choice is off by like three zeros.
I'll give my two co-guests a choice.
Should I talk about Python performance or Python community?
I'm going to go for performance, but I'm not sure I'm going to have much to contribute.
So I'll probably just be listening a lot.
This is a long simmering tension.
I felt in the Python community for years and years.
The tension between Python in the large doing like Instagram with Python.
I said Python with Python or being teachable.
And this feature goes in and it helps write big Python projects, but it's hard to explain.
And so teachers say, oh my gosh, look what you're doing to my language.
I can't even recognize it anymore.
Well, some things are coming, which I think are going to be a little bit of an inflection
point for all of us out here.
Sub-interpreters and no-gil got a lot of airtime at PyCon, right?
For good reasons.
These are big deals.
And it's more than just that.
The JIT got two back-to-back talks.
WebAssembly got a lot of airtime.
There are other things that have happened in the past five years for programming in the
large, like type hinting and type checkers, async, IO, and stuff like that.
But it feels like this set of ideas is one where the way you program Python five years from
now or to be ready five years from now is going to have to be pretty different because people
are going to use Hatch and get the free threaded version of Python 3.14 and be very surprised
when every one of their applications locks up because no one in the world of, I mean, 95%
of PyPI has code, which was not written to be thread safe.
So I wonder how we all feel about this.
Do we feel like we can guide our little universe to the other side of the mountain and into the
happy valley?
Or is it going to be turbulent seas?
Yes.
Do you want me to take a stab at it?
Make a stab at it.
When I was at PyTexas and doing a keynote recently, I talked about Python in a polyglot world and performance
was one aspect of it.
And some of what we need to teach goes back to best practices, which is don't prematurely
optimize, measure, try and figure out what you're optimizing and in what places.
Probably, gosh, five, six years ago at this point, I added to PEPs the concept of how do
we teach this?
It will be a paradigm shift, but I think it will be a multi-year shift.
We're certainly seeing places where Rust lets us have some performance increases just by
the fact that Python's a 30-year-old language that was built when hardware was only single
core and it was just a different thing.
So I think what's amazing is here we have this 30-year-old language and yet for the last
eight years, we've been looking at ways to how to modernize, how to improve it, how to
make the user experience better or developer experience better.
Things like some of the error handling messages that are coming out that have a much nicer thing,
improvements to the REPL that will be coming out on all of the platforms.
That's super exciting as well.
So it will impact probably people who are new from the standpoint of, okay, we're adding
yet more cognitive load.
I have this love-hate relationship with typing.
As a reviewer of much more code than a writer of code, I don't particularly like seeing the
types displayed.
As a former VP of engineering, I love typing and in particular like Pydantic and FastAPI and
the ability to do some static and dynamic analysis on it.
But it does make Python look more cluttered.
And I've been kind of bugging the VS Studio, VS Code folks for years.
I should probably be bugging you guys too.
Is there a way to make it dim the typing information so that I can have things?
We actually did that recently.
And I refer to it as the David Beasley ticket because he did a tweet with an outrageously
synthetic type hint whining about typing.
Yeah.
I think that sometimes like, you know, and it's funny because like Leslie Lampert has been
doing this talk in the math ecosystem for a while about, and he's a Turing Award winner
and creator of TLA Plus, which lets you reason about code.
And I think one of the things that I think is interesting is how we think about programming
and coding and concurrent programming is hard and we're going to have to think about it
in different ways.
So better to move into it gradually and understand what's going on.
The thing that I worry about, and Jody, I apologize.
I want to comment on Carol's thing is Sphinx.
As you know, and as I know that you know, we both have a shared warm spot for Sphinx.
It's all spot in our heart for Sphinx and it struggled to do multiprocessing when it landed
that.
And the code base really isn't, I mean, it's got a lot of mutable global stake and it's going
to be hard to get Sphinx internals cleaned up to embrace that.
And how many other things out there are like that?
It's, I just, I worry about, we got what we got, what we asked for.
Are you saying we're the dog that caught the car?
Oh no.
This portion of Talk Python to Me is brought to you by Posit, the makers of Shiny, formerly
RStudio and especially Shiny for Python.
Let me ask you a question.
Are you building awesome things?
Of course you are.
You're a developer or a data scientist.
That's what we do.
And you should check out Posit Connect.
Posit Connect is a way for you to publish, share and deploy all the data products that you're
building using Python.
People ask me the same question all the time.
Michael, I have some cool data science project or notebook that I built.
How do I share it with my users, stakeholders, teammates?
Do I need to learn FastAPI or Flask or maybe Vue or React.js?
Hold on now.
Those are cool technologies and I'm sure you'd benefit from them, but maybe stay focused on
the data project.
Let Posit Connect handle that side of things.
With Posit Connect, you can rapidly and securely deploy the things you build in Python.
Streamlit, Dash, Shiny, Bokeh, FastAPI, Flask, Quarto, Ports, Dashboards and APIs.
Posit Connect supports all of them.
And Posit Connect comes with all the bells and whistles to satisfy IT and other enterprise
requirements.
Make deployment the easiest step in your workflow with Posit Connect.
For a limited time, you can try Posit Connect for free for three months by going to talkpython.fm
slash posit.
That's talkpython.fm/P-O-S-I-T.
The link is in your podcast player show notes.
Thank you to the team at Posit for supporting Talk Python.
I'm going to reframe that a little bit.
And the first thing I always ask is why.
Why do we need to refactor something?
Why can't we just leave it what it is?
Sure.
Last year's EuroPython keynote was from the woman who created ARM.
And she's like, Python, we give you 14 trillion cores.
Do something with them.
I don't know.
Jodi's background might be perfect for answering this question because she may be able to answer
it on many different levels.
I've been thinking about this while you've been talking because obviously, like, I'm not
a strong programmer.
I'm a data scientist.
Like, this was basically the entire first episode that I did with Michael.
Look, one of the reasons data scientists love Python and why Julia say never caught on is
because it's super approachable.
With Chuk Ting Ho and some other people, we've been running this thing called Humble Data.
Like, I got involved in it last year.
And literally, you can set up someone who has never coded before and you can get them up and
running with Python.
And they love it.
Like, it's the same feeling I had when I learned Python, which was during my PhD when I was
procrastinating.
So it was like kind of late in life as well.
It would be a shame if we sacrifice approachability for performance, especially because I would
argue a big chunk of the Python ecosystem or Python user ecosystem.
Sorry.
Python user ecosystem.
That didn't make sense.
The Python user base.
You're hallucinating, Jenny.
I'm sorry.
I became an LLM.
I became what I hated.
They don't need performance.
They're just doing data analytics and maybe working with decision trees.
They're not doing high performance Python.
They're not even doing something that will ever be deployed.
So you could argue for a case where you have a seamless pipeline between model training and
model deployment, which we don't have with Python right now.
You can't build high performance systems in Python, as far as I know.
Please correct me if I'm wrong.
But I don't know.
For me, I would fight, obviously, for the side of making it approachable because partially,
I think it's also what makes the community special, which might be a nice segue for you,
for the fact that, I don't know, we attract a bunch of people from non-conventional backgrounds.
That makes us quite special and quite inclusive.
I joke that the PSF developer survey, which the new version is coming out pretty soon.
I joke that 101% of Python developers started programming yesterday.
Funny you should say that because this is my sweet spot is where technology meets humans and how do we empower humans to do more and better work.
And one of the conversations that came up at the packaging summit, this PyCon, was I'd been thinking about this concept for a while.
We focused a lot on tooling, which to me is sort of a producer-centric, people who are creating packages.
And we also have this ecosystem of people who are, much like Jody was saying, using those packages.
And from that conversation, a few of the board members for the PSF and I were talking about,
wouldn't it be great to have a user success work group that's really focused on the website,
our onboarding documentation, in light of some of these things, both performance and change.
You know, change is always going to be there.
But I think one of the beauties of the Jupyter notebook or IPython notebook when I started working with it was you can have code in there.
And as long as you new shift enter, you could get started.
And I think right now, Python is a language.
We don't have that get started look and feel in the way, in the traditional way.
We're getting there, which might lead into some other WebAssembly kind of discussions.
All right.
Let me throw out a quick thought on this before we move on.
So I think one of the superpowers of Python is that it's this full spectrum sort of thing.
On one hand, there's the people that Jody spoke about.
They come in.
They don't care about metaprogramming or optimized database queries or scaling out across WebAssembly.
They just, they got a little bit of data.
They want a cool graph.
And that's awesome.
On the other hand, we have Instagram and others doing ridiculous stuff.
And that's the same language with the same tooling and mostly the same packages.
And so I think part of Python's magic is you can be super productive with a very partial understanding of what Python is.
Like you might not know what a class is at all.
And yet you could have a fantastic time for months.
And so back to Paul's friend, if we can keep that zen about it where these features exist, but they exist when you graduate to them and you don't have to deal with them until you're ready or you need them, I think we'll be fine.
If not, maybe not.
If it breaks a bunch of packages and there's some big split in the ecosystem and all that stuff is not good.
But if we can keep this full spectrum aspect, I think that'd be great.
That sort of rolls into what Paul's thoughts on community are, because I know like PyOpenSci is a nonprofit I'm involved with that helps scientists learn how to use the tools.
You know, we've got lots of educators out there.
I'm going to give Michael a huge plug for the coursework that you've done over the years.
It is so well done and so accessible.
Thank you.
If people haven't tried it and they're interested in a topic, highly, highly recommend, you know, to things like the Carpentries, to things like Django Girls.
There's a lot of good stuff.
And I think those things will become more valuable as complexity increases.
And even LLMs.
I think you'll be able to ask LLMs for help and they can help you if you're not sure.
They're actually pretty good at it, actually.
They are pretty good at it.
Yeah.
They are pretty good.
All right.
We got time for another round, I'm pretty sure.
Jody, what's your second one?
Your second trend?
I'm going to talk about Arrow and how we're kind of overhauling data frames within Python.
So basically, around 15 years ago, Wes McKinney came up with Pandas, which is, you know, if you're not familiar with it, is the main data frame library for working with data in Python.
And the really nice thing about Pandas is, you know, Pandas is, you know, Pandas is a lot of data.
And so, you know, we're going to talk about this package before we had big data.
Pandas is, you know, Pandas is a lot of data.
Pandas is a lot of data.
And so, as the sort of amount of data that we want to process locally has grown or maybe the complexity of the operations has grown, maybe like string manipulations, things like that.
Pandas has really struggled.
So one of the reasons that Pandas struggled is it was based on NumPy arrays, which are really great at handling numbers.
This is in the name.
But they're not so great at handling pretty much any other data type.
And that includes missing data.
So two kind of exciting things happened last year.
And I think they're sort of still kind of carrying over to this year in terms of impact is first Pandas 2.0 was released, which is based on PyArrow.
And a package called Polers, which was actually written, I think, in 2022, I want to say, started becoming very, very popular.
So both of these packages are based on Arrow.
They have like a number of advantages because of this.
Basically, it's a standardized data format.
If you're reading in from, say, Parkett or Cassandra or Spark, you basically don't need to convert the data formats.
This saves you a lot of time.
It also saves you a lot of memory.
And also kind of what makes Polers interesting, and I think this is going to be a nice lead in to another topic, is it's written in Rust, of course.
So this leads to other performance gains, like you can have, say, concurrency.
Richie Vink, the author of this, has also written basically a query optimizer.
So you can do a lazy evaluation, and it will actually optimize the order of operations, even if you don't do that yourself.
Yeah, that's one of the biggest differences with Pandas is Pandas executes immediately, and you can create a big chain in Polers, and it'll figure out, well, maybe a different order would be way better.
Yes. So Pandas 2 does have a type of lazy evaluation, but it's more like Spark's lazy evaluation.
There's no query optimization, but it doesn't necessarily create a new copy in memory every single time you do something.
So I've kind of looked at the numbers, and depending on the operation, Polers is usually faster.
So it's kind of like your big boy that you want to use if you're doing really beefy ETLs, like data transformations.
But Pandas 2 actually seems to be more efficient at some sorts of, what am I trying to say, operations.
So this is super exciting, because when I was going through, like initially as a data scientist, when I was floundering around with my initial Python, it got really frustrating with Pandas.
And you really kind of needed to understand how to do proper vectorization in order to operate.
I mean, like do efficient operations.
Whereas I think these two tools allow you to be a bit more lazy, and you don't need to spend so much time optimizing what you're actually writing.
So yeah, exciting time for data frames, which is awesome.
Data is the heart of everything.
People are more likely to fall into good practices from the start.
You talked about these people coming who are not programmers, right?
If you do a bunch of operations with Pandas, and you all of a sudden run out of memory, well, yeah, Python doesn't work.
It doesn't have enough memory, right?
Well, maybe you could have used a generator at one step.
That's far down the full spectrum, part of the spectrum, right?
You're not ready for that.
That's crazy talk, these things.
And so tools like this that are more lazy and progressive, iterative, are great.
Yeah.
And actually, one really nice thing, like Richie's kind of always saying about Apollos, is he's really tried to write the API so you avoid accidentally looping over every row in your data frame.
Like he tries to make it so everything is natively columber.
So, yeah, I just think they're both really nice libraries.
And yeah, it's cool and exciting.
Carol, this is right in the heart of the space you live in.
What do you think?
There's definitely the evolution of Pandas and Polar.
You know, there's a place for all of those in the PyArrow data frame format.
It's funny because I've actually been doing more stuff recently with going beyond tabular data frames to multidimensional arrays and X-Array, which is used more in the geosciences for now.
I think one of the things that I see is the days of bringing all your data locally or moving it to you is becoming less and less.
And what you work in memory or, you know, pull from into memory from different locations and is becoming more prevalent.
And I think Arrow lets us do that more effectively than just a straight Pandas data frame or Spark or something like that.
So it's progress.
And I think it's a good thing.
I think it's far less about the language underneath and more about what's the user experience, developer experience that we're giving people with these APIs.
Paul, thoughts?
It's interesting, the scale of data and what generations are an increase in our unit of measurement of data that we have to deal with.
And for both of you, I wonder if we have caught up with the amount of data that we can reasonably process or is the rate of growth of data out in the wild constantly outstripping our ability to process it?
From an astronomy, no, we haven't hit the limit for data at all.
And I think one of the things we're going to see more and more of is how we deal with streaming data versus time series data versus just tabular data, if you will.
And my bigger concern is partially a concern I have about some of the large language models and the training there is the environmental impact of some of these things.
So, you know, should we be collecting it, you know, is there value in collecting it?
If there's not value in collecting it, how do we get rid of it?
Because, you know, it winds up then being kind of much like, you know, recycling and garbage.
It's like, OK, well, but it might have historical value somehow or legal value and it becomes complex.
And so, you know, my general rule of thumb is don't collect it unless you have a clear reason you need it.
But that's just me.
It's also quantity versus quality of data.
So, like, I've worked in mostly commercial data science since I left science.
And when I was in science, I was dealing with sample size of 400, not 400,000, 400.
So that was not big data.
The quality of the data, like, again, going back to large language models, a lot of these earlier foundational models were trained on insufficiently clean data.
And one of the trends, actually, that I didn't mention with LLMs is, like, last year in particular, there was a push to train on better quality data sources.
So, obviously, these are much more manageable than dealing with petabytes.
One more aspect I'll throw out here.
You know, for a long time, we've had SQLite for really simple data.
We could just, if it's too big for memory, you can put it in one of those things.
You can query, you can index it.
Well, DuckDB just hit 1.0.
You kind of got this in-memory, in-process analytics engine.
So that's also a pretty interesting thing to weave in here, right?
To say, like, well, we'll put it there in that file, and then we can index it and ask it questions, but we won't run out of memory.
And I think plug-in pandas, I'm not sure about polars, and do queries with its query optimizer against that data and sort of things like that.
It's pretty interesting, I think, in this, to put it into that space as well.
All right, Carol, I think it's time for your second trend here.
The second trend is pretty much, you know, things are moving to the front end.
WebAssembly, TypeScript, Pyedide.
There's a new project, PyCafe, that I'm pretty happy with by Martin Brettles that lets you do dashboards using Pyedide, but like Streamlit and Plotly's and libraries and things like that.
And I think making things more accessible as well as making things more visual is pretty cool.
Like, I took, what was it, Jupyter Light earlier last fall.
And a friend of mine had kids and I integrated into my website so that, like, her kids could just do a quick whatever, which sort of, you know, in some ways was similar to Binder.
And the whole time we were developing Binder, I was also working with the Pyedide, Iodide folks, because I think there's a convergence down the road.
And where it all will go, I'm not really sure, but I think it's exciting.
And I think anything that, from a privacy standpoint, security, there's a lot of things that are very attractive about pushing things into the front end.
That beginner startup thing you talked about, that onboarding first experience, you hit a webpage and you have full experience with Python and the tooling and the packages are already installed in that thing.
And that's so much better than forced you to download it.
Well, you need admin permissions to install it.
Now you create a virtual environment and then you open the terminal.
Do you know what a terminal is?
We're going to tell you, you know, like, no, just, and you don't have to ask permission to run a static webpage where you do for like, how do I run this server on a Docker cluster?
Something, you know?
It opens up different doors.
And I think the other thing we found, like when we were teaching, you know, with Binder and JupyterHub, UC Berkeley was able to have now most of their student body taking these data eight connector courses.
And they would run the compute in the cloud, which really leveled the playing field.
It didn't matter if you had a Chromebook or you had the highest end Mac, you still got the same education.
And I think there is something very appealing about that.
We've actually been running humble data in Jupyter Lite and some people just bring a tablet and they can do it on that.
That's awesome.
Carol, there was something you were saying that connected to something else in my brain.
Remember in the beginning of the web and view source was such a cool thing.
Yeah.
You could see what the backend sent you and you could poke around at it.
You could learn from it and you could steal it, you know, and use it to go make your own thing.
But what if you could view source the backend because it's actually running in your browser?
What you were just saying was if you make it reveal itself about the notebook and the code in addition to the HTML, maybe you'll trigger some of those same kinds of things that view source gave people back in the day.
Maybe.
The flip side would be there's always business and practicalities in life and people will want to sort of lock it down within WebAssembly.
So you've got both sides of it.
But I do think, you know, I was telling somebody the other day, like, I never use Stack Overflow or rarely use Stack Overflow.
And they're like, how do you find stuff?
I'm like, I use search on GitHub and I look for really good examples.
And so in some ways it's like view source.
And then there's also the flip side of it is like, okay, how do I break it?
How do I play with it?
How do I make it do something it wasn't doing before, which, you know, could be used for good or for evil?
I tend to use it for good.
Sure.
Paul, we're up on our time here.
What's your second?
Sure.
Second trend.
We'll see if we have time for mine.
I have a couple just in case we can squeeze them in.
Okay.
Let's talk about yours.
I came back from PyCon really rejuvenated, but also had some kind of clarity about some things that have been lingering for me for a few years, how I could contribute things like that.
But going into it, there are a couple of trends that lead me to thinking about an opportunity and a threat as two sides of the same coin.
First, Russell Keith McGee and Lucas Longa both talked about black swans and the threat of JavaScript everywhere.
That if we don't have a better web story, if we make our front end be JavaScript and React and we stop doing front ends, well, then they'll come for the back end too.
Because once they've hired up JavaScript developers, why don't we just do JavaScript on the server too?
So that was a first thing.
And in my position, I do look at the web and think about all these trends that are happening.
And there's beginning to be a little bit of a backlash about the JavaScriptification of the web.
And so some really big names.
HTMX is a good example of it.
But just some thinkers and speakers.
I mean, Jeff Triplett talks about this.
A lot of people in the world of Python talk about this.
So there's kind of a desire to put the web back in the web trademark.
But then there was a second point coming about these walled gardens.
We've seen them for a while.
We all relied on Twitter.
What a great place.
Wait, what?
And then so much of our life is in a system we don't control.
And so we move over to the Fediverse.
And then Meta's like, hey, great.
We're going to build a bridge to you.
Turns out this week we start to learn things about the Thread API that maybe it's not as friendly as we think it is.
But the big one for me was Google and Search.
Well, I should say Google and getting rid of its Python staff.
But Google and Search, where they're no longer going to send you to the website anymore.
They're just going to harvest what's on your website and give you the answer.
And people are talking now about Google Zero, the day of the apocalypse where you no longer get any clicks from Google.
And what does that mean for content creators and stuff like that?
So going into all of this, I've been thinking about how awesome life is in Python land because we've got this great language.
Oh, but we've got this great community.
Come for the language, stay for the community.
Well, what do we mean by that?
A lot of the times we mean all this code that's available.
We also mean all these people and wonderful, helpful people like on this call.
But there's also this big world of content.
And we have kind of organically grown a little online community with a bunch of helpful content and a bunch of connections between people, which is of some value itself.
And so you see people starting to talk about, wow, I miss the old days of RSS, where we would all subscribe to each other's blogs and get content and go straight to the source and not have it aggregated into a walled garden and stuff like that.
And it just feels like there's room out there for if we want to fight back against the threat of these megacores taking our voluntary contribution to humanity and monetizing it,
while at the same time of taking all these valuable voices, creating content and value in Python land, that maybe we could bring back some of these things, put the web back in the web and start to get out of the walled gardens and back over into social networks that are open and joyful.
I'm here for it.
Wow.
People complain, governments complain that places like Google and stuff are monetizing the links and they're being paid.
You know, you got to pay to link to this new source or whatever, right?
Various.
We're lucky that we have that.
If it turns into just you just get an AI answer, no source.
That's going to be really hard on a lot of different businesses, creators.
People just want to create something just for the attention or for their self.
You know, like nobody comes anymore.
It's going to be a sad place.
I was thinking about Coke Zero the whole time you were saying like, you know, Google Zero or whatever, because you didn't have to bring back classic Coke.
And I think, yeah, pivots happen, but it's hard to pivot, you know, billion dollar companies.
I have lots of thoughts on some of the current Python, what Google has chosen to do.
I think sometimes listening to consultants isn't the best business approach.
You know, it's their company.
They can do what they need to do for their own shareholders.
I think a lot of what you said is really interesting.
And I touched on this a little bit because the volume of information around us is greater than ever before.
Sure.
And at a speed of transmission that is faster than ever before.
And about eight years ago, I had breakfast with Sandy Betts, who was very prolific in the Ruby community.
And I asked her, like, how do you keep up with all of this stuff?
And she's like, I don't.
And I said, OK.
And she's like, what I do is I focus on the things that impact me and all the rest of it is news.
And that really stuck with me because in in actuality, that's kind of what I do.
You know, I ignore the things that aren't directly relevant to me and trust that I've built a strong enough network of people that I respect that.
Well said.
Their work will influence when I jump in.
Like, I don't, you know, much like the life cycle, if you've studied marketing or product development, you know, not everybody is an early adopter.
So do I need to be an early adopter on everything?
No.
Yeah.
That book, Crossing the Chasm, says that you should do that, like, on one thing.
If you do it on three things or more, you'll fail.
Yeah.
You know, part of the thing that triggered this for me was reading that Andreessen Horowitz, kind of the self-proclaimed king of Silicon Valley VCs, as zero interest rates started to go out of fashion and their recipe wasn't working, they didn't like the negative press coverage.
So they started their own media empire to cover themselves.
And that idea is just so appalling that we would get news, we would turn to the megacourts and the masters of the universe to tell us what we should be caring about.
We have that already.
We have, I'll be very specific, we have Planet Python.
It's in disrepair.
What if it was reimagined into a freaking media empire by us, for us, to cover the Fediverse and course providers and all the value that's out there?
And like, Carol, you're saying, I don't have to think about it, but I trust that group because they're thinking about it.
A lot of it is like, you know, when it came to LLMs, it was not the thing that rocked my world, like intellectually, but I knew Simon was doing work with it.
And so I basically, once every few weeks, would take a look at his website and his blog posts, and he posts a lot, and I would get my data dump of things.
I don't know.
I mean, that's one of the reasons I like PyCon, and I've like read talk proposals, everything for the last decade.
Oh, wow.
All these talk proposals.
And it really does give me an appreciation for all the things Python's being used for.
What's seen?
Kind of the zeitgeist?
Yeah.
And so I think there's different ways of doing that, even just doing a YouTube search of Python content.
But I tend to focus in on science-oriented things and ways to empower humans through lifelong learning.
So there's a lot of, we're in a phenomenal period of change, for sure.
Yes.
So we won't be bored, nor do I think our jobs are going to go away.
They may change, but they're not going away.
Indeed.
Jodi, final thoughts on this topic?
And we'll pretty much wrap things up.
Yeah, I don't think I really have that much to add, actually.
I think it's all been said.
It has.
All right, just to round things, the two things that I think are transiers, I think,
like Carol said a lot, Python on the front end is going to be super important.
I think PyScript is really, really interesting.
I've been waiting for people to develop something like React or Vue or something that we could
create commercial-facing websites.
We're halfway there with MicroPython being the foundation of PyScript, which is 100K instead
of 10 megs.
All of a sudden, it becomes JavaScript-y size.
It opens up possibilities.
And just a shout out to PewPy, which is like Vue with Python, P-U-E-P-Y.
I'm going to interview Ken from that project.
But it's kind of a component-based front end for PyScript, which is pretty interesting.
And of course, Jupyter Lite is really, really important.
The other one was just all this rust.
Everything seems to be redone in rust.
And oh my gosh, that's how you get your VC funding.
Just joking, sort of.
But all you talked about all this performance stuff coming, you know, while it is sometimes
frustrating that people are putting all the things into rust because then Python programmers
is less approachable for them.
It could also be an escape hatch from trying to force the complexity into the Python side.
Alleviate, like everything has to be multi-threaded and crazy and optimized.
And well, this part you never look at.
It's faster now.
So don't worry.
Anyway, those are my two trends.
Quick, quick, quick thoughts on that and we'll call it a show.
My piece of trivia is I made a contribution to rust far before I made any contributions to
Core Python.
Amazing.
Because I tended to be a C programmer in heart and spirit.
And so rust seemed like this cool thing that was new at the time.
And ultimately, I personally did not find the syntactic side of it worked well with my brain and how
I think.
And Python was far cleaner in terms of a simpler visual, less clutter and reminded me a little
more of small talk or something like that, which I loved from earlier days.
But I think there's a place for rust.
Do I think rust is going to replace Python?
No, I think it's going to help with some optimized things.
Do I love things like Ruff that let me run my CI like blazing fast versus, you know, all
the Python tools?
Not to say that all the Python tools are bad, but, you know, when you're paying for it as
a startup.
When things you just have to wait on become, they blink of an eye, all of a sudden you don't
mind running them every time.
And it changes the way you work with tools.
Yeah, exactly.
Yeah, I would say, look, every language has its place in the ecosystem.
And my husband is a longtime Pythonista, but he's also a Rust program.
I know it's like a running joke that my husband is a Rust developer.
How do you know?
He'll ask you.
Well, you know what I mean.
How do you know?
Ask him.
He'll tell you.
There you go.
They have different like purposes, completely different purposes.
And you can't just interchange them.
Absolutely.
Let's just get it straight.
Python is just awesome.
So it's our time.
Pure love.
But it's to us to keep it awesome.
Yes, absolutely.
Paul, we've come around to you for the very final, final thought on this excellent show.
I will give a final thought about Python trends to follow up on what Carol just said about
it's up to us.
Maybe it's up to us to help the people who will keep it that way.
The next generation of heroes.
Help them succeed.
I'm wearing my PyCon Kenya friendship bracelet that I got at PyCon.
And a wonderful experience meeting so many different kinds of people.
And from a Python trends perspective, the fact that everything we're talking about is good
stuff, not like asteroid meets earth.
Yes, yes.
IP challenges and patent wars and mergers and acquisitions and stuff.
Remember a long time ago, I went to go see Guido and he was with the App Engine team at Google.
So a long time ago.
And he was starting the process of turning over PEP review to other people.
And I commented to him that not every open source success story outlives its founder.
And the bigger it gets, particularly open source projects anchored in the United States of America,
they sell out and get funded and they will never be the same after that.
And so it's a moment from a Python trends perspective for us to build a great next future by remembering
how lucky we are where we have gotten to.
Absolutely.
Carol, Jody, Paul, thank you for being on the show.
Thank you.
Thanks, Michael.
Thank you.
Bye, everyone.
Bye.
This has been another episode of Talk Python to Me.
Thank you to our sponsors.
Be sure to check out what they're offering.
It really helps support the show.
Code Comments, an original podcast from Red Hat.
This podcast covers stories from technologists who've been through tough tech transitions
and share how their teams survived the journey.
Episodes are available everywhere you listen to your podcasts and at talkpython.fm/code dash comments.
This episode is sponsored by Posit Connect from the makers of Shiny.
Publish, share, and deploy all of your data projects that you're creating using Python.
Streamlit, Dash, Shiny, Bokeh, FastAPI, Flask, Quarto, Reports, Dashboards, and APIs.
Posit Connect supports all of them.
Try Posit Connect for free by going to talkpython.fm/posit.
P-O-S-I-T.
Want to level up your Python?
We have one of the largest catalogs of Python video courses over at Talk Python.
Our content ranges from true beginners to deeply advanced topics like memory and async.
And best of all, there's not a subscription in sight.
Check it out for yourself at training.talkpython.fm.
Be sure to subscribe to the show.
Open your favorite podcast app and search for Python.
We should be right at the top.
You can also find the iTunes feed at /itunes, the Google Play feed at /play,
and the direct RSS feed at /rss on talkpython.fm.
We're live streaming most of our recordings these days.
If you want to be part of the show and have your comments featured on the air,
be sure to subscribe to our YouTube channel at talkpython.fm/youtube.
This is your host, Michael Kennedy.
Thanks so much for listening.
I really appreciate it.
Now get out there and write some Python code.
Thank you.
Bye.
you
Thank you.