Hey everyone, 2020 has been quite the year, hasn't it?
Definitely one of those for the history books.
So over on Talk Python To Me, I did a year in review show and it actually had me and Brian
on there along with a bunch of other really great guests who have been on this show and
on Talk Python before.
So I thought what we could do for our year in review here is to bring you that same show,
to bring you that same conversation.
In fact, it was more in the style of Python Bytes than it was Talk Python to be honest.
So I think it belongs here.
So without further ado, let's join that conversation where we look back on 2020 with Cecil Phillip,
Ines Montani, Jay Miller, Paul Everett, Reuven Lerner, Matt Harrison, Brian Okken, and me.
Enjoy the show and thank you so much for listening to Python Bytes this year.
We'll see you in 2021.
So let's go ahead and just kick off this episode.
This one is a little bit different than the standard show.
Everyone here has been a guest and a great guest and some of you even repeat guests.
Some of you are a repeat guest and scheduled for more episodes even, hint, hint, Ines.
But let's go ahead and kick it off.
So this is going to be a year in review.
There's a bunch of us here, seven or eight of us.
And I'll just do a quick introduction.
Let me just welcome you individually on.
You could say, you know, a couple sentences about who you are and whatnot so people know.
And then we're just going to get into what you thought was the most interesting, impactful
thing of the year.
And I have some software to help me do this.
So let me run it here.
Darn it.
It's me.
All right.
We'll go back to that.
Well, let me welcome you all.
Then we'll go through this.
So Jay, Jay Miller, welcome to Talk By The Me again.
Happy to be here.
I haven't been a guest in like three years.
So I know, but your episode was so popular.
Like over a hundred thousand people listen to your episode.
Can you believe that?
That's so insane.
I'm shutting down my podcast.
I don't get those kind of listens.
Tell people about yourself.
Sure.
Jay Miller.
I'm a podcaster, developer, now developer advocate for Elastic.
You know, the people that do search and we are database shots again, Michael.
But yeah, I'm just happy to be here.
Yeah, that's it.
Awesome.
Welcome.
Reuven Lerner.
Welcome back.
Good to see you, man.
Hey there.
Nice to be here.
How early is it?
It's not that early.
It's only 530.
Oh, okay.
Well, thank you so much for waking up early and making.
Yeah, we have people from basically every corner of the world.
So yeah, tell people about yourself again, if they haven't heard the episodes.
Sure.
So I'm a Python trainer.
So most days I'm in different companies doing on-site training.
Nowadays, a little less on-site for some strange reason.
And so I normally do corporate training, everything from intro to Python for non-programmers all
the way up to advanced Python workshops.
And I also sell a whole bunch of courses online to individuals.
Oh, and I have my book.
My book, Python Workout.
Yay.
Yeah, and we're streaming live with video.
So you can hold it up.
Yeah, that's awesome.
Oh, I can hold it up.
Python Workout.
Awesome.
And it's the picture of me on the cover, of course.
Of course.
Yeah.
That was when you were working out, preparing for the Olympics.
Precisely.
Yeah, exactly.
So we'll be sure to link to your book and some of your courses as well.
Ines, welcome from the other side of the world.
Yeah, I'm currently in Australia.
Escaped the EU lockdowns.
And now I'm here.
Yeah, happy to be back.
I think I've been on a few of your podcasts.
But it's always my favorite podcast.
Oh, thank you.
Yeah, it's awesome to have you here.
And I have definitely dreamed about, well, my daughter goes to school online.
I always work online.
Maybe we should just go somewhere by a beach away from people.
How can we do that where it's warm?
Right?
And it seems like you pulled it off.
Beautiful.
All right, Paul.
Paul Everett, welcome.
I just saw Anthony Shaw talking.
So if you want to talk about converting your life to work at the beach, just subscribe to his damn Twitter account.
Welcome, Anthony Shaw.
Anthony, I'm raging against you.
Oh, my gosh.
Also from Australia.
Hey, Anthony.
And Andrew from PyCharm is here.
A bunch of folks.
Mark, awesome.
Paul, introduce yourself.
Sure.
Developer advocate at JetBrains for Python stuff and web stuff.
Most known for giving the Python 1994 talk.
My purpose on this panel is to increase the median age so that we all qualify for the discount at the buffet.
Hey, man.
I'm right there with you.
Right there with you.
Awesome.
Nice to have you, Paul.
Brian, we've met before, right?
Yeah.
Brian Okken, he and I co-host Python Bytes Together.
And you've been on the show quite a few times as well.
Last time, I think we covered 30 pytest plugins.
That was quite the whirlwind tour.
Yeah.
So I highly recommend this book to anybody that wants to learn pytest.
Awesome.
Matt Harrison, welcome back.
Thanks.
Good to be here.
I guess I'm similar to Reuben.
I do corporate training and consulting in Python and data science.
And I guess since we're flaunting books, I'll flaunt my latest book.
Wait, wait.
The tiny Python 3 notebook.
Awesome.
Tiny Python notebook.
It's very small.
Anyway.
It is tiny.
Well, what I was going to say, Matt, is like,
you're going to need to be like basically an octopus to hold up all your books.
Like multiple books on each tentacle.
I've got a few here.
So yeah, it's good to be here.
Thanks for having me on.
Yeah.
You were just recently on about learning how to learn.
Yeah.
Does it count if I have everyone else's book?
Yes, it does.
But it would also be hard to hold them all up, especially if you got all of Matt's.
Cecil Phillip, man.
Hello.
Good to see you, friend.
Hey, thanks for having me on.
I don't have any books to share, but because I hate writing.
So I don't write anything.
I do do some video.
So if y'all are interested.
I do do a weekly Python stream on Wednesdays.
So if you folks want to check it out, it's on Twitch at the Microsoft developer account.
And we do very beginner friendly conversations about Python and stuff like that.
And Michael, you were just on the other day too, right?
Yeah.
It was so fun to be on there with you.
We got to play around with FastAPI.
And man, that's a cool framework.
So it's Coding from the Beach.
What's the name of the show?
That's a good name, actually.
Maybe I should coin that one.
No, so we do Pi Weekly.
So it's me and my coworker, Brian Clark.
And we kind of approach Python from the perspective of beginners, but also from two people that
don't necessarily know Python very well.
So Brian is a JavaScript guy.
I'm a .NET guy.
But we're both, I like to call it Pi curious.
You know what I mean?
Like we're Python curious.
And, you know, we definitely want to show people like the different perspectives of learning
like new languages.
Yeah.
It's super interesting.
And it's really low key.
It's like you said, it's this Twitch sort of exploration style of code, not polished presentation
style.
So you just guys sit down, take feedback from the audiences and go with it.
Yeah.
I love the show because I'm never prepared.
Like I kind of just show up and talk about stuff and people love it.
And it's great.
I don't have to do notes or anything like that.
We just kind of be like, hey, what do we want to learn about today?
Right.
Well, let's go ahead and do it.
Yeah.
Fantastic.
All right.
Well, given how many of us there are, let's go ahead and just jump in and we're going to
do our year in review.
And so I've written a small piece of Python software here in the REPL.
It's very advanced.
It's at least four lines of code.
I got to tell you.
And what it's going to do is going to pick one of you and then we're going to have you
talk about what you felt was the most significant or impactful thing that you saw
happening in the Python space.
So round one, Cecil, you're on screen.
It pulled you up.
Go for it.
I got lucky.
Okay.
So the most exciting thing that I think happened in the world of Python and one that I have
a little bit of a close relationship to is the fact that Guido van Rossum joined Microsoft
just a couple of weeks ago.
So I didn't mention this before, but I do work at Microsoft as a developer advocate.
And I think for me, it's been a really interesting to kind of see how the company has been embracing
open source and working with a lot of the creators and now seeing a lot of the leaders of the industry
kind of join the company.
You know what I mean?
It kind of, you know, it's a kind of, it's like a different world.
I mean, I don't know how else to explain it or talk about it.
It's been really great to have him here.
I had the opportunity actually to interview him and we did like an internal interview
just talking about like, well, what made you decide to come out of retirement?
That's awesome.
Was this on channel nine?
Is it public or is it?
No, it was internal.
It was an internal interview.
I don't know what his, his, I don't know.
I'm sure he'll do some other ones, but we, it was an internal one.
Did you make him whiteboard?
No, we didn't do him any whiteboarding.
We did ask him what some of his favorite shows were.
So that was, that was pretty interesting.
We asked him like the Star Trek versus Star Wars conversation too.
I couldn't, I couldn't handle that pressure.
It's hard, man.
Tough crowd.
I think it's definitely amazing to be able to see folks from the industry, like kind of
embracing like these different companies and us really supporting open source in a very
like authentic way.
Yeah.
It's such a big change.
And Reuben, you were just talking before we started streaming, I think about, you know,
10 years ago, how this was really different.
Oh yeah.
I mean like even more, but yeah, even 10 years ago, the notion that Microsoft would be so
involved in the open source space and specifically the Python space was basically unthinkable.
I mean, I think it was Steve Ballmer who said that, you know, Microsoft, not Microsoft,
like the Linux and open source were a cancer on the industry and they were definitely seen, you know,
Microsoft was seen as an enemy of the open source world.
And it's been truly amazing to see them just embrace it.
I mean, you see the booth at Python, you see the VS Code investment.
It's very, very impressive.
And it demonstrates, and he says, we'll say this earlier, like how much leadership at the
top really can change the direction and the attitude of a company.
And that filters through to even the lower level people and the decisions made there.
Yeah.
That's a lot of hard work, right?
Because if you think about it, we've had different leadership for a very long time.
And so for some of us, some of this change that people are still recognizing, I mean, we've been
doing it for a very long time.
You know what I mean?
Like we didn't just in 2020 decide, oh, hey, let's adopt and support open source.
It's been one of those things that have been building, you know, very much over time.
But, you know, the fact of the matter is like you still have those old stigmas that we still
have to shake.
And, you know, we still have a lot of folks that we have to help convince that we're not
the death star and we won't, you know, destroy the world kind of thing.
But I think it's a good responsibility to take on because there's also, you know, there's
a lot to fuck up.
And if you commit to like doing something like, you know, GitHub acquisition and say, okay,
we're doing that and we're running it, you know, we're good sign forward because every
misstep can have like, you know, a really big impact.
You know, if Microsoft starts doing bad things again, people are not going to be, you know,
very forgiving at all.
So I think that was the most sensitive one of them all is the GitHub acquisition because
what they do to Azure is kind of their story.
What they do to Windows is their story.
But what they do to GitHub, that's everyone's story.
And all of a sudden, that was a big deal.
And on top of that, you have the ability to give GitHub a little bit more power in the space.
Like, I mean, we've all been kind of watching what's happening with like YouTube DL and stuff
like that.
And just seeing the support, it's not just GitHub anymore.
Now it's like, okay, what does one of the wealthiest companies in the world, you know, say
about this particular position that YouTubers have a problem with that people in tech,
have a problem with like a lot of abusive behavior.
And on top of that, you're providing support for things like NPM.
It's one of those questions.
We all want to contribute to open source, but none of us have the financial ability to contribute
like a company like Microsoft can.
So I'm not just saying we're going to be a part of it, but saying, no, we're really going
to be a part of it is like a huge deal.
Yeah.
The million dollar defense fund that they just announced is a big deal.
Yeah, for sure.
And when you think about GitHub, right?
Like you think about like developer culture, that's what GitHub kind of represents to me
is the new, you know, the future of developer culture.
Like how do we collaborate?
How do we work with each other?
How do we share not just source code, but like experiences and knowledge, right?
Through like something that we can all connect together with.
That's code, right?
And then kind of circling it back around to Vita, being able to, again, see these leaders
of these really large open source projects put their faith in the company and even considering
what the past of the company was to what it is today.
I think hopefully like the rest of the open source world would start to realize that we
are serious about being good open source citizens and supporting the culture and the community.
I mean, me personally, I'm just really excited to see what he's going to do, what he's going
to work on.
The future is bright, man.
Yeah, absolutely.
I think someone on Twitter had said, so now we actually hire folks that contributes
to, you know, obviously C# and F sharp and the .NET stuff, but also folks that contribute
to Java, Rust, C++, and obviously Python, right?
So we have a whole host of language folks underneath the umbrella of the company.
And so now being able to have that space of collaboration, like underneath the umbrella
of one company, I think is going to be really interesting to see what the next couple of years
looks like.
Yeah.
You're going to have to come back in six months and give us an update on all the Python
changes you see.
I'll give you the six month update on it.
This episode is brought to you by Linode.
Simplify your infrastructure and cut your cloud bills in half with Linode's Linux virtual machines.
Develop, deploy, and scale your modern applications faster and easier.
Whether you're developing a personal project or managing larger workloads, you deserve simple,
affordable, and accessible cloud computing solutions.
As listeners of Python Bytes, you'll get $100 free credit.
You can find all the details at pythonbytes.fm/Linode.
Linode has data centers all around the world with the same simple and consistent pricing,
regardless of location.
Choose the data center that's nearest to you and your users.
You'll receive 24-7, 365 human support with no tiers or handoffs, regardless of your plan size.
You can choose shared or dedicated compute instances, or you can use your $100 in credit on the S3 compatible object storage,
managed Kubernetes clusters, and more.
If it runs on Linux, it runs on Linode.
Visit pythonbytes.fm/Linode and click that create free account button to get started.
All right, I'm going to run the chooser.
Hall, it has chosen you.
Not sure about your chooser algorithm here.
There doesn't seem to be...
Random dot choice.
I'm telling you.
This time, it's not a good time to talk about election strategies, seeing as how it chose you first.
It could be flawed.
We're reviewing it.
Are you changing the random seat on every...
Exactly.
Yeah, I should be.
My topic is things change, nothing changes.
And I think I'm maybe stealing someone else's topic.
So I appreciate your random algorithm choosing me first.
And it's kind of along the line, I'm kind of interested in open source communities over the years and decades
and why one works, why one doesn't.
In particular, a lot of open source projects that get successful kind of founder when the founder leaves.
And over the last couple of years, you've seen Guido transition out, stepping down as BDFL.
And kind of a new language governance model that he didn't even decide on.
He let it emerge.
And then new release managers, new PSF directors, all happening this year.
A pandemic, which kind of destroyed the big fundraiser.
An organizing event called PyCon.
Python 2.7, end of life, which I guess a lot of us thought would never effing happen.
And it effing happened.
And through all of this change for a project that was like reaching mega escape velocity and popularity, nothing changed.
Everyone's like, who cares?
Python just kept on doing its business.
Releases kept cranking out.
Peps kept cranking out.
Elections.
Well, Python elections kept cranking out.
Michael and Brian kept cranking out podcasts.
Hallelujah.
Something good happened in 2020.
And so it's interesting to me.
Healthy projects are those with kind of a healthy bench, kind of a middle management.
Python has a hell of a middle management now.
It's awesome.
And it's like middle management in every vector now.
It's got language leadership, middle management, foundation leadership, middle management, conferences.
All the regional conferences are kicking ass, even online.
So it's really good for me to see kind of a balance between some of the old heroes like Brett Cannon, who gave this awesome keynote two or three or four years ago at PyCon about open source.
And then some of the new heroes like Marlene Mangami.
When I give the Python 1994 talk, sometimes I give it with Barry.
And it's like, well, did you ever know back then that it was good?
Hell no, we didn't know.
And so seeing all of this happen, seeing generation after generation come in, do their thing, raise the next generation is pretty cool to see.
Yeah, it's fantastic.
And I know there was a lot of uncertainty when Guido stepped down about, oh my gosh, what's going to happen.
But it's kind of been a non-issue, which is good.
Non-issue in a good way.
Yeah, I think it's really nice to also have some stability, even especially nowadays, that's quite rare.
And just to see stuff just works, nothing goes wrong, no drama, nothing terrible, just drama is almost boring.
Yeah, boring is good these days.
One of the things that really surprises me, Paul, as you mentioned the escape velocity,
what's weird to me is how Python went like 20 years on medium, like simmer popularity,
and then it hit the afterburners and took off, right?
It seems just, I think there's going to be some interesting studies done about why or how did a language that had kind of been around for 20 years,
all of a sudden really dramatically improve in popularity.
And I have some ideas, but I just think that that's an interesting aspect of what you're talking about here.
Yeah, it's also the whole aspect of the previous like Microsoft and Java and sort of, I guess, big money behind those sorts of languages in like the early 2000s, pushing them.
And then I think community and to the point of like developer gave developers what they wanted rather than maybe say enterprise-y languages.
And then I think there's a whole confluence of other things that happened as well.
But it is kind of crazy, right?
That like one of the top, if not the top languages right now, they're almost 30 years old.
And it's got issues.
It's got warts and whatnot, but it's a thriving language.
And, you know, without significant big companies behind it, right?
That it's competing with companies that have thrown millions of dollars into development of these things.
Yeah, absolutely.
And Matt and Ines, you two are on the data science side.
And I think the data science and computational folks are the ones that poured the gas on the fire and really made it take off.
And that's not where the growth necessarily completely is, but I think that gave it a serious kick.
Yeah.
No, actually, because I get asked about this a lot.
Like, oh, what do you think made Python the language for machine learning data science?
And my theory is actually that, A, Python, of course, was lucky that it was in the right place at the right time.
But I think actually it won because it's a general purpose language.
People can come from other fields of Python into machine learning data science, for example.
Like, what did people do before?
If you look at kind of, you know, these surveys of what they use Python for before, it's a lot of web stuff.
You can build kind of anything in Python.
And I think that's what makes it so appealing and much more appealing than, let's say, like an AI language.
And that's also, in my opinion, why a lot of these attempts at making an AI language haven't taken off.
And people are like, no, Python is great.
It's fast enough.
It's usable enough.
But I think the general purpose-ness really is what kind of got it over the edge there.
A lot of people that I'm teaching or training are people who don't want to be programmers.
They want to use Python as a tool.
It's like Excel to them.
They don't want to be programmers.
And so something that they can pick up and it just sort of works and they can go to Stack Overflow and copy something.
And as long as they get the indentation right, it sort of works as long as they're using the right version or whatever.
There's no compiling.
There's no linking.
Yeah.
Weirdness.
And then you have things like Google Colab or whatever, where you have an environment, it's all set up, and you can just sort of go, right?
And so that is really empowering for people who don't want to be programmers but view Python as a tool, a necessary tool that they need to leverage.
And in addition, there's over a quarter of a million packages on PyPI, right?
And that's like literally standing on the shoulders of giants.
You can go there and pick out something that you want to do, and you're a pipa install away from it.
And that's super powerful, right?
You don't have to set up a huge environment.
And yeah, it just really simplifies life for a lot of these people who don't want to be programmers but want to leverage these really cool.
But at the same time, you do have very strong support for C extensions.
So if you're looking at the top packages people download from PyPI, most of them are written in C, Siphon, whatever.
That's what makes them so powerful.
So we have that while also being able to provide a pretty good developer experience.
Yeah, absolutely.
I think it was Seymour Papper who talked about a good language having, he was talking about a logo, but it's even more appropriate for Python, having low floors and high ceiling.
That's really easy to get in and do simple stuff.
But when you want to do complex stuff, you're not limited.
And so just yesterday, I was doing a workshop with people, and someone who had just started with Python, I said,
Oh, but look what we can do if we sort of extend it several layers.
And he was amazed how complex you can get and how sophisticated you can get just in a few lines of code.
It's really a testament to the elegance of the design of the language, I think.
Yeah.
Andre Vlasowski in chat makes a good point that many folks say Python is their second favorite language.
And there's something to be said for that.
Derek, sorry.
Should be there first.
I'm with you.
Well, to that point, I mean, it's also been said that Python is the second best language for doing things right.
So you might have a language that's better.
Yeah, that's actually his quote.
I got it wrong.
Data science.
Or you might have a language that's better for web apps.
You might have a language that's better for like system admin.
But there's probably not a language that's going to like get you all three of those, right?
And Python is sort of that Venn diagram that gets you in the middle and is good enough to do a lot of what you want to do.
Absolutely.
Random or not choice?
Chooses Brian Okken.
Well, hey.
Cool.
Let me pull up my notes.
It was interesting.
We were talking about Microsoft.
And I didn't choose this, but I'm going to mention it anyway.
Tons of projects switched over to GitHub Actions in 2020.
And I mean, because it just kind of hit the area right like at the end of 2019.
So I saw a lot of projects migrating to GitHub Actions.
Anyway, I wanted to talk about packaging, which is sort of related.
There's a couple things.
I know I was supposed to pick one.
The exciting thing happened today.
PIP 20.3 was released and the dependency resolver is now the default.
The dependency resolver is already angry at me for trying to deploy some Dependabot changes.
I'm excited about this and it's bit me already too.
I had requirements.txt files that have broken dependencies.
So I have to go look at those and see, well, which, you know, I have to pay attention to it.
So there's a little bit of pain for some people, but it was such a long struggle.
And I look back and the request for a dependency resolver came in 2013.
So seven years later, but something magical happened in 2019.
And that was some money from Mozilla came through and they threw some of that money at the dependency resolver.
That was pretty cool.
Yeah.
That's a big deal.
That money was, there's been a couple of these experiences where money was given to Python specifically to hire a team to improve something.
PyPI, the rewrite of pypi.org was one.
And then this is another.
Yeah.
And they rolled it out in several versions.
So we had our version early, early in the year.
And then around July, we had another version that had a different flag that you could try it out with to try to get some of the early adopters to try it out to make sure it's working.
And then today it's rolled out for good.
And I'm pretty excited about it.
I kind of want to tie this in with the packaging.
I've seen a lot of progress on and a lot of adoption of the pyproject.toml kind of taking over more packages and more uses.
So we saw Flit used to have its own any file now only uses pyproject.toml.
There's been additions to the metadata definition that hopefully will take hold.
And even pytest now, you can throw your configuration in a pyproject.toml.
And I've seen more and more projects getting pressure from their users to say, I don't want another any file.
I want to put my settings in the pyproject.toml.
So that's a good thing.
Yeah, absolutely.
You know, a couple of things on that.
You talked about two things when you talked about packaging and you talked about GitHub.
I mean, the fact that now you can actually do some package work within GitHub itself.
I built a lot of small little tools, not things that I would want to go on PyPI.
I know we don't need to clutter that up anymore with my garbage.
But it's great when I can just say like, hey, here's a link.
And if you're really concerned on how to add it, you can just pip install but point to this GitHub, you know, and that works.
Yeah.
And also the stuff about finding security vulnerabilities automatically and doing PRs for you that GitHub does against like your various package definitions.
I think that's great as well.
Hey, has anybody ever put a JavaScript package on the GitHub package.json?
Probably, but not me.
I have.
You know, this is a Python podcast, right?
No worse.
It's Gatsby.
So I basically put 500,000 JavaScript packages into my repo.
Yeah.
And I'm not.
That is something I appreciate about Python a lot that like I asked you, I never thought I'd say this, but like I do prefer also that.
I can't resolve the Dependabot security mega warnings fast enough.
It's just incredible.
I know.
And I just turn them off, right?
Like, you just don't.
Yeah.
That totally fixes it.
You're right.
That is one way to do it.
Yes.
It's like I've always said that's a problem with writing tests, right?
Like when I started programming, I was all like kind of hate writing these tests because they keep pointing out shit that's kind of wrong.
And then I have to fix that.
But I don't have tests.
It all works fine.
And then I'm happy.
Same with, I don't know, TypeScript.
Exactly.
I actually even type hints to some.
Fuck, yeah, I know that's kind of wrong.
So now I actually have to fix it.
So, you know, just don't.
So we should not let you speak it on high school.
It's the see no evil, hear no evil.
I do think that the Dependabot stuff, there is something about turning it off.
It drives me crazy.
I really value it.
But at the same time, the reason I had this conflict with the dependency resolver is it told me I should give me a PR to upgrade one thing, but not one of the dependencies for which
the newer version was required.
It would break the resolver.
It's just like, ah, what is this thing doing?
All right.
Very good.
Very good, Brian.
The chooser.
Sorry, you need a batch, batch dependency resolver.
Yes.
One that resolves everything at once and then makes sure you've got a working state at the end.
Well, the thing is, the pimp is fine.
It was right.
It's that Dependabot, if you have 100, I probably had 20 dependencies in this thing.
It gives you one PR for each line.
Sometimes it lags a day on the other one.
And if it gets it out of order, then the resolver gets it.
Anyway, long story.
Frustrating.
I mean, to be fair, speaking of dependency resolving from the perspective of a library developer, it is hard.
And it's, you know, you do want to use versioning properly.
And I do feel like there's this eternal conflict between how do we manage dependencies properly for users and how can we make sure that we can define how our packages depend on each other in a way that's reasonable.
Because not, you know, use semantic versioning.
Not everything is a major release.
Not everything is a breaking release.
But stuff just depends on each other.
And you don't want to lock people in.
There's always this, you know, the idea is you should be able to pick up your project a year later with its requirements and it should run.
And that's really, really, really hard.
Yeah.
And if it gets wrong, then you probably get a lot of email or a lot of GitHub issues.
Hey, Brian, on your topic of PyProject Toml, what's the latest, greatest on editable installs?
I don't think it's completely working for all the same.
So I'd like to be able to say pip install dash E.
Is it dash E?
And just a project.
You can say pip install just a directory no matter what kind of packager it has.
So that works now.
So you can, if you, even if you use flit or something, you can't do dash E.
But flit itself, for instance, has its own editable install thing.
And I don't know what poetry does.
I don't use poetry.
So it's a different command.
I'm annoyed that it doesn't just convert it.
I wish it would plug it in.
But I think that'll be coming in maybe in 2020 or 20, probably not this year.
Maybe next year.
Hopefully.
Yep.
Badwolf says in the chats, what is the quick solution for getting pip version updated?
The first thing you created a virtual environment.
This is another thing that drives me crazy about pip.
And if that could get changed, I would love it.
When you create a new virtual environment, basically for about a week, you have the latest pip.
And then afterwards, soon as you pip install something, it says, warning, your pip is out
of date.
As soon as you create a virtual environment.
It's like, well, why didn't you just update it?
I want, if you're going to tell me it's wrong, just fix it.
You can use virtual environment.
Instead of VENV, use virtual environment.
Because then you can update your pip and you can update the global one and install it in
all your environments.
Interesting.
Yeah.
I just wrote an alias that will create the virtual environment, upgrade pip and set up
tools, and then activate it.
Other way around.
Activate it, then upgrade.
Yeah.
It's funny.
I have a shortcut like that too.
Yeah.
Awesome.
And then you can also have it install everything you need, you know, in the same command,
automatically create once, which I shared my script somewhere, I think on Twitter, if
anyone's interested.
Nice.
Yeah.
Mine's just V and V.
I just type V and V and magic happens.
I don't think of it anymore.
Well, when I finally switched to virtual LENV, it's like, I make so many virtual environments.
It's so much faster.
And just that, even just a few seconds, several times a day, it's worth it for me.
So yeah.
Awesome.
All right.
I've chosen next and there's a dependency in the chooser.
So it's worked correctly.
So it's chosen me actually to talk about the next thing.
And Paul touched on this, but I think this is a really important one.
Like this is the year that Python 2 actually went away.
And it's, I just spent so long having to justify why Python 3 is the right thing or more often
teaching people, no, no, no, you can't type Python.
Please don't do that.
Unless you're on Windows and you have to do that.
But if you're not on Windows, then you better not do that.
So you got to, you know, it's just like this drag.
It always felt like things like Django or Flask and whatnot were being held back.
All these libraries were being held back by Python 2 support.
And last year they started dropping it.
And then Python 2 itself actually went away.
Brian and I tried to create the right nomenclature around this, I guess.
It's calling it legacy Python and modern Python rather than 2 and 3.
And that was, that was fun.
People started to quote it and use that terminology, which was kind of cool.
I don't know how well it worked, but it's really nice that Python 2 is finally officially
gone.
And I thought there'd be a bunch of people would freak out for Python and start creating
like alternate old versions.
And I haven't, besides some like support, commercial support stuff, I've really seen that happening.
So it's, it's pretty interesting, I think.
Yeah.
I think we should have brought like horns and stuff and like, you know, maybe just, just.
Some of those little pop, like bottle looking stuff on New Year's.
Absolutely.
Yeah.
I mean, we really didn't get the party we were hoping for, right?
Like PyCon was supposed to be this big send off for Python 2, but no, there was not so
much of a PyCon.
Not really.
I mean, there's online, but it wasn't the same.
Now we just got to wait until we have all of the articles about the companies that finally
decided to switch and the steps that they took that they avoided for the last decade to,
to make this a reality.
Yeah.
I mean, one of my biggest corporate training clients, they have been using Python 2 for years
and years and they do all sorts of testing of hardware using windows.
And so with all sorts of custom C extensions.
So I've been saying to them for years, every time I do training, look, you should really
think about Python 3 and you should realize you should move in that direction.
And their attitude was basically, no, no, no.
We've got so much invested in what we've done.
We're not really going to upgrade.
And finally, about, I guess, a year ago, they realized, huh, we're going to be stuck on
our own maintaining everything, including all these packages of PyPI.
Maybe it's time to start talking about it.
And so I'm actually doing some training for them now.
And I asked a group, should we do Python 2 or should we do Python 3?
And the majority actually said it's okay to use 3 because our group has switched.
So if they are moving, it's clear that even sort of the draggiest of the draggiest companies
are doing it.
Yeah, I was just going to echo what Ruben said that when you have success and you get
enterprises using your stuff and enterprises are slow to move.
And I don't want to criticize Python 3 too much, but I think if they would have put F-strings
in 3.0, then they wouldn't have had this problem.
But because they waited to put F-strings in, then they had people dragging their feet.
So weird how that dragged.
That was one of the most popular features, for sure.
So you're saying the walrus operator was what finally did it?
I'm not going to go there.
You know, I was not super excited about the walrus operator.
I find myself using it all the time.
I like it.
It's neat.
Oh, it's cool.
I think it definitely solves a problem.
I just, wait, that's 3.8, right?
The walrus?
I believe so.
Yeah.
I'm still, I mean, I feel like I'm now back at like, okay, we finally dropped support
for two from all of our libraries that we're developing.
And now we're on 3.6 because.
No, no, no.
The 3.9 is current.
3.8 is now the new legacy Python.
Ines, how was it for you?
Like as a library developer?
Yeah.
I mean, I feel like I only really got to use Python 3 this year.
I mean, of course I've been using it privately for much longer, but I would say in mid this
year, I was finally like, cool.
I just use type hints.
I use f-strings across all of our projects because before our dependencies had to support
people on two and our old version of space, they had to support people who wanted to use
two.
So that's, that kind of becomes the baseline.
And now we've moved that up to 3.6.
And so on to 3.6 is dead.
There's still always new features that, you know, we can't just, you know, ship.
Yeah.
But that step from 2 to 3.6 is going to be way bigger than 3.6 to 7, right?
That's a very small step to 3.6 to 3.7 or 3.7 to 3.8.
So you've, you've done the big step.
Yeah.
And some of the new features, it's like, yeah, whatever I can, you know, live without writing
those in my code base and people can still use them in their code bases.
But yeah, all the new versions we're going to publish, like spaCy 3, that's coming soon.
We'll use Python 3 in the code base and we'll only work with Python 3.
We want to distribute wheels for Python 2, which we might have not even done for a while because
it's really, really a pain for some of our more abstract and complex dependencies that we're
also building.
Yeah, cool.
So far, people haven't really complained.
Like I was, I was expecting people to complain a bit more, but like, no.
Well, if you look at the PSF JetBrains survey, the data science folks, that side of the
house have definitely moved to Python 3 quicker and bigger than the web team.
I'm actually surprised how quickly people move up.
Like, you know, I don't know, even after 3.9 came out, we've had people requesting like,
oh my God, why does your, you know, annotation tool not work on, you know, 3.9?
Or why does this not work?
And it's like, nothing works on 3.9.
Or it's like, LCI doesn't do 3.9 yet.
Like I can't build anything.
None of our other packages run.
Like, sorry.
I felt like a big person developer for like the first time ever when I actually got,
my first issue with running the latest and greatest Python.
It was because I was running GCP and I kept running into an error, running into an error.
And I was like, you know what?
It used to work.
Let me just try it on 3.8.5.
And then sure enough, it worked perfectly.
And I was like, I've done it.
I've reached the new achievement.
Nice.
Yeah.
I've taken down the Talk Python training website by shipping the walrus operator accidentally.
At the time, Ubuntu didn't support it.
A quick question or a comment from Zach in the comments about when, you know, we can actually
say legacy Python's gone when the OS vendor stops supporting it.
I think Python 2 is no longer shipping with the new macOS and Canonical is starting to make
Python 3.8 the default.
So I think we're getting there.
I thought they were removing Python in general from macOS and just making you install it yourself.
I think there might be some internal system thing.
I saw people talking about the system Python 3.8, even though I agree I heard the same thing
you said.
But I don't have a fresh install.
I think it's not actually such a bad idea.
Like I think, you know, for most things you do, you have to install some extra stuff anyway.
So making it a more explicit install from a user's perspective, I think isn't even so terrible.
Yeah.
Because otherwise, you know, if you just type in Python, you just run into all kinds of potential
issues anyway.
Yeah.
Especially when it's super out of date.
All right.
Yeah, I definitely end up like telling people in my courses, oh, you're using a Mac?
Yeah.
Ignore the Python that's installed.
I know this is a Python course.
Ignore the ones that's installed.
And here are ways that you can install it on your own.
So it'll be up to date.
And here's how you can make sure it doesn't conflict with what's already installed.
So maybe removing it all together is not such a terrible thing.
Yeah, for sure.
Homebrew, homebrew.
All right.
Ines, the voting system has chosen you next.
Unmute myself and look at my notes.
Yeah.
So I think I've already mentioned the topic I was going to talk about, about
five times so far.
But yeah, I think in 2020, we really saw the ecosystem around type hints, static type checking,
types in general mature and really be widely adopted.
And I do think a part of that is the more widespread adoption of Python 3.
Because before that, to be fair, you could use type hints before Python 3 just for completeness.
But like, that's not what people did.
And it looked very, very different.
So yeah, now and actually, even I couldn't really imagine writing code without type hints anymore.
Like if I write something and I'm not adding any types, it feels kind of naked and it feels kind of wrong.
And I actually feel like, oh my God, I might be missing some issues here.
Maybe I'm not catching some bugs.
So yeah, which is quite surprising.
But it says something considering I only just recently was able to really embrace all the new Python 3 stuff.
Yeah, that's a pretty quick transition.
Find it, yeah.
I depend on this thing now that like previously you had to stay away from.
Yeah.
And I have static type checking enabled in Visual Studio Code.
It underlines things if you pass in the wrong types.
It gives you all these nice like autocomplete prompts or previews if you want to.
That's also something I've gotten really, really used to over a really short period of time.
Like, I don't know.
What about you, everyone?
Like, do you use type hints?
Like, can we have like an opinion, Paul?
Like, just raise the hand and then we summarize it for people who just...
End of hand race.
Everybody.
I'm slowly starting to use them more and more.
I see the advantages.
And in part, as I mentioned before, we started recording, like, because my students are encouraging me to use it more and more.
Because they want it.
Because they come from languages where there's no such thing as optional type hints.
It's, you must do this or the program does not run.
So, what do you know?
They can actually be useful.
Yeah, I think that's one of the biggest benefits that I like about the type hinting system is that it's optional.
So, you could choose to use it.
And then, if you don't need it, then we could just take it out.
Because for me, like, I believe in lazy, being a lazy developer.
And stuff like type hints just make certain things a little bit more discoverable.
Right?
And kind of like what we were saying before.
Like, it just improves your tooling to be able to discover more of your code for you.
I like to use it.
I like to use it for APIs, especially for package interfaces.
So, that people using a package can use the editor tools and stuff like that for the hints.
And also, just wherever it makes sense.
I mean, if it looks like it actually detracts from readability, then I take it out.
Readability is above all for me.
So, if it's usable and readable, it helps.
I feel like they're working on that.
I just wouldn't advocate.
Oh, sorry.
Any, like, I don't know.
If you have a function that takes several arguments and then returns, like, a callback, that gives you this kind of typing.
I wouldn't advocate for that necessarily.
But, yeah.
And I feel like they're working on some of that confusion as well and some of that, like, clutter and blood.
I mean, that was, I talk about that 3.9 story.
It was because I was tired of typing, typing.list or typing.dict.
And it was just like, oh, you mean I can just do this now?
Like, and then sure enough, you know, stuff crashes.
And it's like, well, guess not.
Maybe later.
But it's great that for people who are looking at Python as a tool that they're using, not the language that they're writing on a day-to-day, but just flat out the tool that they're using, they don't know what we're talking about half the time.
But they can kind of look at something and go, STR, hmm.
Someone mentioned a string that one time.
Maybe that's what that is.
You know, it's a lot easier than just looking at the code and trying to figure it out.
Yeah.
And speaking of tools, I think type-ins, they're not only that syntax feature.
They've really enabled this whole new ecosystem of tools that use type-ins to accomplish something else or in a creative way.
And I think many of them have been covered on this podcast previously.
For example, there's Pydantic, which uses type-ins in actually one of my favorite creative ways for data validation, settings management.
It's actually a library we've adopted across a lot of our projects to just quickly, you know, you define this interface.
Here's what I expect.
You get like, you know, kind of like JSON schema just with type-ins.
Pydantic is so wonderful.
Yeah, you're right.
It's really nice.
Yeah, I would say it's one of my favorite recent discoveries in terms of Python developer tools.
And then, of course, there's FastAPI and Typer developed by my colleague, Sebastian, which probably has been discussed a lot on this and related podcast.
Yeah, he was on the show not long ago, like 10 shows ago or so.
And yeah, that's a fantastic framework, too.
Yeah, so that's, I think it's also partly what really popular, popularized, great word, type-ins in as a tool for, yeah, developing applications and so on, I think.
Also actually Pydantic.
And yeah, we've also, in 2020, I think, released our machine learning library, Think, which kind of functions more like an interface layer and lets you write neural networks, combine layers written in different frameworks like PyTorch, TensorFlow.
And we've included custom types for arrays and all that stuff that passes through the network.
Because, you know, if you're doing machine learning, a lot of it is like really abstract.
You have like this multidimensional array as in like 300 dimensions.
And then that goes through and then it gets transformed and then it goes all the way back.
And at the end, you're hoping to get something out.
And there's a lot that can go wrong.
And it's not even about like, oh, how experienced are you as a programmer?
It's like that shit's just abstract.
And we can make it a bit less abstract even by just providing custom types that you can declare.
So it's easier to see what goes in, what comes out.
Do these layers fit together?
Do they not?
Because otherwise, yeah, you easily end up with these very hard to debug NumPy errors triggered by like five layers deep that tell you that you can't broadcast that shape into this other shape.
And you're like, yeah, that's going to be fun.
This doesn't help me.
I have no idea.
Yeah, I think there's also things like mypyC, which will compile stuff that has types.
And there's Cython, which will use the new Python type hints to compile to much faster code.
So there's a lot of neat things coming out of it.
Yeah.
And I think especially also for abstract stuff like machine learning, there are lots of use cases that web type hints and type-based validation is really promising because we can also take something a developer already knows, like typing your functions, typing your layers, and it will just work and do some extra stuff if you want it to.
Watching mypy evolve is really cool.
For think, we've briefly dabbled in custom mypy plugins for a bit.
We have a plugin that checks if two layers you're chaining together return the correct types.
Like if you have one layer that returns a two-dimensional array of floats and the other layer expects a two-dimensional array of integers or four dimensions, whatever, you can actually see that underlined in your editor done by mypy as you type the code.
So you can prevent a bug before you even type it and introduce it.
So that's cool.
And I think that's all very actively developing.
So I think there's so much potential for custom plugins.
Like imagine more libraries just coming with their own mypy plugins that help the developers use those libraries better.
I think, yeah, that's all super cool.
Yeah, it's early days and there's a bunch of great tools.
Cecil, let me round this out with coming back to one thing you said.
You talked about how it was optional.
The closest analogy that I think we have to this in other languages has got to be TypeScript, which is like JavaScript plus types and a little transpiling thing.
And it's all cool.
But all my interactions with TypeScript are like, oh, you haven't declared this thing right.
This thing's, it's like, it's as picky as C++ or C# or Java.
But it's, it's not as like built from the start, like the tools aren't necessarily all there to make that fit together.
So I always feel like I'm kind of stumbling over the things like 80% of the time it's helped me and 20% of the time it frustrates me.
Whereas like here you can just kind of, you can leave it off, take it or leave it if it's good, not good.
Yeah.
I think TypeScript definitely helped with some learnings about how developers want to interact with typing.
I think the thing with TypeScript, it is very, like there's a lot of features in there and it's very customizable.
But, you know, it's kind of like you have like a nail, right?
And it gave you a jackhammer.
You really don't need the jackhammer.
Exactly.
Maybe a little finishing hammer would be nice.
Yeah.
There's a lot of different things that you can customize.
And some people need that.
But I think for 90% of folks, I'm making up that number.
That's not a real number.
But for a lot of folks, you probably don't need a lot of those knobs to turn and options to set.
Yeah, absolutely.
There was like a two-year period with TypeScript where I'd read the roadmap.
They do a great job of running their project.
Great job.
But they put a feature in using words I didn't know from type theory.
And my answer was, oh, that's for Angular.
Oh, that's for Angular.
Oh, Angular is the only one having that problem.
There's some serious machinery.
Yeah, there is.
All right.
Final thought on this from the chat is Eric O'Shaughnessy says,
I love how typing solidifies the author's intent.
Yeah.
All right.
Let's have the chooser choose again.
Jay.
All right.
So I totally didn't peanut butter on this.
But as y'all were talking, I just got some wonderful ideas.
And I immediately started thinking about just the doubling down of some of the
technologies that we've seen kind of pop up over the last couple of years, but then truly
evolve.
And one of the biggest examples of that, and I know I'm five years, daily, dollar short here,
but anything Jupyter Notebook related, it's not just for the solo data scientist anymore.
collaborative Jupyter Notebooks.
Like to me that I know people that just have dreams about that.
And they're like the best dreams ever.
And, you know, I know, Mike, you just did a podcast episode a few weeks back about that.
And we were talking about it on Python Bytes a little bit.
They're like, it's not just one option anymore.
It's, you know, there's cocalc, there's PyBinder, there's DeepNote.
Apparently I'm a DeepNote influencer and I didn't even know it.
That's awesome.
You are bringing it up again.
Again, exactly.
But not just in like Jupyter land, we have like crazy ideas.
Like what if we could do Python on the front end with Anvil?
And like now Anvil is saying like, hey, we're going to open source some of our server technology
so that you can take this technology and do it yourself.
And I think that that's just like with Type Hints, we're coming up with these ideas and
we're taking them a step further.
I think that this is what, in my opinion, has kept me in the Python ecosystem as long as it
has, is because I'm constantly learning about like brand new ways to do a thing in Python.
And I have to talk about this because I told people in my Slack channel that I would.
But like we just, you know, at Elastic, we just launched a brand new tool called Elant
and it's in beta.
And the whole idea is it's like a Pandas data frame.
But instead of storing all of your data in memory, you can store it in an Elastic search,
you know, data store.
Oh, that's an interesting idea.
So now instead of being limited to what your RAM can hold, you're limited to how much space
you got and you can run search and you can run queries on it.
You can tie it into things like, you know, scikit learn and TensorFlow and do, you know,
any type of machine learning on it.
And at the end of the day, you're doing transforms on the data as it's in the data store.
So there's no more downloading a bunch of data, working on it and trying to re-upload it.
And it's off of the backs of crazy ideas from people crazier than I am that are just like,
hey, what if we could do this?
And, you know, to me, that's all I wanted to do with Python is just make up goofy stuff
and see if it would work.
I think that's an interesting idea.
You could start using things like lots of data and things like serverless,
where you get really short execution times and not much power.
But if it's already in something like Elastic, you could do pandas against it,
like quote pandas, like the API against it without really suffering a lot of trying to
download it to your little Docker Lambda callback thing before it runs out of time to execute
and whatnot.
Yeah.
Actually, I think I've seen some people do some cool stuff with spaCy and Elastic as well,
you know, processing all the huge volumes of text, which also I think is such an interesting
part of our application of data science.
Like, you know, you want to have, you have so much text that, you know, you can't even,
nobody can read it.
You can barely store it, but you can still analyze it and process it and find something out about
it that otherwise.
So yeah, that's, that actually sounds quite cool.
I mean, the problems I was, I was having initially was just this amazing problem of like, I've got
a million lines of data that I need to do something with.
And I've got this little Mac mini here.
That's just chugging along, trying its best.
And everyone's like, well, why don't you just use the Google API?
And it was like, okay, well, I did the math.
I'm going to need $20,000.
And it's like, okay, so we can't use the Google API.
We can't solve it with that problem.
What else do we got?
And now it's like, oh, wait, you mean I can just store all this data?
Because I'm, it's only a few gigs, but then I can just hit my local server as many times
as I want.
Let, you know, search store or any type of data store that's good at retrieving the data
as I want it, as I need it, and then let it do its thing.
Like that solved a $20,000 problem.
I mean, even, even a site for the cash.
Do you want to send all your data to Google?
Probably not.
Yeah.
I mean, that's awesome.
Even if it were free.
You can also send it to Facebook while you're at it.
I don't know.
I was, I was working with police call records.
So I don't want to send that data anywhere.
I don't want to be on a watch list.
No, exactly.
And I think those are like really, a lot of these really important applications of the technology
when in the health domain, people are doing good and useful stuff, but they should not
do that stuff at that type of cost, which means sharing all of their sensitive data with
companies that will, you know, want it for some other reason.
Yeah, absolutely.
Matt, Reuven, you guys do training.
What's the Jupyter story around there?
I did a class with not Jupyter, but it was all collab based this morning.
So yeah, I use it a lot.
I think it's great for beginners.
Like I said, for a lot of people who are scientists or engineers, that's what they sort of consider
Excel.
And so a lot of them sort of want to sit in Jupyter all day.
They don't even want to like think about modules or code or even software engineering.
Right.
And so it's somewhat of a challenge for me to sort of say, okay, let's talk about some engineering
skills and some good best practices for Python projects.
And I'm like, oh, I don't want to leave Jupyter.
Right.
Can I do this all in Jupyter?
I'm like, well, you could, but you kind of don't want to per se.
But yeah, definitely cool.
I think what I'd love to see is Inez's fancy mypyChecker hooked up with pandas on Jupyter.
That would make my day because that's one of the things that I find confuses people just
with pandas having 50 ways to do things and then objects returning five different types
or methods that return five different types that like you don't get any tab completion or
any of that good stuff in Jupyter when you're doing a lot of the machine learning stuff.
Yeah. And a bunch of like grownup engineering stuff is coming to Jupyter, right? Like NBDev,
NBQA, some of these other stuff that's coming there is making it way more interesting for that
regard.
Yeah. The NBDev stuff is interesting just coming. I mean, that's sort of taking it to that sort
of literate style of programming where we're going to stay in Jupyter all day and do everything
from that. And then, you know, Netflix has their stuff where they're deploying Jupyter
notebooks to production.
Yeah. It was paper mill. Yeah.
Reuben, how about you? And then I'm going to run the chooser.
So I, yeah, I mean, I use, oh, so I use Jupyter every day for my training. I don't use slides. I
just do live coding. And I find that's a great way to show them not just sort of the answer. This
is how you code something, but this is the process you use to get to the solution because teaching
people that process is really important. And it also means I can share with them everything that
I typed during the day really, really easily. People are a little resistant to using it first,
especially experienced developers. They're like, wait, what is this thing? Why are you not using a normal
IDE? I'm actually forced myself in the last year to remember, oh yeah, we should do a few exercises
and tell them to use the IDE so they won't think that everything is done in Jupyter. That's a great
environment. But like, there are other ways to develop software.
Why does Python only run in this weird web browser thing?
Right, exactly.
Speaking of this, this is another, I think this is another reason why Python has taken off so much,
just that you want stuff to be dynamic. If you're doing the sort of data science-y type of work,
you want to run your code that way, even if you're running it in an IDE in a more traditional way.
But I think Jupyter has especially, not just like, oh, you want to have like these little notebook
cells in your browser, but more like, this is the type of way you want to interact with code,
run something, change a line, run again, run that part.
Well, that's where they're coming from too. They're coming from notebook environments. And so this makes sense for a lot of these people.
And being able to just explain it, you know, on the same, just in one look, like instead of going,
here's five slides explaining what I'm about to do, or here's just the code. Now let me sit here and explain it to you.
I can literally break it down line by line. Okay, this is what's about to happen now. Let's run this and watch it happening as we go.
So for people who don't write Python full time, again, it's amazing because for them, they can see it piece by piece.
Just like, you know, my daughter, I'm just trying to teach her how to read early. And it's just like,
like break it up piece by piece. And like, you can do that when you're training young, experienced wise Pythonistas and just say,
like, hey, let's just look at what this does. And if we want to dig into it, it's almost like having a debugger in your presentation
and just being able to like stop at any point in time and go, all right, let's, let's jump in. Let's go deeper. Let's really talk about this.
Yeah. Or be able to step back two lines of any execution.
True.
All right. Just for the time sake.
I started using...
Go ahead. Last thought, Reuben. You get the final thought on this one.
I started using more and more markup in my notebooks as well to like sort of document what I'm doing explicitly and sort of,
instead of just using hashtags and comments. So it becomes much more obvious with bullet points. I think people are enjoying that as well.
Yeah, that's great. And that's, I mean, that's part of the Zen of notebooks. All right. And you're up next. The random choices selected you.
Okay. So my big story for this year is very small story, a microscopic story. It's COVID. It's the coronavirus,
which I think for the first time ever, it's the topic that everyone is speaking about in every country,
every walk of life, like whoever I talk to, wherever they are, this is the only thing people talk about
because it has such a profound effect on everything we've done. Now, you know, this is a Python show.
So we'll talk about the Python aspect of it. And I'm not trying to minimize at all the extraordinary pain
that people are going through physically, medically, emotionally, financially, on, on, and on.
But Python is considered, has continued sort of chugging along throughout this crisis. In fact,
like we've seen that big companies, high tech companies are actually among the winners in this
as the whole world has gone digital and companies are hiring Python developers. They're increasingly
desperate for Python developers. The number of people in my corporate training classes, who, when we go around,
everyone introduces themselves, who were hired in the last six months is amazing to me. Like these are
people who are working from home, were interviewed from home, hired from home, and are now doing training
from home as their companies sort of grow in interest and power and everything. So people who have Python
skills have continued to be, and I would even say are increasingly in demand, which is amazing. The bad news
among the bad news is of course, so I mentioned this before, Python and all the other meetings and meetups
and gatherings have suffered as a result. The good news in this front is I've been able to speak at
many more conferences than I would have been able to because, hey, I can attend the conference from my
home office. I don't need to fly anywhere, go anywhere. But you know what? All of these conferences,
these online solutions are still really lacking. At the end of the day, as much as we want to say,
we're virtual, we're online, we communicate this way. And that is an important part of things,
that face-to-face contact, that personal contact is really missing. And I'm really feeling it. I've only been
doing conferences for a few years now. And boy, I really miss being in the same room as other people
and talking to them and chatting and just sort of randomly bumping into people. And then you also
have the financial aspect of it that someone was mentioning earlier, the PSF, their big fundraiser
each year is Python. And I'm sure it was a hit for them not just not to have it this year, but to have
to cancel the venue. And I am extremely skeptical that's going to happen in person. I know EuroPython
already said it's not happening in 2021. And we'll have to see exactly how this affects the community
going forward. I'd say so far, we're doing okay. But you know, here's an opportunity for someone to
figure out how can we do conferences online that are effective in a closer way to what we've been
doing so far. The news is, I would say, unbalanced good for Python and for people who know Python,
but still pretty, pretty bad overall. And also add that like these vaccines, I mean, boy, oh boy, if they
work, this is going to be like, I'm super not as a biologist or anything, but I'm so amazingly impressed
with all the science and the work that people have been doing on this front. And I think this has a chance
also to affect our lives moving forward, how they develop them.
They just need to make a PyCon bubble. So in the United States, the NBA was continuing to play because they
they had a bubble where they isolated all the players for however long, right? So we just all go to somewhere
and bubble up for however long.
Then we can have our conference online.
I'll isolate with you guys for a month.
I don't know if my family will let me do that.
Jay, we'll just do it in San Diego, man. It's nice there.
Okay, I'm all for it.
Coronado Island, we'll just get a section of it, okay?
Yeah.
But we're not mandatory quarantine for like conferences. I just did two-week quarantine here to be able to enter
Australia.
Yeah, just in Australia.
Make PyCon in Australia.
That sounds okay to me.
Problem solved.
Well, I mean, to be fair, it's expensive. So I wouldn't, you know, it's like, you know,
would you want to pay like, you know, your conference plus two weeks at a hotel in order to do that?
I don't think that'd be even less inclusive than a lot of these conferences already are.
I don't want to take all of this thunder.
But one of the first conferences that I watched was, Cecil, please remind me now because I'm blanking.
That's how long of a year it's been.
The conference that you helped put on.
And the Juneteenth Con.
Yeah.
And with that, I mean, one, great conference.
I'm sorry I screwed up on remembering the name.
That's my fault, not yours.
But also the sheer fact that that conference was organized in two weeks and it was an amazing
conference.
Like the ability.
And that could never have been done if it was in person, right?
Yes.
So like the accessibility that you're providing to new speakers, people that normally would
not be able to get up and give a presentation.
Like I've had that conversation so many times of like the type of talks that I like to create
are not the type of talks you see at PyCon and there's a reason why.
And it's not a bad thing.
It's just, it is what it is.
And I think when you're able to say, you know what, let's do a conference.
Let's make this happen.
Let's just get up.
We can have fun with it.
I've seen some conference talks that were literally small budget films.
Like they had multiple casts.
I've done transcriptions on conference talks that literally had, like they gave me the script
and said, all right, here you go.
So like when you can actually do things like that and think outside the box and use this
time to readjust the needle.
There was a good podcast episode on more than just code.
I believe not more than just code.
I don't remember what it is.
I'll find it greater than code.
That's what it was.
And they said, if we haven't taken this time to do something better when things are different,
when things have improved, then shame on all of us because yes, this sucked, but it caused
us to think so much outside the box that we should be able to take all that knowledge with
us when we can get back in the box and just have a ton of fun with it.
Yeah.
I think a lot of opportunities been made available for people to attend conferences and for people
to get jobs where companies would previously say, no, you have to move to San Francisco or
to Omaha or whatever.
It's like, well, you know what?
No one's going to the office.
Let's try hiring from the best in the world instead of the best in Nebraska or whatever.
I think that might be the biggest fallout of this, Michael, is just the change in everything
being centrally located in Silicon Valley.
Yeah.
I've heard of a lot of people that actually just have jobs in the Valley that have moved
back to where their parents are because it's like 10 times cheaper or something like that.
And they're not going to want to move back.
Yeah.
Have you heard that some companies are then readjusting their salaries?
They're saying, well, if you live outside of the Bay Area, then it's cheaper.
So we're going to cut their salary as a result.
Yeah.
But people have always been doing that.
That's like, unfortunately, not new.
So if you're listening and this happens, you can say, well, you no longer have to pay
$17 million for my office area.
So let's call it an even swap.
Just keep a virtual address in the Bay Area.
Exactly.
My PO box is right down on Fifth Street.
All right.
Last one.
This random choice was easy because we're down to our final.
Excellent guest.
Matt Harrison, what do you got for us?
Okay.
My thought was just on sort of the hardware aspect of things this year.
So I have a daughter who started college this year for better or for worse.
And she's learning both C++ and Python right now.
Her linear algebra class has a Python lab, which I think is awesome.
I wish I had that.
But I was actually helping her with some homework.
I wasn't doing it, but she was like, I can't figure this out.
So I was her rubber duck the other night.
And her issue was allocating memory, right?
And so one of the things that's nice about Python is you don't have to worry about allocating
memory.
And she got all the output, but she was just double freeing a pointer here, which they checked
on submission.
So Python's now, now we're seeing Python.
And I'll just tie this.
Like I have a client who wants next year wants me to do a training on GPUs with Python, which
just goes to show like my clients tend to be big companies.
And so big companies are now leveraging like specialized technology to do things very quickly, right?
And if you have a GPU, you can get 10,000 times performance that you get out of a CPU.
So I think that's super exciting.
There's the Rapids project, which is heavily sponsored by NVIDIA.
And I'm super impressed with that.
They're basically like taking well-known APIs and basically saying, hey, your code basically
change an import or, you know, with the change of an import and this hardware, your code will
run X times faster or whatever.
And so I think that's super compelling and exciting.
Not that necessarily everyone will have access to those sorts of things, but it's now, it's
now getting to the point where it's becoming more common.
On the note of hardware, I think another thing that was really interesting this year was the
Apple M1 chip coming out.
I actually bought a beefy PC this year, having run a MacBook for 15 years, just because due to
Corona and whatnot, I needed something beefy to start doing virtual sharing and presentation
like this and my MacBook just wasn't cutting it.
But the thing I don't like about my PC is that it has, it sounds like it's going to take
off every time I start doing something, right?
Like modern Intel chips can take us to Mars if they want to.
We just need to like make a huge drone out of them.
And so I'm super excited to see, like, if you can get a silent MacBook that, you know, is
super powerful, runs faster than Intel chips.
That's super compelling, especially if they allow you to get a little bit more RAM, which
from the machine learning side is interesting to me.
But I'm also excited about the competition factor of that.
I think like Intel and the chipset has sort of stagnated for the past couple of years.
We've sort of run out of the end of Moore's law per se.
So I think both the GPU and the M1, it'll be interesting to see what the competition is from
the PC manufacturers if they're going to, you know, do a similar everything on a chip thing
or just sort of go with what they've been going with.
I think competition is good.
And so I'm excited that Apple did this, even though there's going to be some growing pains
and Python might have some issues at first, but I think in the end, new technologies, new
hardware that allow us to write at high levels and not have to worry about freeing and allocating
memory, which again, a lot of people are using Python don't care about that.
They don't want to be programmers.
They want to leverage great code, stand on the shoulders of giants and the latest and greatest
software and hardware and have it be fast.
So I'm super excited about the future with them.
Yeah, I'm really excited about both these things.
Like the whole GPU revolution is incredible.
And the Apple M1 stuff is going to be really, really interesting.
Like you, I bought a maxed out Mac mini.
I actually had already ordered a top of the line MacBook Pro 16 inch.
And then that came out.
I started seeing the reviews.
I'm like, you know what?
Forget it.
I'm not getting that thing.
I'm getting this new one to try it out.
And it does have some drawbacks, like Docker doesn't work right away.
Maybe it will, maybe it won't.
But I have a 2018 MacBook Pro.
That's pretty good.
I have a SimRacing 16 core machine over there.
Like I've got plenty of Intel stuff to work.
So I'm going to try to jump on this.
And I think the interesting Python angle here, besides just having stuff to run our code in
is, you know, Inu's talked about like her CI didn't support 3.9 right away.
Well, who's CI is going to build wheels for Apple M1 straight away and things like that.
There's going to be some interesting growing pains, especially on the data science side,
as this true platform shift happens.
It's fun that you mentioned that because actually, yeah, when this came out, we were also thinking
like, ah, maybe we should get one of these.
You know, we want to make sure spacey compiles properly on it and we can really, you know,
optimize for that.
And did you guys get one?
Yeah.
Because someone has to do it or so, you know, not yet.
No.
Also, it's a bit difficult with the traveling.
But like, yeah, that's kind of when we have other priorities too.
This is not, I wouldn't put this like at the very top, but like, it's definitely something
we want to do.
But at the same time, we also want to keep optimizing for CPU.
Like that's the other thing.
Of course, you know, even all the new, these new NLP models, all of that stuff, obviously,
runs great on a GPU.
And we'll see a lot of improvements.
And we also see this become much more available and cheaper for people to use.
But at the same time, we're still, we're still optimizing our tools and libraries for CPU.
Like you can run it on your random laptop.
And also it's still for a long time, it will be cheaper still.
If you just, you know, you want to run lots of machines and you can get those, you know,
much cheaper in the cloud.
And if you can parallelize, you can train, train your models very efficiently on CPU.
If you can get it to work.
Yeah.
That will always be cheaper for a long time.
There's a lot to say about just the overall cost of computing as a whole.
I mean, this is great.
This is $10.
And I mean, I can run a lot of stuff on that.
You're holding up a circuit.
Well, this is the Adafruit thing just for the people who are not on the video.
Oh, yeah.
Sorry.
I'm holding a Raspberry Pi Zero W.
So it's like, you know, four gigs of RAM, like enough.
You can buy a 64 gig like flash drive for $3 now.
Like it's amazing.
Like just the overall cost of compute has dropped so much.
I mean, what was it?
The, what is the Raspberry Pi?
400?
400 where it's just, it looks like a keyboard, but it's actually a whole computer.
Yeah.
So it's like, as we continue to do more and more, we're doing it with less and less and it's cheaper and cheaper and cheaper.
And most of us are coming from someplace where the cost of living is too damn high.
And we're able to say that we can afford to buy a $15 Pi Zero and not think about it too hard.
But the fact that we're getting to that point where you can have people all over the world where the question isn't anymore, how do I get a computing device in my hands?
It's like, okay, now I have some choices and they're all affordable.
Like to me, that's, we're going to see a lot of things come where Brian Okken is right now, where VS 2103 is in the future.
There's going to be a lot of great things coming.
And yes, I'm looking at chat.
I have my kids to have one of those one laptop per child's in their bedroom over there, right?
Which I think that the Raspberry Pi 400 is sort of...
It's the next gen of that.
It's actually something that makes sense.
Everyone has a TV, right?
And you can just plug it in and you're not in somewhere.
I mean, you're in Linux.
So yeah, you're in a weird environment, but you can run...
Is that one of the laptops with the hand crank on it?
Yeah.
Well, it has a little wings.
Mine didn't have the hand crank, but...
Okay.
I actually like, I kept hearing about Raspberry Pi.
And so I decided to order one recently and I haven't done anything with it.
I like just came a few days ago, but I'm looking at this thing.
I'm like, oh my God, this little card here that cost me less than a hundred dollars, a lot less than that,
is more powerful than the computer I use to run my entire business for years and years and years.
It's just astonishing to me.
Yeah.
So I think that's probably a good place to round out the show.
Like the future is so exciting.
And in some ways we're like kind of living there, right?
Some of these things that are coming out are so amazing.
And I just want to say thank you all to you all for being here.
You're all doing such amazing work and it's really humbling.
You all took time from crazy schedules, from traveling, from weird locations to just be here and make this whole event happen.
Thank you for listening to Python Bytes.
Follow the show on Twitter via at Python Bytes.
That's Python Bytes as in B-Y-T-E-S.
And get the full show notes at pythonbytes.fm.
If you have a news item you want featured, just visit pythonbytes.fm and send it our way.
We're always on the lookout for sharing something cool.
On behalf of myself and Brian Okken, this is Michael Kennedy.
Thank you for listening and sharing this podcast with your friends and colleagues.