Python Bytes - #214 Python year in review (2020 edition)

Episode Date: December 28, 2020

See the full show notes for this episode on the website at pythonbytes.fm/214...

Transcript
Discussion (0)
Starting point is 00:00:00 Hey everyone, 2020 has been quite the year, hasn't it? Definitely one of those for the history books. So over on TalkPython 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 TalkPython before. So I thought what we could do for our year in review here is to bring you that same show,
Starting point is 00:00:22 to bring you that same conversation. In fact, it was more in the style of Python Bytes than it was TalkPython, to bring you that same conversation. In fact, it was more in the style of Python Bytes than it was TalkPython, 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, Enos Montani, Jay Miller, Paul Everett, Reuven Lerner, Matt Harrison, Brian Auchin, 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 repeat guests and
Starting point is 00:00:59 scheduled for more episodes even, hint, hint, Enos. 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 of 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 Name again. Happy to be here. I haven't been a guest in like three years. So
Starting point is 00:01:35 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 lessons. 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. 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?
Starting point is 00:02:09 It's not that early. It's only 5.30. Oh, okay. Well, thank you so much for waking up early. 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.
Starting point is 00:02:20 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.
Starting point is 00:02:41 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 there's a picture of me on the cover, of course. Of course, yeah. That was when you were working out, preparing for the Olympics? Precisely, precisely.
Starting point is 00:02:54 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, 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
Starting point is 00:03:20 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. 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.
Starting point is 00:03:47 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.
Starting point is 00:04:10 Brian, we've met before, right? No, Brian Ocken, 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 Reuven. 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
Starting point is 00:04:42 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, yeah. You were just recently on about learning how to learn. Yeah. Does it count if I have everyone else's book?
Starting point is 00:04:55 Yes, it does. But it would also be hard to hold them all up, especially if you got all of Matt's. Cecil fell up, 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,
Starting point is 00:05:07 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 on the Microsoft Developer account. And we do very beginner friendly conversations about Python
Starting point is 00:05:21 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.
Starting point is 00:05:32 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, you know, Brian is a JavaScript guy.
Starting point is 00:05:49 I'm a.NET guy. But we're both, I like to call it Py-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. It is really low-key.
Starting point is 00:06:02 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. 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
Starting point is 00:06:49 round one, Cecil, you're on screen and 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, you know, 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 joined 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, or talk about it.
Starting point is 00:07:32 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 9? Is it public or is it? No, it was internal. It was an internal interview. I don't know what his, I'm sure he'll do some other ones, but it was an internal one. Did you make him whiteboard? No, we didn't do him any whiteboarding.
Starting point is 00:07:56 We did ask him what some of his favorite shows were. So that was pretty interesting. We asked him like the Star Trek versus Star Wars conversation too. I couldn't handle that pressure. It's hard, man. Tough crowd. Tough crowd. I think it's definitely amazing to be able to see folks from the industry, like kind
Starting point is 00:08:12 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 Reuven, 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 even 10 years ago, the notion that Microsoft would be so
Starting point is 00:08:31 involved in the open source space, and specifically the Python space, was basically unthinkable. I mean, I think it was Steve Ballmer who said, you know, Microsoft, not Microsoft, like 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
Starting point is 00:08:59 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,
Starting point is 00:09:30 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.
Starting point is 00:09:47 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,
Starting point is 00:09:53 we'll sign forward because every misstep can have, like, you know, a really big impact. Yeah. If Microsoft starts doing bad things again,
Starting point is 00:10:01 people are not going to be, you know, very forgiving at all. Yeah. 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,
Starting point is 00:10:12 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. 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
Starting point is 00:10:38 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.
Starting point is 00:11:04 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?
Starting point is 00:11:28 And then kind of circling it back around to Guido, 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,
Starting point is 00:11:52 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. I think someone on, on Twitter had said, so now we actually hire folks that contributes to, you know,
Starting point is 00:12:04 obviously C sharp and F sharp and.NET stuff, but also folks that contribute to Java, Rust, C++, and now 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
Starting point is 00:12:37 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, Thank you. 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 slash Linode and click that create free account
Starting point is 00:13:32 button to get started. All right, I'm going to run the chooser. Paul, it has chosen you. Not sure about your chooser algorithm here. It 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 and it's seen as how it chose you first it could be flawed we're reviewing are you changing are you changing the random seat on every exactly exactly yeah i should be my topic my topic is things change 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,
Starting point is 00:14:11 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 out as BDFL and kind of a new language governance
Starting point is 00:14:31 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 and 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?
Starting point is 00:15:03 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,
Starting point is 00:15:21 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 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.
Starting point is 00:15:41 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
Starting point is 00:16:14 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. Indeed. Yeah. Yeah, I think it's really nice to also have, you know, some stability, even, you know, especially nowadays, that's quite rare. And just to see, you know, stuff just works. Nothing goes wrong. No drama. No, you know, nothing terrible. Just drama's almost boring.
Starting point is 00:16:36 Yeah. Boring's 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
Starting point is 00:16:55 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, you know, the previous like Microsoft and Java and sort of, I guess, big money behind those sorts of languages and like the early 2000s pushing them. And then I think community and to the point of like developer
Starting point is 00:17:22 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,
Starting point is 00:17:42 but it's a thriving language. And 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 Enos, 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?
Starting point is 00:18:16 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 to use Python for, before it's a lot of web stuff.
Starting point is 00:18:35 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's great. It's fast enough. It's usable enough.
Starting point is 00:18:53 But I think the general purposeness 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. 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, there's no weirdness. And then you have things like Google Colab or whatever, where you no linking, there's over a quarter of a million packages on PyPI, right? And that's like literally
Starting point is 00:19:46 standing on the shoulders of giants. You can go there and pick out something that you want to do and you're a pipette and stall 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, beauty-edged... 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 PyPy, most of them do Arviden and C, Scython, whatever. That's what makes them so powerful.
Starting point is 00:20:22 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 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.
Starting point is 00:20:39 But when you want to do complex stuff, you're not limited. And so just yesterday I was like 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 to several layers. And he was amazed how complex you can get and how sophisticated you can get just in a
Starting point is 00:20:56 few lines of code. It's really a testament to the elegance of the design of the language, I think. Andre Vlasovsky in chat makes a good point that many folks say Python is their second favorite language, you know, and there's something to be said for that. Jerks. Sorry. Should be there first. I'm with you. I'm with you. Well, to that point, I mean, it's also been said that Python is the second best language for doing
Starting point is 00:21:18 things right. So you might have a language that's better. Yeah, that's actually his quote. I got it. Data science, or you might have a language that's better for web apps. You might have a language that's better. Yeah, that's actually his quote. I got it right. 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.choice chooses Brian Ocken. 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,
Starting point is 00:21:56 because it just kind of hit the area right 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 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, and I was supposed to pick one. The exciting thing happened today. PIP 20.3 was released, and the dependency resolver is now the default.
Starting point is 00:22:19 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've 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.
Starting point is 00:22:40 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. So that's pretty cool. Yeah, that's a big deal. There's been a couple of these experiences where money was given to Python specifically to hire a team to improve
Starting point is 00:23:06 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 a version 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.ini file, now only uses PyProject.toml. There depend like additions to the metadata definition that,
Starting point is 00:23:48 that hopefully will take hold. And even pie test. Now you can throw your configuration in a pipe project at home. So, and I've seen more and more projects saying getting pressure from their users to say, I don't want another, any file I want to put my settings in the project at home.
Starting point is 00:24:04 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,
Starting point is 00:24:18 not things that I would want to go on PyPI. No, 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
Starting point is 00:24:45 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. It's a Python podcast, right? Oh, worse. It's Gatsby. So I basically put 500,000 JavaScript packages into my repo. Yeah. And I'm saying that there's something I appreciate about Python a lot that like I asked you, I never thought I'd say this,
Starting point is 00:25:13 but like I do prefer also that you don't. 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 I just don't yeah that totally fixes it that is one way to do it yes it's like i've always said that's a problem
Starting point is 00:25:32 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 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 something. Fuck, yeah, I know. That's kind of wrong. So now I actually have to fix it.
Starting point is 00:25:51 So, you know, just don't. So we should not let you speak at our 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
Starting point is 00:26:07 with the dependency resolver is it told me I should, I give me a PR to upgrade one thing, but not one of the dependencies for which the newer version was required or it would break the resolver. It's just like, ah, what is this thing doing?
Starting point is 00:26:20 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.
Starting point is 00:26:31 Well, the thing is, the PIMP is fine. It was right. It's that Dependabot, if you have 100, not 100, I probably had 20 dependencies in this thing. It gives you one PR for each line. Sometimes it's like lags a day on the other one. And if it gets it out of order, then the resolver gets... Anyway, long story, frustrating. I mean, to be fair, speaking of dependency resolving from the perspective
Starting point is 00:26:52 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
Starting point is 00:27:00 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,
Starting point is 00:27:15 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 Edible installs?
Starting point is 00:27:37 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 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 yeah bad wolf says in the chats what is the quick solution for getting pip version updated the first thing you
Starting point is 00:28:22 created a virtual environment this is another thing that drives me crazy about pip and if they 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 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.
Starting point is 00:28:51 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, then upgrade. Yeah, it's funny.
Starting point is 00:29:00 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 one, switch. I shared my script somewhere, I think on Twitter, if anyone's interested. Nice, yeah, mine's just V and V.
Starting point is 00:29:13 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,
Starting point is 00:29:46 you 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, then 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 two and three. And that was fun.
Starting point is 00:30:24 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 two 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,
Starting point is 00:30:42 I really seen that happening. So it's, it's pretty interesting. I think. Yeah, I think we should have brought horns and stuff and, you know, waving. Some of those little pop, like, bottle-looking New Year's stuff, absolutely.
Starting point is 00:30:56 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 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
Starting point is 00:31:08 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 make this a reality. Yeah, 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.
Starting point is 00:31:29 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 API. 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
Starting point is 00:31:59 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, you know, even sort of the draggiest of the draggiest companies are doing it. Yeah, I was just going to echo what Ruben said, that, you know, when you have success and you get enterprises using your stuff and enterprises are slow to move.
Starting point is 00:32:22 And I don't want to like 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?
Starting point is 00:32:43 I'm not going to go there. You know, I was not super excited about the wall shop operator i've found myself using 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 three eight right the walrus i believe so yeah 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. Yeah. 3.9 is current. 3.8 is now the new legacy Python.
Starting point is 00:33:14 Ines, how was it for you 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 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 Spacey had to support people who wanted to use two. So that kind of becomes the baseline.
Starting point is 00:33:36 And now we've moved that up to 3.6. And so until 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 dead. There's still always new features that we can't just 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, the 3.6 to 3.7 or 3.7 to 3.8. So you've done the big step. Yeah. And some of the new features, it's like, yeah, whatever. I can 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 Spacey 3 that's coming soon
Starting point is 00:34:08 will use Python 3 in the code base and will only work with Python 3. We won't 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. So far, people
Starting point is 00:34:24 haven't really complained. I was expecting people to complain a bit more, but like, no. Well, if you look at the PSF JetBrains survey, the data sites 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.
Starting point is 00:34:40 Like, you know, I don't know, even after 3.9 came out, we've had people questing like, oh my God, why does your annotation 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. I was like, LCI doesn't do 3.9 yet. Like I can't build anything.
Starting point is 00:34:55 None of 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 385 and then sure enough, it worked perfectly. And I was like, I've done it. I've reached the new
Starting point is 00:35:18 achievement. Nice. Yeah. I've taken down the TalkPython training website by shipping the Walrus operator accidentally. At the time, the 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 vendors stop supporting it. Well, I think Python 2 is no longer shipping with the new Mac OS 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. It's not actually such a bad idea.
Starting point is 00:36:02 I think 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 so yeah especially when it's super out of date all right yeah i definitely end up like telling people 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 installed.
Starting point is 00:36:29 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 altogether is not such a terrible thing. Yeah, for sure. Homebrew, homebrew.
Starting point is 00:36:41 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 like really be widely adopted.
Starting point is 00:37:02 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
Starting point is 00:37:18 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 feel like oh my god i might be you know 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 so 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.
Starting point is 00:37:53 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 pins? Like, can we have like an opinion poll? Like just raise the hand and then we summarize it for people who just missed it.
Starting point is 00:38:10 And raise. Everybody. I'm slowly starting to use them more and more as 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
Starting point is 00:38:24 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, 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.
Starting point is 00:38:50 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 or 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.
Starting point is 00:39:16 Readability is above all for me. So if it's usable and readable, it helps. I feel like they're working on that. I wouldn't advocate 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.
Starting point is 00:39:32 And I feel like they're working on some of that confusion as well and some of that like clutter and bloat. I mean, that was I talk about that 3.9 story. It was because I was tired of typing, typing dot list or typing dot dict. And it was 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,
Starting point is 00:40:10 STR, hmm, someone mentioned a string that one time. Maybe that's what that is. 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 hints, they're not only that syntax feature. They've really enabled this whole new ecosystem of tools. I think type hints, they're not only that syntax feature. They've really enabled this whole new ecosystem of tools that use type hints 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
Starting point is 00:40:36 Pydantic, which uses type hints 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. You 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 hints.
Starting point is 00:40:51 Pydantic is so wonderful. Yeah, you're right. It's really nice. It's really nice. Yeah, I would say it's one of my, yeah, favorite recent discoveries in terms of Python developer tools. And then of course,
Starting point is 00:41:00 there's FastAPI and Typer developed by my colleague, Sebastian, which probably has been discussed a lot on this and related podcasts. Yeah, he was on the show that long ago, like 10 shows ago or so. And yeah, that's a fantastic framework, too. Yeah. So I think it's also partly what really popularized Type know as a tool for yeah developing applications and so on i think also also actually pydantic and yeah we've also in 2020 i think released our machine
Starting point is 00:41:33 learning library think which kind of functions more like a an interface layer man 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 if you're doing machine learning, a lot of it is really abstract. You have this multi-dimensional array as in 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, oh, how experienced are you as a programmer? It's like,
Starting point is 00:42:07 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
Starting point is 00:42:48 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 MyPi evolve is really cool. And for Think, we've briefly dabbled in custom MyPi plugins for a bit. We have a plugin that checks if two layers you're chaining together return the correct types. If you have one layer that returns a two-dimensional array of floats
Starting point is 00:43:21 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 make it, like 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.
Starting point is 00:43:49 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's 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 Sharp or Java, but 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 times it
Starting point is 00:44:29 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 yeah i think typescript definitely helped with some learnings about how developers want to interact with typing i think the thing with typescript that 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 I gave you a jackhammer. You really don't need the jackhammer. Exactly. 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 up that number that's not a wrong number but for a
Starting point is 00:45:05 lot of folks we're holding you to it you probably don't need a lot of those knobs to turn and options to say 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 i 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.
Starting point is 00:45:34 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 have the chooser choose again. Jay. All right. So I totally didn't peanut butter on this, but as y'all were talking,
Starting point is 00:45:56 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 like five years daily dollar short here, but like Jupiter, anything Jupiter notebook related, like it's not just for the solo data scientist anymore, like collaborative Jupiter 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
Starting point is 00:46:31 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 DeepNode. Apparently I'm a DeepNode influencer and I didn't even know it. But that's awesome. You are bringing it up again.
Starting point is 00:46:44 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 TypeHints, 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
Starting point is 00:47:15 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 on my Slack channel that I would. But like we just thought, 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.
Starting point is 00:47:47 And you can run queries on it. You can tie it into things like scikit-learn and TensorFlow and 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 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,
Starting point is 00:48:34 like the API against it without really suffering a lot of trying to download a cheer little Docker Lambda callback thing before it runs out of time to execute and whatnot. Yeah, I've actually, I think I've seen some people do some cool stuff with SPACI 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 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 actually sounds quite cool.
Starting point is 00:49:09 I mean, the problems 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's like, OK, 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?
Starting point is 00:49:33 And now it's like, oh, wait, you mean I can just store all this data? Because 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. You can also send it to Facebook while you're at it. I don't know.
Starting point is 00:50:06 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 in the health domain. People are doing good and useful stuff,
Starting point is 00:50:20 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 Jupiter all day. They don't even want to think about modules or code or even software engineering, right?
Starting point is 00:50:59 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. a fancy MyPy checker hooked up with pandas on Jupiter, 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 Jupiter when you're doing a lot of the
Starting point is 00:51:42 machine learning stuff. Yeah. And a bunch of like grown-up engineering stuff is coming to jupiter right like nb dev nbqa some of these other stuff that's coming there is making it way more interesting for that regard yeah the nb dev 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 jupiter all day and do everything from that and then you know netflix has their stuff where they're deploying Jupiter notebooks to production. Yeah, it was paper mill. Yeah. Reuven, how about you? And then I'm going to run the chooser. So I, yeah, I mean, I use, oh, so I use Jupiter 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
Starting point is 00:52:24 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've 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 it's a great environment. But like, there are other ways to develop software. Why does Python only run in this weird web browser thing?
Starting point is 00:52:57 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 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 what they're coming from from too. They're coming from notebook environments. And so this, 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
Starting point is 00:53:39 about to do, or here's just the code. Now let me sit here and explain it to you. I can, 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. 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,
Starting point is 00:53:58 I'm just trying to teach her how to read early. And it's just like, break it up piece by piece. And you can do that when you're training young, experienced 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 in your execution. True. All right. Just for the time. Let's really talk about this. Yeah. Or be able to step back two lines in your execution.
Starting point is 00:54:25 True. All right. Just for the time being. 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 document what I'm doing explicitly and 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 part of the Zen of notebooks. All right.
Starting point is 00:54:52 And you're up next, the random choices selected you. Okay. So my big story for this year is very small story, a Microsoft 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 is such a profound effect on everything we've done. Now, you know, there's 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 has continued sort of chugging along throughout
Starting point is 00:55:31 this crisis. In fact, 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. 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, PyCon and all the other meetings and meetups and gatherings have suffered as a result. The good news on this front is I've been able to speak
Starting point is 00:56:19 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 going to 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
Starting point is 00:56:56 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 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, on balance, good for Python and for people who know Python, but still pretty bad overall. And I'll also add that these vaccines, I mean, boy, oh boy, if they work, this is going to be like, I'm not as a biologist or anything, but I'm so amazingly impressed with all the science and the work
Starting point is 00:57:43 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 had a bubble where they isolated all the players for however long, right? So we just all go to somewhere and bubble up for a while. Then we can have our conference. I don't like to wait 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.
Starting point is 00:58:13 Coronado Island, we'll just get a section of it, okay? Yeah. But not mandatory quarantine for conferences. I just did two-week quarantine here to be able to enter Australia. Yeah, just do it in Australia. Just chill around in the hotel room for two weeks and you're free. Make PyCon in Australia.
Starting point is 00:58:28 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 in 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 his thunder, but one of the first conferences that I watched was,
Starting point is 00:58:51 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 conference. 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.
Starting point is 00:59:06 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. I've had that conversation so many times of the type of talks that I like to create are
Starting point is 00:59:32 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, on conference talks that literally had, like, they gave me the script and said, all right,
Starting point is 00:59:59 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,
Starting point is 01:00:26 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
Starting point is 01:01:02 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 your salary as a result.
Starting point is 01:01:27 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 $10 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 5th 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 for worse, and she's learning both C++ and Python right now. Her linear algebra class
Starting point is 01:02:12 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 and so one of the things that's nice about python is you don't have to worry about allocating memory and you know 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, 100,000 times performance
Starting point is 01:03:05 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 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 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 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 sounds like it's going to take off every time I start doing something, right? Like modern Intel chips can
Starting point is 01:04:12 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 chips that is sort of stagnated for the past couple of years, we 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 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
Starting point is 01:05:13 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.
Starting point is 01:05:50 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.
Starting point is 01:05:59 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, Ines talked about, like, her CI didn't support 3.9 right away.
Starting point is 01:06:18 Well, whose 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. Yeah, it's funny you mention that because actually, yeah, when this came out, we were also thinking like,
Starting point is 01:06:31 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. Did you guys get one? Yeah, because someone has to do it. Also, you know, not yet, no. Also, it's a bit difficult with the traveling,
Starting point is 01:06:43 but like, yeah, that's kind of, and we have other priorities too priorities too this is not i wouldn't put this like at the very top but like it's definitely something you want to do yeah 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 optimizing our tools and libraries for CPU. Like you can run it on your random laptop.
Starting point is 01:07:13 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 your models very efficiently on CPU if you can get it to work. 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.
Starting point is 01:07:39 You're holding up a circuit, an Adafruit thing just for the people who are not on the video. 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 computers dropped so much. I mean, what was it? The, what is the Raspberry Pi 400 where it's, it's just, it is the Raspberry Pi 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 some place where the cost
Starting point is 01:08:19 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 Ocken is right now, where VS-2103 is in the future. There's going to be a lot of great things coming. Yes, I'm looking at chat. I have my kids to have one of those one laptop per child in their bedroom over there, right?
Starting point is 01:08:55 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 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 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.
Starting point is 01:09:25 It just came a few days ago. But I'm looking at this game like, oh my God, this little card here that cost me less than $100, 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. 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.
Starting point is 01:09:50 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.
Starting point is 01:10:13 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 Ocken, this is Michael Kennedy. Thank you for listening and sharing this podcast with your friends and colleagues.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.