Learn Python with Talk Python's 270 hours of courses

#307: Python from 1994 to 2021, my how you've grown! Transcript

Recorded on Thursday, Mar 4, 2021.

00:00 Python has changed a lot since its inception 30 years ago.

00:03 On this episode, you'll meet Paul Everett and Barry Warsaw.

00:06 They've both been involved with Python since the very first Python conference,

00:10 called SpamOne even.

00:11 We discuss how it's changed, but also how so many of the ideas and pressures

00:16 from the very early days are still playing out in 2021.

00:19 I'm sure you'll enjoy all the stories and the reminiscing.

00:22 This is Talk Python to Me, episode 307, recorded March 4th, 2021.

00:28 Beautiful is better than ugly.

00:32 Explicit is better than implicit.

00:36 Simple is better than complex.

00:39 Complex is better than complicated.

00:45 Flat is better than nested.

00:48 Sparse is better than dense.

00:51 Readability counts.

00:57 The Zen of Python, as a song.

01:02 That's so smooth and cool, isn't it?

01:05 That song is by Barry Warsaw, one of the two guests on this episode.

01:09 We'll talk to him a bit about it during the introduction.

01:12 And if you want to catch the entire song, listen at the very end.

01:15 I'll put it there.

01:15 You can listen to it as part of this MP3.

01:17 And I'll also link to his lyric version he has on YouTube.

01:22 Welcome to Talk Python to Me, a weekly podcast on Python, the language, the libraries, the ecosystem, and the personalities.

01:27 This is your host, Michael Kennedy.

01:29 Follow me on Twitter where I'm @mkennedy.

01:31 And keep up with the show and listen to past episodes at talkpython.fm.

01:35 And follow the show on Twitter via at Talk Python.

01:39 This episode is sponsored by Square and Linode.

01:41 Please check out what they're offering during their segments.

01:44 It really helps support the show.

01:45 One quick announcement before we get to the interview.

01:48 We'll be giving away five tickets to attend PyCon US 2021.

01:52 This conference is one of the primary sources of funding for the PSF.

01:56 And it's going to be held May 14th to 15th online.

02:00 And because it's online this year, it's open to anyone around the world.

02:03 So we decided to run a contest to help people, especially those who have never been part of PyCon before, attend it this year.

02:10 Just visit talkpython.fm/PyCon 2021 and enter your email address.

02:15 And you'll be in the running for an individual PyCon ticket.

02:18 Compliments of Talk Python.

02:19 These normally sell for about $100 each.

02:22 And if you're certain you want to go, I encourage you to visit the PyCon website, get a ticket,

02:26 and that money will go to support the PSF and the Python community.

02:31 Congratulations to Zane Dax.

02:33 Zane won the first of one of these five tickets that we're giving away during this contest.

02:38 There are still more chances to win, so be sure to register.

02:41 If you want to be in this drawing, just visit talkpython.fm/PyCon 2021.

02:46 Enter your email address.

02:47 You'll be in the running to win a ticket.

02:50 Now, let's get on to that interview.

02:52 Barry and Paul, welcome to Talk Python to Me.

02:55 Thanks for having us.

02:56 Thanks for having us.

02:57 Yeah, it's super to have you both here.

02:59 Now, Paul, you've been on the show before, and we've talked about a few things.

03:02 Barry, I don't think I've had you on Talk Python, but we had both of you on Python Bytes at a live PyCon.

03:08 You guys remember that?

03:09 People got in a room.

03:10 Oh, yeah.

03:10 No one was, like, frightened when you would get somewhat near them.

03:13 They wouldn't run away.

03:14 It was great.

03:15 Good times.

03:16 Those were good times.

03:17 That was fun.

03:17 A lot of energy.

03:18 Back before you did live virtually.

03:21 Is that what you call this?

03:22 Yeah.

03:22 Vlive?

03:23 Something like that, yeah.

03:24 Yeah, that was really cool.

03:26 I mean, we had that at the PyCharm booth, actually.

03:27 We had, like, the whole broadcast thing going on there.

03:30 It was a lot of fun.

03:30 Yeah.

03:31 We'll do it again.

03:32 It really was.

03:33 We'll get back to this.

03:34 I mean, I don't know how you two feel about it, but to me, PyCon and similar events, that's like my geek holiday.

03:39 I get away and I get to learn stuff and make professional connections, but I also get to see all my friends from all around the world and just share stories and have a beer with them when I would just never otherwise see them.

03:47 Yeah, I was just talking about this recently, of course, missing PyCon in person, but I think what I learned, for me at least, the hack of PyCon, which was realizing that all the great talks were online.

04:00 And there was still a few that I would go to, but where all the real value for me at PyCon was, was talking to people, the hallway conversations, the energy and the synergy of ideas.

04:15 Oh, you're, you're looking into that.

04:17 I'm looking into this.

04:18 Look how that stuff goes together.

04:19 So that to me was really the value of PyCon in person.

04:23 Yeah, I totally agree.

04:25 That's why I would go as well.

04:26 My best part is walking down the hallway with Barry and watching thousands of people come up and say, oh my God, Barry, I love you so much.

04:34 No.

04:35 Just, I mean, every continent, Barry is loved.

04:40 Oh my gosh.

04:43 And I'm not, this is not my normal BS.

04:45 This is actually literally true.

04:46 Like real BS.

04:48 Yeah, that's fantastic.

04:50 You know, it's really funny because walking around with Guido and Guido is the rock star of the Python community in a lot of ways, of course.

04:58 And I always felt like I was playing my bass player role in Python too.

05:03 It was great, you know?

05:05 Yeah, yeah.

05:06 I'm just back here doing my thing.

05:07 That's perfect.

05:08 That's exactly right.

05:09 Yeah, a beautiful supporting role right there.

05:12 Yeah, exactly.

05:12 To bring the music on.

05:13 So, fantastic.

05:15 Well, we're going to get back to these conferences and these get-togethers.

05:18 I know we will.

05:19 And I'm even going to try to get the most out of the online events.

05:21 Like I register for PyCon and I'm looking forward to it.

05:24 I'm going to try to make the most of it.

05:25 Now, before we get into the main topic, maybe you guys can tell everyone a little bit about yourselves.

05:29 Barry, how did you get into programming in Python?

05:32 Oh, well, I got into Python in 1994.

05:36 I had just been hired at CNRI.

05:39 And we were starting at this project called the Nobot Programming Environment or something like that.

05:47 Okay.

05:47 What was that?

05:48 These were little software agents that were supposed to travel around the internet and get a little bit of information here, package themselves up, move over there, do some action over here.

05:59 And move around to a bunch of different nodes.

06:02 This was an important part of the CNRI's digital library initiative at the time.

06:07 And Roger Massey, who was my colleague at CNRI, we were using Next Step and Objective-C and sort of doing that.

06:16 And then I had worked at the National Institute of Standards and Technology earlier in my career.

06:22 And I still had friends there.

06:24 And one of the friends, of course, Paul knows, Ken Manheimer, who is the unsung hero for where Python is because he crops up in so many places.

06:33 Every Emacs RC file on the internet goes back to Ken.

06:37 Yeah, right.

06:38 Exactly.

06:39 I haven't talked to Ken in a long time, but I hope he's doing well because Ken's a great guy.

06:44 So Ken was still at CNRI and he forwarded to me an email saying, hey, this Dutch guy's coming over to talk about this language that he created.

06:55 He's bringing a crazy language with no semicolons.

06:58 Yeah, exactly.

06:59 So we kind of pulled down Python at the time and played with it and went, oh, this is pretty interesting.

07:05 So it was close to where we lived.

07:08 So we just cruised up to Gaithersburg, Maryland and spent three days at the first workshop, which, of course, Paul was at as well.

07:16 He can talk about his experience.

07:18 And we just like totally fell in love with Python, really resonated with Guido and what he was doing with the language.

07:25 And long story short, ended up hiring Guido and bringing him over to the States.

07:30 Oh, fantastic.

07:32 Worked with him at CNRI for eight years, I think.

07:35 Now, an important part of the story, Barry, is CNRI meant something.

07:39 Yeah.

07:39 It's kind of viewed itself.

07:41 I think it viewed itself as kind of the steward of the internet.

07:45 Well, of course, CNRI was run by Bob Kahn and Vince Cerf at the time and ran the IETF meetings, which, of course, are all the internet.

07:53 Yes.

07:54 Internet RFCs and things like that.

07:55 And it was a not-for-profit research shop.

07:59 So it really was kind of well-positioned to be Python's home for all those years because there wasn't any sort of commercial aspect to it.

08:08 It was all not-for-profit.

08:09 And it was really – Python was a really good piece of technology, I think.

08:14 And I think CNRI was a really good home for Python for many of those years.

08:18 Yeah.

08:18 It was a good breath of fresh air in terms of compared to C at the time or this fledgling Java thing that some company made up.

08:25 Yeah.

08:25 A comment I was going to make on that is, Barry and I give this talk, Python 1994.

08:30 We wear our shirts.

08:31 We didn't wear our shirts tonight.

08:32 No.

08:32 Although.

08:33 And each time I kind of learn, I see it, I learn a little bit more.

08:37 Oh, I love it.

08:38 Level of Python.

08:39 Yeah.

08:40 Sorry.

08:41 I kind of said some Python.

08:44 I'm sure you have every shirt.

08:45 Yeah.

08:45 But there's kind of this – it's a narrow run thing, the sequence of dominoes.

08:50 And the fact that you were at CNRI and then CNRI was a place to go, if it would have been some other place, who knows?

08:57 If you wouldn't have been at NIST before you landed at CNRI in the Michael McLeod connection at NIST, who knows?

09:04 So that's an interesting point.

09:05 As much as you try to plan your life out and guide it in directions, these little happenstance experiences are sometimes the biggest goals.

09:13 And, you know, it came out to California a few months before I joined CNRI.

09:19 And I interviewed with a company called Lucid.

09:22 I don't know how many people remember Lucid.

09:24 Oh, yeah.

09:25 They had this nice compiler suite, and they were using Emacs.

09:29 They had a fork of Emacs that they were using as their UI.

09:32 And that was a version of Emacs that I was using at the time.

09:35 So I came out here, interviewed, and ended up not moving out here, which was also another one of those fortuitous events in my life, certainly.

09:44 Because then just a couple months later, I ended up at CNRI, and then a few months after that, met Guido and just took off from there.

09:50 So you just never know.

09:52 Yeah, and that's such an interesting time.

09:54 You know, Paul talked about being like the shepherd of the internet, right?

09:57 1994, well, a year before, that's when the graphical web HTTP whole, that whole story came around.

10:03 And I remember seeing Mosaic the first time and just seeing what the web was.

10:08 And I was supposed to go to like a physics class or something, like an evening physics lecture.

10:11 And I'm just like, I'm skipping my class.

10:13 I cannot believe that this is a real thing.

10:16 I had been on Gopher and Archie and all of these things and telling it.

10:19 And I'm like, I'm seeing like entire new world.

10:22 It was so powerful to me to see that.

10:25 So like, that's like in the same time that all this is happening.

10:27 Yeah, it was a pretty magical time, I think.

10:30 Yeah, it was.

10:31 It absolutely was.

10:31 Let me just highlight a couple of things real quick before we move off your introduction.

10:35 You were interviewed as part of this really interesting story, Python is Eating the World,

10:39 How One Developer Side Project became the hottest programming language on the planet.

10:43 planet.

10:43 So that was a really cool article.

10:44 I remember that.

10:45 And then...

10:46 Hey, Barry, you look good in that photo, man.

10:47 Yeah.

10:48 Yeah.

10:48 His colleague does.

10:50 And then another thing that was really interesting was the Pep 8 song that Leon Sandoi recently

10:56 released came out.

10:57 And I was like, oh, what a cool, clever idea.

10:59 And then I realized today that you wrote and recorded The Zen of Python as a song.

11:05 Yeah.

11:06 Just nine months.

11:07 At least you published it to SoundCloud nine months ago.

11:09 That's a really cool song.

11:10 I'll share the link with people so they can check that out for sure.

11:13 Yeah.

11:13 And there is a...

11:14 I did a quote unquote lyric video where I had basically did an iMovie.

11:20 I took that soundtrack and I put the Zen of Python lyric...

11:23 You know...

11:23 Yeah.

11:24 I call them lyrics, but...

11:25 Which I think we have to give a lot of credit.

11:27 Other people call it import this or something like that.

11:29 I don't know.

11:30 Yeah.

11:30 Yeah.

11:30 Import this.

11:31 Which, of course, comes from Tim Peters, who even predates me in the Python land.

11:36 And Paul, too, I guess.

11:37 I think Tim was involved in Python almost from the beginning.

11:42 And he was, of course, our colleague as we were in Python labs and so on and so forth.

11:47 And Tim wrote The Zen of Python.

11:50 Yeah.

11:51 It's really neat.

11:51 I think that's an interesting set of principles there.

11:53 All right, Paul.

11:54 How about you?

11:55 This is the how I get into Python question?

11:57 Yeah.

11:57 Maybe programming.

11:58 I mean, you told the story a bit before, but how did you get into this whole programming

12:01 thing?

12:01 Cool program at school where we had a lab that had a bunch of stuff, the Commodore PETS, the

12:08 RS-80.

12:08 But the one that really stuck out to me was a deck teletype connected to a mainframe at

12:16 the university 200 miles away.

12:18 You probably didn't even have to log in to connect to it, right?

12:21 Exactly.

12:21 Yeah.

12:22 You start typing, man.

12:23 Exactly.

12:23 You just connect.

12:24 I got my own port.

12:25 We're good.

12:26 Yeah.

12:26 And so a modem.

12:28 And what freaked me out was this modem is connected to the mini computer or mainframe

12:33 or whatever.

12:34 But if you called this phone number, this phone from this phone five feet away, it was a long

12:41 distance call.

12:41 What's going on with that?

12:47 This portion of Talk Python to me is brought to you by Square.

12:50 Do you run or want to build a web application that sells products or services?

12:54 Building a successful online business is the stuff that dreams are made of.

12:58 But accepting payments and handling credit cards with all the various regulations is a common

13:02 stumbling block.

13:03 But not with Square's payment API.

13:05 With Square, your Python web app can easily take payments.

13:08 You'll seamlessly be able to accept debit and credit cards as well as Square gift cards.

13:13 Let your users pay with their digital wallets.

13:15 Square works with Apple Pay, Google Pay, and MasterPass all in one go.

13:19 Your API includes PCI compliance, end-to-end encryption, dispute management, and fraud detection.

13:25 Build your online payment form in three steps with Square payment SDKs.

13:29 Step one, create a new Square API application.

13:32 Step two, add Square's payment form to your checkout flow.

13:35 Step three, use Square's API to charge the card.

13:38 So get started building your business on Square.

13:40 Just visit talkpython.fm/square or click the link in your podcast player's show notes.

13:45 That's talkpython.fm/square.

13:50 And that used to matter.

13:51 That's also a thing that I kind of forgot, right?

13:53 It was expensive.

13:54 You're like, oh, there's this really sweet BBS that's got this information I want, but it's

13:58 in another state.

13:59 So we can only talk to it for so long.

14:01 And I hope you got 9,600 baud and not 300 baud or whatever you're going to get.

14:06 Crazy.

14:06 Briefly, my Python origin story is the Navy officer working in Pensacola for a great guy named Jim

14:12 Glenn.

14:13 93, we did www.navy.mil, a source of infinite funny stories.

14:20 Some of them true.

14:21 And there was a scripting, you know, it was pre-CGI, but the same idea.

14:26 You fork, standard out, standard in.

14:28 And some of the people were writing their web server stuff, dynamic stuff in C, not going

14:34 to do that.

14:34 Some were doing it in Bash, not going to do that.

14:37 So Pearl, I have this vivid memory.

14:40 This story is true.

14:42 Vivid memory of going to the bookstore, going to the computer shelf.

14:45 It wasn't a section.

14:46 Get in the Pearl book.

14:47 I can remember where I was staying.

14:49 I'm like, mm-hmm, mm-hmm, mm-hmm.

14:51 Oh, hell no.

14:52 Put it back on the shelf.

14:56 And there was this downloadable tutorial for this thing called Python.

15:00 And it was a scripting language.

15:01 It wouldn't reach for me.

15:02 And damn if that thing wasn't written for my brain.

15:05 It was like perfectly the entrance for me into this.

15:10 That's awesome.

15:11 Yeah, I think a lot of people, Python connects right away.

15:13 Yeah.

15:14 It depends on your history.

15:15 If you've been writing C languages for a long time, you have to sort of break the paradigm,

15:20 right?

15:20 But you'll get there.

15:22 It's funny that Paul talks about Pearl because I have the classic Pearl book.

15:27 And I was into Pearl and Tickle.

15:28 And I know...

15:29 This is the camel book?

15:30 You want to ask about this?

15:31 The camel book.

15:32 And it was totally dog-eared.

15:34 And the spine was destroyed.

15:36 Because I could never keep Pearl in my head.

15:39 And I think I have the first Python book.

15:42 And it's like pristine.

15:43 Nice.

15:44 Python just kind of fits in your head.

15:47 That's exactly true.

15:49 Yeah.

15:49 Yeah, exactly.

15:50 That's awesome.

15:51 All right.

15:51 Before we move off your introduction, Posh, I want to give a quick shout out to two things

15:54 that you and I did recently that was fun.

15:56 People might also like.

15:57 So you and I did when I got my Apple Mac Mini M1 back in December, you and I did a nice

16:03 walkthrough sort of exploration.

16:05 Like, well, can you...

16:06 How does Python work over here?

16:07 Can you run Jupyter Notebooks?

16:09 What's the ripple like?

16:10 And just we compared a bunch of stuff.

16:12 And that was a whole lot of fun.

16:13 So I'll link to that as well as we also did a...

16:17 Over at JetBrains, where you work, we did a cool webcast.

16:20 Let's build a fast modern Python API with FastAPI.

16:23 And we just built that out.

16:24 If I may say, Michael set the all-time JetBrains record for webinar attendance.

16:29 It lasted one month, but you held it for a month.

16:33 Hey, that's awesome.

16:34 I mean, so cool.

16:35 Thanks for having me over there.

16:36 But now I want to take you all on a journey.

16:38 I want to start you to take us on a journey.

16:40 Check this out.

16:41 Oh, you guys remember that?

16:44 Oh, yeah.

16:44 PSA.

16:46 All right.

16:48 So what we have on the screen here, folks, is I couldn't get any earlier than 1997,

16:52 but it's the 1997 python.org.

16:55 And it's got the original Python logo, which is like one of those light board type things.

17:00 And it talks about what Python is.

17:02 So Python is this interpreted, interactive, object-oriented, extensible programming language.

17:07 And it provides an extraordinary combination of clarity and versatility.

17:10 It is free.

17:11 It runs on Unix, PC, Macintosh, and others.

17:13 And it's really interesting that it describes itself as free and non-proprietary, right?

17:17 Like even it almost predates this kind of Zen of open source side.

17:22 It's just we built this thing.

17:24 He doesn't want it to be corporate.

17:25 I don't want it to be commercial.

17:26 How can we build it as a community?

17:28 But so it was really blazing that trail, right?

17:30 It's pretty funny.

17:31 I see the sixth international Python conference there and Grail.

17:35 That's a story.

17:37 That is a story.

17:38 That's an episode.

17:38 Oh, yeah.

17:40 The final version of Grail 0.3 is out.

17:43 Incredible.

17:44 What's Grail?

17:44 Grail was a completely Python-based web browser.

17:49 Okay.

17:50 That I think it was we used Tickle TK to render.

17:54 The interesting story there, at least the way I remember it, so it could all be lies.

17:59 Who knows?

17:59 Was kind of fit in with this notion of these software agents because we had this idea.

18:07 I think it was around the time of sort of Java in the browser, but I don't remember exactly

18:14 the timing.

18:15 General Magic was the ones that were really pushing the mobile code thing in agents.

18:20 Yeah.

18:20 So the idea was we wanted to be able to run Python in the browser, right?

18:25 And Bob had come, the way I remember it, at least, Bob had sort of had this idea about

18:31 the same time and came to Guido and myself and the team and said, wouldn't this be a great

18:36 thing if we had Python running in the browser?

18:38 And Guido was pretty much like, yeah, you want to see it?

18:40 You know, he had already done it, right?

18:42 So right about the time Java in the browser was happening, you know, Python in the browser

18:50 working.

18:50 So that's what Grail was.

18:51 Wow.

18:52 How interesting.

18:52 I think that even predates JavaScript.

18:54 Yeah, I think it does, actually.

18:56 I think that's 97 or something like that.

18:58 I can't remember exactly, but how interesting.

19:00 I can't tell you how much time I wasted trying to get tables working in Tickle TK inside of

19:05 that Grail thing.

19:06 A layout engine in Tickle TK.

19:09 Yeah.

19:10 Oh.

19:10 Oh my goodness.

19:11 It was brutal.

19:13 Yeah.

19:13 Yeah.

19:13 A couple of thoughts on what you guys are saying.

19:15 John Sheehan says, just fits in my brain.

19:17 It's probably the most quoted reason people like Python.

19:19 And Jessica is pretty impressed at the age of this page.

19:23 Yeah.

19:23 That's like, think about how easy it used to be to do web design.

19:26 You're like, okay, I can bold that section and we'll put a horizontal line.

19:30 Like, wow, you're a designer.

19:31 That's incredible.

19:31 It was so bad.

19:34 It was so bad that it was like this opportunity.

19:36 Really, really, really interesting.

19:38 So let's jump back there.

19:39 What other, we talked about some of these technologies, Perl and Tickle and so on.

19:44 And the reason you guys chose 1994 is this is when the first I'd done conference or workshop

19:50 happened, right?

19:50 You kind of partially mentioned that before, yeah?

19:53 Yeah.

19:53 I mean, that's certainly when I met Paul and Jim Fulton and a lot of, you know, Skip Montanaro

19:59 at the time, Stephen Majewski, right?

20:03 Yeah.

20:03 Robin Friedrich.

20:04 We can go through the names, yeah?

20:06 Robin Friedrich.

20:07 Yeah, yeah, yeah.

20:08 I think there was only 20 of us at that workshop.

20:10 Yeah.

20:11 That's what I was going to ask.

20:12 You know, I go to PyCon and it's selling out the Cleveland Convention Center and who knows

20:16 what it would have done in Pittsburgh if that ever happened.

20:18 But it's a really big gathering.

20:20 Like my voice is gone.

20:21 My legs are tired from walking.

20:23 And maybe it takes me multiple days to get through the expo floor, right?

20:27 Probably wasn't like that in the first one, right?

20:28 It was...

20:29 No, I mean, I joke about it when we heard we had room for 20 people.

20:33 We're like, wow, what were we going to do with all this room?

20:36 You know, in this closed windowless office building in Gaithersburg, Maryland.

20:43 Yeah.

20:43 Yeah.

20:44 We had people...

20:46 I won't mention any names, but there was at least one person who I can think of who said,

20:51 you can't even mention that I'm here, that we use Python because...

20:56 Oh, I know who that is.

20:57 Because it's a competitive advantage, right?

21:00 Like...

21:00 Interesting.

21:01 It was just like the fact that they were using Python was a secret.

21:04 So times have really changed quite a bit.

21:08 But it's kind of an important point that Barry and I try and talk about in the talk is, what

21:12 was it like?

21:13 Did you know...

21:15 Did we know then that it was a thing?

21:17 Are there things from later in Python that you can trace back to that origin story?

21:22 It's kind of an interesting thought exercise.

21:24 You don't want to romanticize the past.

21:26 But at the same time, I think, Barry, you and I have kind of a similar impression about

21:30 kind of how things went down there.

21:32 Yeah, I mean, again, it's all these little lucky changes, twists and turns in life and

21:37 technology and things like that.

21:39 But I think it's really clear.

21:41 And I did a talk in 2018 for BayPiggies, which is the Bay Area.

21:47 And I went back and I tried to download as many versions of Python.

21:51 I couldn't build a single one of them on any modern OS without changes.

21:56 Wow.

21:56 But I went through all the change logs and the what's new and things like that.

22:00 And you can really trace the history of the language all the way through.

22:05 You can see the thread from even before I...

22:09 You know, I think it was like version 0.91 is the first one you can pull down.

22:13 And you can really see how Guido's vision for the language that he wanted to put out there

22:20 is still alive today.

22:22 It's still really...

22:23 Even through Python 3, through the type hinting, any new feature you want to talk about, the

22:28 flavor, the sense of Python still.

22:31 Yeah.

22:31 It's a thrill.

22:32 It feels really continuous.

22:34 One of the similar thought paths I like to go down or analogies I like to draw is, well,

22:40 JavaScript came along and did some stuff.

22:42 And then they said, well, let's add things like type hints and async.

22:45 And let's make this TypeScript language.

22:47 In my experience going down that path was, oh, JavaScript is kind of easy.

22:51 Why is it so complicated now?

22:52 There's all these like dependencies and other libraries and libraries of libraries and left

22:57 padding things.

22:57 And then it got to TypeScript.

22:59 And I'm like, this is a really frustrating addition because 80% of the time it's like, wow, what a

23:04 cool addition.

23:05 Oh, wait, this thing I need to use doesn't have some right type definition.

23:09 So I can't...

23:09 How come it won't let me use this thing?

23:11 And somehow Python has managed to grow through the years with those types of additions without

23:16 going like, oh, why does it hate me now?

23:19 Like, why do I have to fight it so much?

23:20 You know, it just...

23:21 You can kind of...

23:22 Actually, I think more broadly, this is like a really powerful aspect of Python is that you

23:26 can use and understand and take as little or as much of it as makes sense for you.

23:31 Like, you can be super effective with a very partial understanding of Python, right?

23:35 I know how to import modules, call some cool functions.

23:37 I didn't have to write a method.

23:39 I just put these 10 lines in here and look what amazing thing I did, where so many languages

23:43 don't do that.

23:44 And I think that that's a really powerful aspect that it has these cool features, but they're

23:48 not in your face like a lot of languages.

23:50 Yeah, Paul may have additional thoughts, but I think you're onto something there because

23:54 I've always considered Python the type of language that really scales with whatever you're

24:00 trying to do, right?

24:01 If I'm just going to throw a...

24:02 You know, I just need a script.

24:03 I have this...

24:04 This is kind of a funny thing.

24:05 I was upgrading one of my machine, my Macs to Big Sur, and I lost all of my notes for...

24:12 Like, I use the Notes app religiously.

24:14 And...

24:15 Right.

24:16 And it should go through iCloud, but because it's Apple, sometimes it doesn't.

24:19 Yeah, sometimes it just doesn't work.

24:20 So I actually did a little bit of searching, found the SQLite database and played around with

24:27 the schema, try to figure things out.

24:28 And then I wrote a little Python script, 25, 30 lines to just like suck it out of the SQLite

24:35 database.

24:35 And I restored all my notes.

24:37 So even at that level, Python's awesome.

24:40 But then you can build huge applications in Python, especially with typing, type hinting.

24:46 It just scales.

24:48 Python just scales with whatever you want to do.

24:50 Yeah.

24:51 And there's a lot of languages that go to that far end, but you've got to start somewhere

24:55 in the middle, right?

24:56 You've got to understand nullable optional types.

25:00 And no, you can't set that to nil because it's just like all that kind of stuff, right?

25:04 Eventually you might want that, but you shouldn't have to have it all the time.

25:07 Yeah.

25:07 And I think that's the magic.

25:08 Yeah.

25:08 My comment on that is, I guess one of the last talks I gave was at PyConnor, which was a

25:13 wonderful conference.

25:14 And I was actually giving Python 1994 there as a keynote.

25:17 And right when I got to the part about spam too, when we first heard of Java, no kidding,

25:24 thunder.

25:24 It was like the most awesomely theatrical thing.

25:30 Perfect timing.

25:31 You are a dramatic speaker.

25:34 That was good.

25:34 Yeah.

25:36 So I've got this look on my face like, okay, you won't believe this.

25:39 But what they told me was at the meetups, like 70% of the people coming to the Python

25:46 meetups just came to Python less than a year ago.

25:49 And if you look at the Python developer survey, which you were talking about in the most recent

25:54 Python bites.

25:55 Yeah.

25:55 I was going to say there's some company, it's called JetBrains.

25:57 They did this survey.

25:58 And it's like 150% of the Python community arrived yesterday.

26:03 Yeah.

26:04 And let's face it, where are they coming from data science?

26:06 And let's face that, why are they coming to Python?

26:10 Because Michael, what you just said, jump right in, start coding.

26:13 You don't have to eat your vegetables.

26:14 Yeah, exactly.

26:15 I'm trying to find this for us here and find the exact.

26:18 But actually, I will try to tie it back to our alleged agenda.

26:22 We have an agenda.

26:23 We're going to get to it.

26:24 Who were we fighting in 1994?

26:26 Scripting languages.

26:28 It was Perl and Tickle and then, and then, and then Python.

26:32 And we were all lumped into this toy language scripting and the grownups would come back

26:37 later and reprogram it all in a serious language and stuff like that.

26:41 And wow, how did that turn out?

26:43 Yeah.

26:43 I think there's a lot of special stuff about this entry level that is, to me, it feels almost

26:49 like, like a stealth way to capture people's excitement and energy around programming.

26:53 It's like, ah, I'm not a programmer, but I've heard that there's some cool libraries for

26:57 working with whatever I do, biology, chemistry, whatever, economics.

27:01 And if I just import this and do these three lines, like I'll do something really amazing.

27:05 And probably that person's colleagues are like, wow, you were a wizard.

27:08 How did you do this?

27:09 Like, well, it was like these four lines, right?

27:10 And they just slowly make it a little better and a little better.

27:12 And they never think of themselves as programmers.

27:14 And then like two years later, they're building machine learning, put in production behind Flask or

27:19 FastAPI.

27:20 And they're like, how did I get here?

27:21 Like, I just never even knew I was going to be here.

27:23 Right.

27:23 And I think that's the magic is you just, you don't get ejected.

27:27 It's not like, well, I made it sort of this far.

27:28 Now it's time for a grownup language.

27:30 Go learn C++ and be real now.

27:32 Right.

27:32 Like that doesn't often happen.

27:33 Here's the part you're talking about, Paul.

27:34 That, again, the fact that like Python scales from throwaway scripts to huge applications,

27:41 it also really scales to the experience of the person using it.

27:46 So it appeals to non-programmers who are just trying to get their other stuff done.

27:50 Right.

27:51 And they need to do some programming.

27:53 But it also somehow also appeals to professional programmers who are building like production

27:58 quality software.

28:00 It just resonates with both those audiences.

28:03 Like what was M. Peters doing before Python?

28:06 Oh, yeah.

28:07 Writing compilers for Cray computers.

28:09 Right.

28:10 Right.

28:11 Right.

28:11 You got a problem harder than that?

28:12 No, I don't think so.

28:15 Well, one of the things I think is interesting is I was just reminiscing about talking to

28:19 Momotou Shemi four or five years ago about Python and the enterprise and how it was kind

28:23 of a really interesting story that big companies that were not just tech giants, but boring like

28:29 insurance companies and stuff.

28:30 And I use that in a positive sense right now.

28:32 They were also using Python in really interesting ways.

28:35 Like Bank of America has like a Python project with 5,000 Python developers and millions of

28:39 lines of code.

28:40 And like that kind of stuff is, I think, at least when I would talk to people, it felt like

28:43 that was noteworthy to have those conversations five years ago.

28:47 And now it's just like, well, yeah, we are.

28:48 Like who would not?

28:49 It'd be insane not to do this.

28:50 Most companies at least have like a data science wing or something that's all about Python.

28:54 Project that from 1994 forward.

28:56 Like how did that feel to see it that way now?

28:59 And what was the perspective back then?

29:01 Again, this is, I think, the magic secret sauce of Python.

29:04 Right back then it was CGI and web programming and things like that.

29:09 And Python was perfectly suited for that.

29:11 And now we're fast forward 30 years or about.

29:15 And the domains that are sort of the hot things that everybody needs to be able to do, Python

29:21 just is malleable.

29:22 It just adapts to that environment.

29:50 You can find all the details at talkpython.fm/Linode.

29:53 Linode has data centers around the world with the same simple and consistent pricing, regardless

29:58 of location.

29:59 Just choose the data center that's nearest to your users.

30:02 You'll also receive 24, 7, 365 human support with no tiers or handoffs, regardless of your

30:08 plan size.

30:09 You can choose shared and dedicated compute instances, or you can use your $100 in credit

30:14 on S3 compatible object storage, managed Kubernetes clusters, and more.

30:19 If it runs on Linux, it runs on Linode.

30:21 Visit talkpython.fm/Linode or click the link in your show notes.

30:26 Then click that create free account button to get started.

30:31 And a lot of surprising things are Python first now.

30:33 Like a lot of the ML stuff, which sounds computationally insanely heavy, is still Python first because

30:39 that's the way people want to talk to it.

30:40 Who cares how its guts get over to the GPUs or whatever?

30:43 Yeah.

30:44 I even saw that that little helicopter rover thing flying around Mars had a little bit of

30:48 Python involved in it.

30:49 As far as I can tell, though, the system that they're using, I went to the GitHub repository

30:53 and poked around.

30:54 People are like, Python's on Mars.

30:56 Python's on Mars.

30:57 I'm like, all right, well, let's see some details.

30:58 As far as I can tell, Python was used to train the models on there.

31:01 But I don't know that it's executed.

31:02 There's a bunch of C++ code, and I suspect that's what's actually executing the stuff that

31:06 was trained up.

31:07 But still pretty interesting that it was part of the story.

31:09 Yeah.

31:10 So the things that we talk about now, the GIL, async and await, type hints, web stuff, machine

31:16 learning, a lot of those things, maybe the GIL was really on the radar then.

31:21 But a lot of the stuff like type hints and ML and whatnot are fairly new, I suspect.

31:25 But what kind of things did you all talk about back in 94 and 95 and so on?

31:30 What was the important stuff that you had to work out then?

31:33 The things I remember from the first workshop were the Don Beaudry Metaclass hook.

31:39 That was going to be my answer.

31:41 Did I steal your thunder?

31:42 Sorry, Paul.

31:44 Go ahead.

31:45 No, hit it.

31:46 Just don't make a mess of it.

31:48 The funny thing was, I had just started getting into Python.

31:51 So a lot of that kind of went over my head.

31:54 I didn't really quite understand because I hadn't looked at the details of the implementation

31:58 of the object model and things like that at the time.

32:01 So I didn't really understand completely.

32:03 I sort of understood metaprogramming a little bit, but I didn't quite get what Don and Guido

32:09 were talking about at the time.

32:10 And I think Jim was involved, Jim Fulton as well, because he had...

32:14 I guess you guys were sort of thinking about Zope or whatever the precursor to Zope was,

32:19 and he was thinking about metaprogramming for that.

32:21 Yeah.

32:21 And it's weird.

32:22 I think it was because of Fortran for whatever reason, interfacing Fortran and Python.

32:27 I might have that wrong.

32:28 But Don Beaudry...

32:29 Okay.

32:29 So I'll wind it a little bit.

32:31 Yeah.

32:31 At that workshop, some of the things you were just saying, you can't...

32:35 Like Barry hinted at before, you can trace back to that workshop.

32:38 Yeah.

32:38 And some of the problems that needed to be solved there.

32:41 The things I worked on were none of those, but I observed the useful stuff.

32:45 And C extensions is everything that Barry was just talking about.

32:49 It happens to be the tip of the iceberg on why Python has this sudden resurgence because,

32:54 you know, NumPy is all under the water in C.

32:57 But back then, it was a mess.

33:00 And I'm using that as a joke because Don Beaudry's extension ideas and software were called mess.

33:06 Then Jim came back later with extension class that kind of formalized it.

33:10 This is kind of gives genesis to when you briefly in Python 2 used to import from object or subclass,

33:17 I'm sorry, subclass from object to kind of get new style objects and stuff like that.

33:20 That's a little remnant from, I think, a little bit from those days.

33:24 That was more like a Python 2 thing where the new, like we had classic classes,

33:32 which were the old style class hierarchy.

33:34 And then the new style classes.

33:36 They lived together, you know, until Python 3, obviously.

33:39 And you had to basically like inherit from object or set your meta class,

33:44 Dunder meta class attribute to do it.

33:46 But the point is back in those days, interfacing to the big pile of C code

33:50 was such a big deal because we were the kid little toy scripting language.

33:54 Right.

33:55 And it's just so interesting to me that we went through a phase of outgrowing that and

34:00 you had these enormous systems that are mostly the waters being carried in Python.

34:05 Now back to the chief value proposition is run that crap on the GPU and let the programmers

34:11 hang out in Python.

34:12 Right.

34:13 Right.

34:13 Or some distributed grid computing or I don't want to know where.

34:16 Just run it in a low level thing and I want to talk to it in this simple, clean API.

34:22 Yeah.

34:22 Yeah.

34:23 The irony, of course, I think is that in a lot of ways, C API is holding us back now.

34:29 Sure.

34:30 Yeah.

34:30 To be honest with you, you know, there you want to change the memory management model

34:34 to be more GC or do a JIT.

34:36 It's all easy except for those little pointers you passed off.

34:39 Who knows what happens now, right?

34:40 Exactly.

34:41 And the macros that are used to access tuples and so on and so forth.

34:46 References.

34:47 Those are all issues that are holding back.

34:50 I think.

34:51 I mean, sort of the way I think about it is there's nothing wrong with Python, the language

34:56 today that would prevent it from being the language of choice 30 years from now.

35:02 But we're also dealing with the CPython interpreter is a 30 year old VM.

35:07 And we've learned a thing or two about like how to write, you know, high performance VMs

35:12 in that time and getting the CPython implementation modernized to the point where we can do things

35:18 like potentially remove the GIL or adopt a GC or all those kinds of things that we want

35:24 to do.

35:24 We have to now deal with 30 years of backwards compatibility.

35:27 And that's a difficult problem to both a technical and a social problem to overcome.

35:33 Hell, we're older than Java.

35:34 Yeah.

35:35 Yeah.

35:36 Well, the other thing I think, Barry, that is makes that really significant is there's

35:41 the technical problem.

35:42 I think, honestly, you could say we're going to just change the way it works and the important

35:46 stuff is going to get upgraded.

35:48 The stuff that hasn't been touched for five years is just going to have to run on the

35:50 old thing and we could just move forward.

35:52 Right.

35:52 That would be fine.

35:53 But I look at the difference between Python 2 and Python 3 and they seem really small to

35:58 me.

35:58 Right.

35:58 A little bit with strings and bytes, a little bit on classes, a few things.

36:01 And that was it was existentially bad.

36:04 That disjoint eight year period where the core developers are working on one thing and so many

36:09 other people are like, well, we're not going to touch that thing.

36:11 We're just going to work on.

36:11 Right.

36:12 That was not a good deal.

36:13 And the types of changes that you all are talking about, while maybe awesome, they seem

36:18 more significant than that, at least.

36:19 And I suspect that people, at least for a while, are not willing to stomach another round of

36:24 that.

36:24 What do you think?

36:25 I actually, I think if there ever is a Python 4, and I kind of doubt there will be a Python

36:32 4, I think it's not going to be at the Python level.

36:34 To the extent that it's possible to, like, for example, remove the GIL and not require

36:39 Python level changes, which is still questionable.

36:41 But it's all going to be at the C API, at the FFI sort of level.

36:45 Right.

36:46 It's going to be the things that Python integrates with that are going to change significantly.

36:50 And I think that's, if I had my magic hat on with $10 million and, you know, I don't

36:55 know, a few tens of people to work on it, that's what I would do.

36:58 Yeah.

36:59 You could change the way it runs without changing the language whatsoever.

37:02 Right.

37:03 That would be totally fine.

37:04 Yeah.

37:04 And I don't think there's any magic.

37:06 Like, if I talk to people who have worked on JavaScript VMs or other VMs, like, we know

37:13 what to do.

37:14 There's no magical thing that we have to go figure out.

37:17 This has all been done over and over again.

37:19 Not that I could do it, but, you know, experts in building VMs could certainly do it.

37:23 But it's managing that, I think, the social side.

37:26 Like, what do you do about NumPy and all the C extensions that are out there?

37:30 That's a big ask.

37:31 Eric Snow's effort with subinterpreters has kind of generated a lot of what about us from

37:38 NumPy.

37:39 Oh, really?

37:39 Okay.

37:40 Yeah.

37:40 That's one of the attempts to not remove the gill, not a golectomy, but a, let's just

37:46 have mini gills and they can all coexist.

37:48 Right.

37:48 Right.

37:49 Yeah.

37:49 So just sort of on this historical, like, broad picture kind of journey we're on.

37:54 You mentioned, like, you mentioned JavaScript, JITs, and VMs.

37:58 Does this surprise you guys?

37:59 What has happened with JavaScript and its performance and stuff?

38:02 This thing that just ran in web browsers and now it's, they've gotten it to perform reasonably

38:07 well.

38:07 To me, I just never saw that little thing going where it's ended up either.

38:12 Yeah.

38:12 I don't know.

38:13 I, it doesn't really surprise me too much because I think, and Paul probably understands

38:20 this, you know, like languages are a lot like editors, right?

38:22 Like there's a religious part.

38:24 And not, maybe not religious, but there's a, there's an emotional.

38:27 Tribalism.

38:28 Yeah.

38:28 Tribalism with it.

38:29 That's a great, or emotional connection to it.

38:32 People love Python and they want to use it.

38:35 And that gets them into that world.

38:37 There's a lot of people whose first real experience with programming is sort of web technologies,

38:42 JavaScript, CSS, HTML, things like that.

38:45 Especially in the bootcamp side of things these days, they've all seemed to have really, really

38:50 glommed onto that.

38:52 Almost, I think, to a detriment for folks, but I think they've generated too many just front

38:56 end developers and not like broad skilled folks.

38:58 But anyway, that's a side story.

38:59 Yeah.

39:00 So people, that's young people come in and they learn JavaScript and they enjoy it and

39:05 they can get, see the results immediately in their browser and do really cool things.

39:09 And so I think it's a natural progression to want to be able to take that environment or

39:13 that experience and move it into other domains.

39:16 And some, you know, JavaScript seems to be pretty malleable about that.

39:20 So what about having one of the value propositions in the JavaScript world is it's JavaScript all the

39:27 way down.

39:27 Could it be Python all the way down, right?

39:29 Like in the reverse direction, sort of.

39:31 What do you guys think of the opportunity of WebAssembly and that to sort of like expand

39:36 the places that Python is happy?

39:37 Yeah.

39:38 Paul, you want to?

39:38 Sure.

39:39 And I know you did a podcast with Brett about this at the last PyCon.

39:44 Yeah.

39:45 And we did a live one.

39:46 Yeah, exactly.

39:47 We talked about the opportunity of Rust and WebAssembly for that.

39:50 Yeah.

39:50 I mean, they kind of go together a little.

39:52 So in theory, that should be like Python's big chance to kind of, because Python, and this

39:57 is my little passion project working on the weekends about Python and the modern web and

40:03 Python's web story.

40:04 And there's a lot of hope misplaced, in my opinion, on WASM as a silver bullet for Python.

40:11 Heavy lift to kind of get there and the destination probably won't be what you think.

40:16 But at the same time, it has opportunities that I don't think we quite understand and

40:22 appreciate from a platform that we could benefit, even on the server side, even on the mobile

40:27 side, to be not just producers of WASM, but consumers of WASM.

40:31 Yeah.

40:32 And there's a really cool Python library that will let you interop with any WASM language.

40:38 Yes.

40:39 I forgot what it's called, but it's not in the browser.

40:40 It's just locally.

40:42 Sure.

40:42 Right.

40:43 Yep.

40:43 I'm going to get some WASM library that could be written in C, it could be written in Java,

40:46 whatever compiles down to that Rust.

40:49 And then I'm going to use that in Python.

40:50 I'm glad you're bringing up, and it's nice to tie it in a way to 1994, because I do care

40:57 a lot about Python and the web.

40:58 And I worry, and I give talks about Python and the modern web.

41:02 But it's interesting, a name we didn't mention.

41:05 Kind of along your lines of JavaScript kind of eating the world, and maybe Michael Kennedy's

41:11 talk JavaScript to me coming to a theater near you sometime soon.

41:14 And the one that came out of nowhere and ate the world in the first third of Python was PHP.

41:23 Oh, yeah.

41:24 And it should have run off.

41:26 It should have hit its ceiling.

41:28 And maybe a little bit like x86, maybe a little bit like JavaScript, maybe like a whole bunch

41:35 of other things that should have jumped the shark.

41:37 There were plenty of sharks left to jump.

41:39 And PHP got bigger and bigger and bigger and bigger and was being used for things that never

41:45 should have been used for because of the law of large numbers.

41:47 And we just got to be worried about the law of large numbers with JavaScript as well.

41:52 Yeah, for sure.

41:53 John Sheehan says, transcript.

41:55 Transcript.

41:56 Yes.

41:57 I have, for my little secret project, actually originated with generating some transcript from

42:03 Python side components.

42:05 Yeah.

42:05 A world that I would love to see is, like, the reason that JavaScript is so popular is it's

42:11 a non-avoidable requirement because it's the thing that all the browsers ship with that have

42:15 a runtime.

42:16 With WebAssembly, it's totally simple to compile CPython over there.

42:20 There's things that don't work and there's maybe some edges you got to fix.

42:23 Probably also for the JVM, probably also for the .NET runtime.

42:26 Like, all these runtimes, they could be put into this form if the browsers would ship language

42:31 runtimes.

42:32 If they would just go, our browser includes CPython, includes .NET, includes Java.

42:37 Oh, it also includes JavaScript.

42:38 Like, that would just change the game.

42:40 But because every alternative is like, well, you need a 20 meg download.

42:44 Well, that's a different, like, oh, well, that's not going to work, right?

42:46 The browser people could decide.

42:48 There's only two of them left in the world.

42:50 Maybe three if you count Safari.

42:51 But, like, really, it's Chrome and then Firefox and a little Safari.

42:55 It wouldn't be that hard to say, let's try to make some of these other languages available

42:59 as runtimes through WebAssembly.

43:01 We already do WebAssembly.

43:02 Just ship the binary and we'll be good to go.

43:04 I would love to see that, but I'm not seeing any movement.

43:07 Yeah, Barry has a story about JavaScript and Python.

43:11 It's funny you mentioned that because I was going to say that, but I have since learned

43:14 that it's not actually true.

43:16 Okay.

43:16 So I'm going to skip that one.

43:19 I was watching Brendan Eich's podcast and I was waiting for him to say it and he didn't.

43:23 So...

43:24 Yeah, I have a colleague at LinkedIn who kind of hooked me, not directly up with Brendan,

43:29 but I was like, I was like...

43:30 Sure.

43:31 Am I misremembering this story?

43:33 And yeah, it's kind of true.

43:34 I was misremembering the story, so...

43:36 I like your story, though.

43:37 It's a great story.

43:38 It was a great story.

43:40 It just wasn't true.

43:41 Yeah.

43:43 RJL out there says that'd be a great idea, Michael.

43:45 What's stopping Google and Firefox from doing that?

43:47 Market forces.

43:48 Well, I mean, to be fair, Microsoft has created this thing called Blazor that put the .NET

43:52 runtime in there.

43:53 You just got to download it, right?

43:54 So I would not actually be surprised to see that ship with Edge at some point.

43:57 But that idea across...

43:59 At least let...

44:00 I think JavaScript's fine, but let's let it compete on fair playing ground, right?

44:03 Like where the other languages could possibly even be an option.

44:07 So that would be fantastic for everyone, I think.

44:09 And with WebAssembly, there's some interop, so who knows?

44:11 Looking forward, are you guys just astonished that that group of 20 people, 1994, worked

44:18 on this project?

44:18 And then you get articles like that tech one that I had about Python is eating the world

44:23 of software sort of thing.

44:25 These are really big gaps.

44:27 Did you guys ever imagine that you were onto a flame that would burn so bright?

44:32 Yeah, it's...

44:33 This is...

44:34 You and I talk about this kind of in the closing a little bit, and it's related to the why.

44:39 How did Python get to where it got to?

44:42 What were the ingredients?

44:44 Could you trace it back to then?

44:46 And when we gave the talk the first time at the keynote panel at PyCon, Jim Fulton actually

44:51 brought this up, that people talk about the Python community being so kind and human, and

44:57 it's because Guido's kind and human.

44:59 And so kind of put into the DNA back to 1994 was a person and a group of people around who

45:07 valued those kinds of things.

45:09 At a time when other language communities had a bad reputation for those kinds of things.

45:15 Barry, you want to expand on that?

45:16 I think it was Brett Cannon who coined the term, I came for the language and stayed for

45:22 the community.

45:23 And that is so true.

45:25 I mean, my closest friends, and in many ways, I mean, Guido actually lives not far from me

45:30 now.

45:31 And I love just kind of getting together with him.

45:34 A lot of times we don't even talk about Python.

45:36 I mean, I have some of my really valued friends I've met through Python.

45:41 So I think it does come down to Guido's leadership as far as personality and the kind of community

45:48 that he helped foster.

45:50 It feels very inclusive and very positive and empowering to people.

45:55 And I just really think that the community has done as much as the language to sort of build

46:01 Python to where it is today.

46:03 Mike, I'll try and get back to your question a little bit with a little bit of an anecdote.

46:06 All right.

46:07 My role in the play was never technical, but I made coffee for the smart people.

46:15 And I would do some of the organization stuff like the PSA and PSF with Greg Stein.

46:21 And then I went away for a while and lived in Europe, didn't go to PyCon, came back.

46:26 And damn, if Capital One didn't have a booth at PyCon.

46:30 Yeah.

46:30 That blew me away back when we had Spam 1, Spam 2, Spam 3, this NIST workshop to think

46:38 that would be an outcome.

46:39 And that these like really serious major players felt like, wow, we got to go do this.

46:45 It's just astonishing to me.

46:47 Yeah.

46:47 For me as well.

46:49 And I'm thinking back to the job fair that was in the 2020 PyCon, you know, walking around

46:54 there.

46:54 You just, so many people are like, you know, we're hiring, we're building these Python teams

46:59 to build our software.

47:00 And some were, you know, the usual suspects, but many of them were not.

47:04 Many of them were like you said, like Capital One type of places.

47:06 You're like, you guys are doing this?

47:08 And that's...

47:09 Deloitte.

47:09 I mean, really?

47:10 Wow.

47:10 Yeah.

47:11 Yeah.

47:11 Yeah.

47:11 Super interesting.

47:12 And I feel like the sentiment has shifted a little bit.

47:15 It used to be like all these corporate entities are going to come in and like muck up our culture

47:18 and like break.

47:20 They're going to be somewhat corrupting influences.

47:22 And I feel like I don't really see that that's happened so much.

47:24 So I'm happy for that.

47:26 I feel like if anything, it's been a supporting type of thing to have this much opportunity in

47:31 this ecosystem.

47:32 And something I'll add to that is as much as we cherish Python to language, a perhaps

47:38 not equal achievement, but an important achievement is the PSF.

47:42 And it's underappreciated because Barry and I were responsible for the failed predecessor,

47:47 Python software activity.

47:51 These things require a number of ingredients and they require heroes.

47:54 And in the middle third of Python, PSF and PyCon emerged.

47:59 And these are important achievements.

48:03 Yeah.

48:03 Many people are probably aware, but I suspect many are not who are listening.

48:07 How important PyCon is for funding the PSF in general, right?

48:11 That's the vast majority of their income is through that.

48:14 And honestly, it was a big scare on what's going to happen when COVID hit.

48:18 They waited to the very last minute to cancel PyCon when the writing was clearly on the wall

48:23 that people cannot go there.

48:24 But it's like, well, we got to just figure out all the finances.

48:27 It was a big deal, right?

48:29 Yeah, huge.

48:30 And let me echo, Paul, because the PSF and the folks, Eva and E and all the people who are

48:36 involved in the PSF, I can't even go through all the names.

48:39 They do such great work and important work for the Python ecosystem and the Python community.

48:46 And kudos to every single one of them because they're just fantastic people and it's a great

48:51 organization.

48:52 And the PSF is not only supports what Python is today, but it really looks ahead.

48:58 So like on the steering council, we work very closely with the PSF to try to understand,

49:03 you know, how can we utilize the PSF to help fund important work, for example, that Python,

49:10 the language or CPython, the implementation really needs.

49:13 So that's a great partnership.

49:15 I think that's kind of built up over the years.

49:18 And there was just a big announcement that Google became the first visionary sponsor of

49:23 the PSF, which is like $390,000 a year or something like that, and hiring a core developer in residence.

49:29 So yeah, that's another sign of big support coming along.

49:34 Maybe to close out this topic, if anybody out there has concerns about the PSF or like really deep-seated

49:41 problems with it, and you see me and Barry sometime, get us to tell you about the Python software activity.

49:47 You'll feel a lot better about the PSF.

49:50 Yeah, that's good.

49:51 So on our little screen share here, I put up the new Python, the latest python.org compared to the 1997 one.

49:58 It just occurred to me one thing that I went years without knowing is there's this little prompt looking icon right on the homepage.

50:04 If you click that, it's not working anymore.

50:08 Oh my goodness.

50:09 Live demos, man.

50:10 Yeah, I guess it doesn't work right now.

50:12 Maybe the Python Anywhere folks should have a look at this.

50:14 Probably will work by then.

50:16 I'll get on the Slack channel.

50:17 Yeah, I'll let it know.

50:19 But I was really surprised.

50:20 You can go there and click and just open up the Python REPL, I think running in Python Anywhere, generally.

50:24 So yeah, very interesting.

50:27 It's a cool service they've done for the community for that.

50:29 Yeah, it's very easy to just kind of get started.

50:32 Because tracing that sort of very partial understanding of Python, what comes with that is also a partial understanding of Linux,

50:38 a partial understanding of servers, partial understanding of SSH, partial...

50:42 Like all these tools that you become so familiar with to weave this stuff together.

50:46 In the beginning, these are major roadblocks.

50:49 You're like, how am I going to do this thing?

50:51 Like there's these steps I need to learn.

50:53 And services like that that make it real easy and welcoming are pretty awesome.

50:56 So let's round out our conversation with two quick thoughts.

51:01 One from both you guys.

51:03 You're probably seeing some really big opportunities that the Python ecosystem can take advantage of and grow around.

51:09 And there's probably also some dangers or some threats that we should maybe be aware of.

51:14 You know, Russell Keith McGee gave a really interesting talk about Black Swan events and Python and so on and stuff like that.

51:20 So what do you think?

51:21 Opportunities?

51:21 Things we should be worried about or pay attention to?

51:24 There's one that popped in my head.

51:25 It may have been because you mentioned Russell's wonderful Black Swan talk, which was kind of followed in my mind by Lucas Longa's Pylondinium talk, which covered some of the same territory.

51:37 But what I'll talk about instead is the threat that wasn't.

51:41 Or I'll talk about a couple of threats that weren't, if that's okay.

51:45 Is that cheating, Michael?

51:46 Yeah, yeah.

51:47 No, that's not fine.

51:48 I think that's an awesome history lesson.

51:49 Tell us.

51:50 I remember going to see Guido when he was still with Google.

51:53 God, Barry, how long ago would that have been?

51:56 10, 10 years?

51:57 At least, yeah.

51:58 And even at that time, I was like, it kind of struck me going over to go see him in downtown San Francisco that he was in the process of handing over the reins.

52:09 How many successful projects, especially open source projects, don't outlive the founder?

52:16 Yeah, true.

52:18 And he's done wonderfully at that over the years.

52:21 And in fact, his participation now appears to be because I want to, not because I have to.

52:27 Yeah.

52:28 Like, I'm retired.

52:29 I'll wait.

52:29 No, I'm just going to play around this.

52:30 Indeed.

52:31 So that was a threat that wasn't.

52:33 And then another threat that wasn't.

52:35 Yeah, the whole formation of the steering council and what was going to happen when he retired and his, you guys got to figure it out.

52:40 This is not on me.

52:41 Indeed.

52:41 Indeed.

52:42 Not just figure out who it will be.

52:44 Figure out actually what system of governance.

52:46 You're the ones who got to live in what you come up with.

52:49 How?

52:49 Yeah, right.

52:50 Which is a wonderful act of humility on his part.

52:52 He didn't view himself as essential to answering that question.

52:56 And I think he really trusted the community to come up with the right answers.

53:00 It was a really interesting time.

53:01 And I do think that the community came together.

53:04 And, you know, we, there was lots of discussion about how to do it.

53:08 And it really, really worked out.

53:10 And I think that set Python up for this kind of longevity and continued success and continued relevance in technology.

53:19 So then I'll do my other non-threat and then finally give you an answer on a threat.

53:24 Another non-threat that didn't happen was peak.

53:29 And right at the time when the peak should have happened, maybe the first peak should have happened.

53:33 I'll, and Barry, please.

53:35 In fact, I would love Michael to do a show on the actual story behind the story on this.

53:40 Jessica McKellar.

53:41 In the middle third of Python, the PSF and PyCon as an engine of revenue.

53:48 And then as an engine of gender diversity and bringing in a big, new, important, viable, lot of vitality audience into Python.

54:00 Then on the way to data science doing the same thing.

54:02 So at a time when it should have perhaps been cresting, it did a double dip inflection point.

54:08 Do you want to comment on that, Barry, before I go to an actual threat?

54:11 No, but I think that's one of the wonderful things about the Python community.

54:14 And it's not just sort of, I mean, it's not just on a gender.

54:18 Like it's also getting young people involved.

54:21 I think that's been a fantastic is to go to PyCon and see kid, like secondary school kids and how it's being taught in, in colleges.

54:31 And I've always.

54:32 Your son and my son went to the young coders on a long time ago.

54:38 I have to tell you, I'm super proud because my son is actually, he's using Python at work these days.

54:43 So it's like, yes, it's awesome.

54:45 That's fantastic.

54:46 He's going to be out earning you pretty soon, Barry.

54:48 Yeah, hopefully.

54:49 One could hope as a parent, right?

54:52 Exactly.

54:53 So my actual threat will go back to Russell and Lukash.

54:58 And man, I worry about Python and the web.

55:02 I worry that what we've said is we seeded the user interface to JavaScript frameworks in the browser.

55:08 And we're perfectly happy just shoving REST and JSON to them.

55:13 And they might just decide like, why are we doing this other stuff?

55:16 We're almost all the way there.

55:17 Like, let's just, come on, let's just go express node.

55:19 We're done.

55:20 If you're a business decision maker and you're like, okay, I've got two teams.

55:24 Why don't I got two teams?

55:25 And the one I value is the one that puts the pixels that are sexy.

55:29 Right, right.

55:30 They show me the shiny buttons and bits.

55:32 Yeah.

55:32 And then as this modern web stuff kicks in and website performance really, really, really

55:38 becomes a thing and people pre-render on the server.

55:40 So your React components have to be pre-rendered on the server, which means you have to run

55:44 React on the server and you can't run React in Python.

55:48 So that's one I spend a lot of time thinking about.

55:51 Interesting.

55:52 Right.

55:52 The pressure to make it not load with empty curly braces and then pop in all of a sudden.

55:57 Yeah.

55:57 Interesting.

55:57 Yeah.

55:58 That's a concern.

55:59 Yeah.

55:59 I think the other thing that I'll add is Python on mobile.

56:02 Right.

56:03 Like everybody's got a phone in their pocket and Python doesn't have a super great story

56:08 there.

56:09 Things like we have MicroPython, which has its place as smart homes, as IoT, and all those

56:15 things become more and more important in our lives.

56:18 I think Python needs to have a better story for mobile as well.

56:22 So those are two big challenges.

56:24 Yeah.

56:25 If you're going to ask me to make that, I guess I would have said mobile as well.

56:28 I think the saving grace there maybe is that mobile is so messed up also.

56:33 It's so tricky.

56:35 You've got these different languages, but they have these weird constraints.

56:37 And then you've got to go through the app store gatekeeper people.

56:40 And that's real.

56:41 It's less of a straight.

56:42 It's a more narrow ecosystem.

56:44 Exactly.

56:44 But it's also one of the most important ones.

56:47 Right.

56:47 I mean, it's where the really, really interesting stuff is these days.

56:50 A couple of comments from the live stream.

56:52 Robert Robinson says, I'd love to have learned Python in the mid-90s when I started learning

56:56 programming.

56:57 My life would be totally different now.

56:58 And John Sheehan says the item project looks really interesting.

57:01 Yeah.

57:02 Indeed.

57:02 All right.

57:03 Well, those are the downer sides of things.

57:06 Paul, one thing I would like to say about the web.

57:08 I do feel like there's a really interesting resurgence in the Python web frameworks.

57:13 Now that the Python 3 that have sort of crossed over and they're like, let's just take advantage

57:17 of all the modern Python goodies.

57:19 Things like FastAPI, Starlit, as well as some other ones like Django Ninja and whatnot are coming

57:25 along to do interesting things that make it feel really refreshing to do Python web stuff.

57:29 And I still think there's interesting things that are happening there that are compelling.

57:33 Like I was talking to somebody, I can't remember the context, but they had a Django

57:37 system and some of the Django views were regular Python, but they actually did some of them

57:41 in Cython because they had like really high performance requirements.

57:44 And like the views were computed in Cython, which is, I mean, these are really interesting

57:49 use cases that are out there.

57:51 All right.

57:51 Really quick.

57:52 We're running low on time.

57:53 Opportunities.

57:53 What do you guys see as the big opportunity?

57:55 That's a great question because I think it also comes into sort of predicting where technology

58:00 is going in the next few years.

58:02 And I don't really know that I can do that.

58:05 I mean, I've been surprised over and over and over again in my career.

58:09 So again, I really think it comes down to the appeal of Python, the language.

58:15 And really, one of the things I think Guido did back in the Jython days when Jpython was

58:21 the thing and that became Jython, was he recognized the need to sort of separate the language evolution

58:28 from the implementation.

58:31 Now, the reality is, you know, we've had multiple implementations of Python over the

58:35 years.

58:35 And, you know, essentially, you see Python is still the most popular version, but it doesn't

58:40 have to be that way.

58:42 And I think as big companies have more and more Python in their ecosystem of technology, I think it becomes more imperative for them to kind of step up and help fund those kind of...

58:57 Like, I really think if we could just hit some of those big people, big companies that we talked

59:01 about, get a million dollars from each of them, and you could do some really incredible stuff with

59:05 Python.

59:06 And they would benefit way more than that million dollars.

59:09 Totally.

59:10 Right?

59:11 Yeah.

59:12 Especially in Wall Street.

59:13 If you could make their trades one millisecond quicker.

59:16 Yep.

59:16 Boom.

59:16 Like, that's just like printing money right there.

59:18 Or even more important, what can't they do?

59:21 Hire people fast enough.

59:22 So make your current people more productive.

59:24 Exactly.

59:25 And there's no reason why it can't be done.

59:27 Like I said, we have the organization because the PSF is solid and knows how to do this, knows how to manage these projects, right?

59:34 Is a non-for-profit, so there's no favoritism going on there.

59:38 We have the technologists who can make this happen.

59:42 The track record to show that they can do it?

59:44 Exactly.

59:45 So I think, to me, that is the biggest opportunity.

59:48 And if I saw that come together, and those are some of the things that PSF and the steering council are trying to put together.

59:55 So that is so exciting because it could be an amazing 25 years, but more Python.

01:00:01 Yeah, absolutely.

01:00:02 So I'll throw one out there for you all.

01:00:04 For a while, there was this language called Java.

01:00:06 You guys talked about it.

01:00:08 And that seemed to be the language of the first year computer science program.

01:00:13 When I did computer science, I took a couple of classes.

01:00:15 My degree is in math, but I took a couple of computer science classes, and that was Scheme and Lisp, which I don't feel was the best option necessarily, but that's what I did.

01:00:22 But for a long time, it was Java.

01:00:24 I think the big opportunity is so many people are learning Python from the very beginning that now it's in this place of, well, why not Python instead of why Python, right?

01:00:34 If you're already working, you're already comfortable, you've already done projects in it.

01:00:38 You've had success.

01:00:38 Like, well, yeah, I could use other languages, but why not?

01:00:41 One thing that I think is really interesting about this Stack Overflow trends I have up on our screen shares, do you notice how there's two humps every year for Java?

01:00:49 And a lot of the other ones, they don't have those humps, but Java has two humps a year.

01:00:52 Those are fall semester and spring semester.

01:00:54 How interesting.

01:00:57 Interesting.

01:00:57 Yeah.

01:00:58 Those humps are going away at the end a little bit.

01:01:00 So they're kind of coming into the Python world.

01:01:04 So I think it's really interesting.

01:01:06 I think that's the opportunity is for the communities.

01:01:08 There's many fresh and excited young people coming in.

01:01:11 Much like your survey showed that professional coding experience, the most common option was less than a year for Python developers, right?

01:01:18 There's a lot of fresh, exciting people coming in.

01:01:21 And I think that's all good.

01:01:22 I'll give an opportunity that's similar to that, which is also non-technical, which is people oriented, which is in the most recent Python bytes.

01:01:32 Brian used a clever expression about the long tails getting fatter or something like that.

01:01:37 I can't remember what the context was about.

01:01:39 The PSF diversity and inclusion working group.

01:01:41 Expanding the footprint of Python in next level markets and populations and groupings of people with passions and interests.

01:01:52 Yeah.

01:01:52 These are all really super important things because Paul and I have been involved in Python for a long time, right?

01:01:58 Like as Guido retired, you know, someday, hopefully, you know, right?

01:02:03 And I think it's really important.

01:02:05 Like I feel the responsibility more and more to help mentor younger people who are coming into technology in general, but also into the Python community and really nurture that engagement because that's the energy that's going to propel Python forward.

01:02:22 So...

01:02:23 Hey, Michael, I got to give you a pat on the back.

01:02:24 You've become a place to give a voice to the next generation of stars.

01:02:30 So kudos to you for that.

01:02:31 Oh, thanks, Paul.

01:02:32 Yeah, thank you so much.

01:02:33 That's really nice.

01:02:34 Yeah, absolutely.

01:02:34 I think one of the things that I've tried to do is to try to find people that have really interesting stories of like how Python has like massively empowered them, even if they haven't built the most popular open source project or they don't work at the biggest company.

01:02:47 Sometimes that story of nothing to something really powerful, even though not too many people know about it, is really quite amazing.

01:02:54 I try to tell that.

01:02:55 Speaking of the education side, RJL says, at our science center, we teach Python to STEM students grades five to eight.

01:03:00 It's been very successful.

01:03:02 You're the hero.

01:03:02 Yeah, man.

01:03:03 Awesome.

01:03:04 Wow.

01:03:04 All right, guys, for the sake of time, I'm going to cut our final two questions down to one question each.

01:03:09 Barry, I'm going to give it to you first because you're a bit of an unknown.

01:03:11 Paul, I'll see if I can guess his answer.

01:03:14 If you're going to write some Python code, what editor do you use?

01:03:16 Emacs.

01:03:17 Emacs, right on.

01:03:18 Sorry, Paul.

01:03:20 I expect nothing less, Barry.

01:03:22 All right, Paul.

01:03:24 Paul, what are you feeling?

01:03:24 What are you doing these days?

01:03:25 I have a PyCharm open right now.

01:03:29 Awesome.

01:03:30 Fantastic.

01:03:31 Yeah.

01:03:31 I don't have it open now, but I'm loving that you guys built it for the M1.

01:03:35 It's so nice to work with these days.

01:03:36 Yeah, very good.

01:03:37 It's a great tool.

01:03:38 I think it's really good for helping people get into it, but also like it's scales as well.

01:03:43 It's great experience-wise.

01:03:44 Well, to speak for other products as well, we're seeing the rise of smart editors and smart tool

01:03:51 chains for Python.

01:03:52 I think that's fantastic for everybody and all of us.

01:03:55 Yeah.

01:03:56 It's really cool.

01:03:57 I mean, I acknowledge my minority status as an Emacs user, even in like the text space.

01:04:02 Like there's many more Vim users, but I can see my colleagues at work, what they use.

01:04:09 And it's really fantastic to see like all the amazing support that these modern editors

01:04:14 have for Python.

01:04:16 Yeah, I agree.

01:04:17 And they take some of these ideas like type hints and stuff and like amplify their value.

01:04:21 Yeah.

01:04:21 And integration with static checkers and linters and mypy type checkers and all that kind of

01:04:28 stuff is like, those are really important tools for the modern Python developer.

01:04:32 And it's great to see all that stuff really well integrated.

01:04:34 Yeah.

01:04:35 Fantastic.

01:04:36 Well, thank you both for being on the show.

01:04:38 You want to give a final thought, a final comment to the people out there thinking on this historical

01:04:43 sort of arc that we've been covering?

01:04:44 What do you want to say?

01:04:46 You want to go first, Barry?

01:04:47 Sure.

01:04:47 I'll say this.

01:04:49 Python is where it is today because of the people who have gotten involved over the years,

01:04:55 right?

01:04:55 And I talked to some folks who are like, I don't know C, so I can't be involved in Python

01:05:01 development.

01:05:01 No, that's not true.

01:05:02 In fact, you don't even need to be a programmer necessarily to be involved in Python development.

01:05:08 Everybody is welcome and everybody's valued.

01:05:10 So if you like Python, get involved.

01:05:13 That might be with the PSF.

01:05:15 It might be with the language design.

01:05:17 Whatever it is, education.

01:05:19 Maybe even your favorite open source project that's not strictly under CPython.

01:05:23 Exactly.

01:05:24 Exactly.

01:05:24 Exactly.

01:05:24 All these things are available to anybody.

01:05:28 There's no cost other than an internet connection and a browser or an editor or something like

01:05:33 that.

01:05:33 Everybody can get involved.

01:05:36 And I really encourage, I encourage everyone to sort of change the mindset of these are the

01:05:42 barriers.

01:05:42 So therefore, I can't get involved to these are the opportunities that I can shine and grow

01:05:49 and learn.

01:05:50 And so I think it's the people.

01:05:52 It always comes down to the folks.

01:05:54 Yeah.

01:05:54 Yeah.

01:05:54 That's a great sentiment.

01:05:55 Paul?

01:05:56 Maybe in a similar vein, thinking about 1994 and driving back from girls across practice to come

01:06:02 and be on the show.

01:06:04 I was thinking about most people in their lives, they'll have something they're really passionate

01:06:09 about, but then a decade passes and their life changes and they have kids or something.

01:06:15 And then they got to buy like a red convertible.

01:06:18 Yeah.

01:06:18 So they change over to something else and then their kids move out of the house and their passion

01:06:23 changes to something else.

01:06:25 So during these decades of their lives, they really latch onto something, believe deeply in

01:06:31 it.

01:06:31 It's part of their identity.

01:06:32 But then they move on.

01:06:33 And I think about for Barry and me, and I get to be on the show with the Fluffle and it's

01:06:39 wonderful.

01:06:40 The friendly language uncle for life.

01:06:42 That's a good story too.

01:06:44 And I've gone through those three decades and still, if I was to self-assess who I am, what's

01:06:51 my identity, who's my tribe, it's Python and the web.

01:06:54 And it's still the thing I believe in.

01:06:56 It's how lucky am I?

01:06:58 I mean, that's just graceful way to have the years go by.

01:07:02 Yeah.

01:07:03 Hear, hear, Paul.

01:07:04 It's been an amazing journey.

01:07:06 That's not over yet, hopefully.

01:07:08 And Python gave me a life.

01:07:11 It really did.

01:07:12 So I'm so grateful to the language, the community, to Guido, to everybody, Paul, everybody that

01:07:18 I meet.

01:07:18 Python's really an amazing, been an amazing experience, a great ride.

01:07:22 Yeah.

01:07:22 One of those types of things you can wake up and go, I get to do this.

01:07:26 Like, I don't have to do this.

01:07:27 Yeah, yeah, yeah, yeah.

01:07:27 Can you believe I get to do this?

01:07:29 They're going to pay me for this.

01:07:30 I would have done this for free.

01:07:31 That kind of stuff.

01:07:32 Yeah, it's fantastic.

01:07:33 All right.

01:07:33 Well, let's leave it there.

01:07:34 Thank you both for being on the show.

01:07:35 It's been really great to chat.

01:07:37 Michael, thank you so much.

01:07:38 Thank you for having us.

01:07:39 Yeah, it's been great.

01:07:40 This has been another episode of Talk Python to Me.

01:07:44 Our guests on this episode were Barry Warsaw and Paul Everett.

01:07:48 And it's been brought to you by Square and Linode.

01:07:50 With Square, your web app can easily take payments, seamlessly accept debit and credit cards,

01:07:55 as well as digital wallet payments.

01:07:57 Get started building your own online payment form in three steps with Square's Python SDK

01:08:03 at talkpython.fm/square.

01:08:06 Simplify your infrastructure and cut your cloud bills in half with Linode's Linux virtual machines.

01:08:11 Develop, deploy, and scale your modern applications faster and easier.

01:08:14 Visit talkpython.fm/linode and click the create free account button to get started.

01:08:19 Want to level up your Python?

01:08:21 We have one of the largest catalogs of Python video courses over at Talk Python.

01:08:25 Our content ranges from true beginners to deeply advanced topics like memory and async.

01:08:30 And best of all, there's not a subscription in sight.

01:08:33 Check it out for yourself at training.talkpython.fm.

01:08:36 Be sure to subscribe to the show.

01:08:38 Open your favorite podcast app and search for Python.

01:08:41 We should be right at the top.

01:08:43 You can also find the iTunes feed at /itunes, the Google Play feed at /play,

01:08:47 and the direct RSS feed at /rss on talkpython.fm.

01:08:52 We're live streaming most of our recordings these days.

01:08:55 If you want to be part of the show and have your comments featured on the air,

01:08:58 be sure to subscribe to our YouTube channel at talkpython.fm/youtube.

01:09:03 This is your host, Michael Kennedy.

01:09:05 Thanks so much for listening.

01:09:06 I really appreciate it.

01:09:07 Now get out there and write some Python code.

01:09:09 I hope you enjoyed that interview with Barry and Paul.

01:09:12 Barry, take us out of here.

01:09:14 Beautiful is better than ugly.

01:09:40 Explicit is better than implicit.

01:09:44 Simple is better than complex.

01:09:46 Complex is better than complicated.

01:09:52 Flat is better than nested.

01:09:55 Sparse is better than dense.

01:09:58 Readability counts.

01:10:05 Special cases aren't special enough to break the rules.

01:10:14 Although practicality counts.

01:10:16 Although practicality beats purity.

01:10:19 Errors should never pass silently.

01:10:25 Less explicitly silenced.

01:10:28 In the face of ambiguity.

01:10:31 Refuse the temptation to guess.

01:10:35 There should be one.

01:10:36 There should be one.

01:10:37 Preferably only one.

01:10:41 Obvious way to do it.

01:10:44 Although that way may not be obvious at first.

01:10:50 Unless you're Dutch.

01:11:00 Now is better than ever.

01:11:02 Now is better than ever.

01:11:02 Now is better than ever.

01:11:02 Now is better than ever.

01:11:02 Now is better than ever.

01:11:02 Although never is often better than lying now.

01:11:11 If the implementation is hard to explain.

01:11:16 It's a bad idea.

01:11:19 If the implementation is easy to explain.

01:11:29 It may be a good idea.

01:11:37 Namespaces are one.

01:11:42 All good.

01:11:44 Great idea.

01:11:45 Let's do more of those.

01:11:49 Let's do more of those.

01:11:51 you you Thank you.

Back to show page
Talk Python's Mastodon Michael Kennedy's Mastodon