Monitor performance issues & errors in your code

#374: PSF Survey in Review Transcript

Recorded on Thursday, Jun 30, 2022.

00:00 Every year, the Psf and JetBrains team up to do a Python community survey. The most recent one was Fall of 2021. For this episode, I've gathered a great group of Python enthusiasts to discuss the results. I think you'll really enjoy the group discussions in on this episode. Gina Huska, Emily Morehouse, Tanya Sam, Brett Cannon, J Miller and Paul Everett. Here to help us with the episode.

00:23 This is to Python. To me.

00:25 Episode 374 recorded June 30, 2022.

00:42 Welcome.

00:43 To Talk Pythony, a weekly podcast on Python. This is your host, Michael Kennedy. Follow me on Twitter where I'm at McNutt and keep up with the show and listen to past episodes at Talkpython FM and follow the show on Twitter via at talk python. We've started streaming most of our episodes live on YouTube. Subscribe to our YouTube channel over at Talk Python.com YouTube, to get notified about upcoming shows and be part of that episode.

01:08 This episode is brought to you by.

01:10 Century and their awesome error monitoring product. And it's brought to you by compiler from Red Hat. Listen to an episode of their podcast as they demystify the tech industry over at Top.

01:21 Compiler transcripts for this and all of our episodes are brought to you by assembly AI. Do you need a great automatic speech to text API?

01:30 Get human level accuracy and just a few lines of code? Visit talk python.

01:33 Fmassemblyai, Brett, J, Tanya, Emily, Paul and.

01:39 Gina welcome, all of you, to Talk by the Enemy.

01:41 Thanks, Michael.

01:42 Hey, everyone.

01:42 Hi.

01:43 Hello. It's really great to have you here. I'm super excited to have a conversation around the whole community of Python survey results. Thank you to the Psf and JetBrains for putting the survey together. Thank you all for being here. And I want to invite a bunch of you so that we could have a bunch of different perspectives and thoughts and ideas on where we are. So that's going to be so much fun. But let's do a quick round of introductions. Brett, open source contributor extraordinaire.

02:13 So my name is Brett Cannon. I'm in charge of the Python experience for Vs code. I'm also a core developer for 19 years, now a member of the Price On Steering Council since its founding. And I'm calling from Vancouver on the unseated territory of the squamish muscular slave First Nation.

02:29 All right, great to have you here. Thanks for all the Python things you've done. Jay?

02:33 Yeah, I'm Jay Miller. I'm a senior Cloud Advocate at Microsoft. I work with our Python advocates. And yeah, it's my job to keep Brett looking so amazing.

02:44 At least talk about the amazing stuff you've done.

02:46 That's right. Spread the word.

02:48 Tanya hey, everyone. My name is Tanya. I'm currently a Python developer advocate at Deepgram. We're an AI speech to text company. So before I got into Python, I was a professional athlete. So I'm like a pro athlete turned worked in sales for a little bit and then got into tech after. But thanks for having me today. It's good to be here.

03:07 It's great to have you. I love your story because it shows you don't have to just grow up doing code from a young age to be really good at this and how fun it must have been to be a pro athlete. So cool.

03:16 Thank you.

03:17 Yeah. Emily, great to have you here.

03:19 Yeah, absolutely. Hi, I'm Emily. I am the director of engineering at a software consultancy called Cuttle Soft. I'm also a CPython core developer and the recovering Python US chair from the last three years.

03:32 Yeah, great work. It sounds like people I talked to had a wonderful time there. So good job on Python. Paul, nice to have you back.

03:39 Hi, everybody. I'm Paul over at Developer Advocate at JetBrains, a teller of semi true stories of Python history, and really happy to be with the six of you. This is a cool panel.

03:53 Yeah, I'm happy to have you here. It is a cool panel. Gina, you were not too long ago on Python Bytes, as was Tanya as well, but it's good to have you over here and talk Python.

04:03 Yeah, thank you for having me. My name is Gina Husker. I'm the creator and maintainer of something called Optoprint, which is the Snappy Web interface for the 3D printer and which is written in Python, which is why I'm here, I guess. So hi.

04:15 Hi. And people who are not watching, I think you've got just the coolest office set up. You've got your laser cutter and 3D printer and stuff that you've created with your maker space to set up a really nice camera AV set up. So it's fantastic.

04:30 And a three headed monkey.

04:31 And a three headed monkey, of course.

04:32 Right?

04:34 I love it. All right, Paul, do you want to maybe say a few things about the relationship of the Psf and Jet brains and a little bit of background in the survey to maybe introduce a virtual quick since JetBrains was part of it? If I go and look at the results here when we get to them, it's at jetbrains.com. But it's not really a Jet brain survey, is it? No, not at all.

04:56 It's interesting. When I was doing the prep for this, I was like, how far back does this go?

05:01 Damn, this thing goes back to 2016.

05:03 Wow.

05:04 Which is interesting to see changes over time, but this was kind of a brain trial back then. We got a new Python has a need, let's do it together. But then it kind of turned into PSS, deer in the ship, and JetBrains just doing what it was told for conducting the survey, doing a little bit of throwing smart brains at it from our research folks to do statistical validity. Trying to add new questions, but preserve old ones so that we could see trends over time. So this is now the Psf survey, and I think that's a great resource because we all have these questions, right?

05:39 Yeah, we absolutely do. And one of the things I remember when I was reading about it is it wasn't conducted on the JetBrain site. This was on Pythonorg, right? Yeah.

05:49 It's hard because it can feel like well, it becomes a selection bias because it's affiliated with JetBrains. So over the years, we've really tried to turn this into kind of a contribution of the community, let the Psf kind of dictate what it wants to see and how things should be organized and conducted.

06:06 Yeah, better. Emily, anything you want to add to that, since a little bit on the inside?

06:11 No, I mean, Paul nailed it on the head. It's a great partnership between the Psf and JetBrains. As I said, it's mainly questions coming from the Psf and the Jet Brains folks helping to help do it, make the Spiffy website with the awesome cookie policy pop up in the corner. I still think you all have the best one in the industry.

06:28 Yes, you could type in it. It's a console, right?

06:30 Yeah, it's pretty cool. We can talk about it later. But, like, the development residents questions, for instance, all came straight from Wukash, and they specifically asked Mukash to come up with those and such. So it's great collaboration.

06:40 Yeah, absolutely. Cool. All right, I'm going to pull this up here, and for folks who want to check it out, obviously, there's not going to be probably that many links to the show notes, but there's the one important one, which is the Python Developer Survey 21 results. So one thing to keep in mind as we talk about this is it's a bit of a historical look. A little bit. So this was conducted in the fall of 2021, and here we are in the summer of 2022. So, for example, there are questions about Python 310. Right. I'm sure the adoption is higher of that now than it was eight months, seven months ago, something like that. So keep that in mind.

07:22 What do we want to say? They actually linked back to the previous results as well, which is really good. I went through a bunch of different areas, and so I think the first we're just going to go through it in order and maybe skip some that are not maybe too detailed or something. But the first one is, are you a Python developer or are you a developer that also happens to use Python? And for the people who took the survey, granted, they're going to Python.org to see this, or they were encouraged on Twitter from Python people to go take the survey. And it's 84% of the people are using Python as their main language. I personally think that's pretty high. I think that's a pretty positive number here. What do you all think?

08:03 I'd be curious what the bias is. I wonder what would happen if this made the front of Hacker News and what this number would then be. Because, for instance, I know plenty of people who complain at me, at work about why is this python stuff kicking up? I Only use the Script every two months kind of thing. So I know lots of ancillary uses of python all over the world, so I'd be really curious. Obviously, this does not really represent the world itself, so I think it just at least helps set a guideline, as it is, as it were, as to how to view these results. More than an actual number we can rely on for the overall computing world.

08:38 Yeah, I Think It's Interesting because if I remember correctly, this question was sort of a self selection of How You identify. So I definitely say, yeah, I am A Python developer, but If I Am realistic about the actual code that I'm writing on a daily basis, I'm definitely not primarily writing Python. So I think that this really sort of frames the perspective of the person filling out The Survey to Say, like, yes, Python is My Main Language Of Choice in whatever Way That Might Be, but It Might Not actually Be the thing that they're writing the most code for sure.

09:10 I'd like to hear your thoughts on this from everyone, but my view of the Python world is it basically breaks into three pieces. We've got the Web developer Web API sort of folks. We've Got The Data Scientists, and we have this Massive other scientists, economists, maker folks programming little devices.

09:33 And it seems to me that the first two, the web and the data science, would probably really be the main.

09:41 They would just live in Python. But that other Group, they Might Drop into Python to just, oh, I heard there's this library and it'll give me this Picture that I need and then go back to whatever they were Doing. Something like that.

09:51 Yeah, I guess, too. That actually made me think about when you were collecting the survey results for this one. Like, what levels? Did you ask what level they were at? Like, any more junior, senior, mid Level? Because I feel like maybe Someone maybe just starting out in Python, maybe that's like their Main language that they're using versus someone who's More Senior or More experienced. Maybe they're using secondary languages as well.

10:15 Yeah, that's a very good observation. There is a section on how junior senior people are, which I think is pretty interesting. Jay. You've been doing some of the developer relationship stuff. You probably got to think about this sort of breakdown a lot. What Are Your Thoughts?

10:29 I do.

10:29 And my history comes from being a tinkerautomater so often had to use whatever tools I was told to use and find ways to inject Python into it. But I'm glad to see is now. I think that's the case for most people. Like you said, that is that Bubble that The Python Community is Vastly Growing in of people who are I'm using Python to do this thing in my job that isn't as a developer. And it's nice to see that. I think more and more use cases of Python are becoming available so that I don't have to go reach for whatever the parent languages in my project. I can go and just use Python for most things. I think that while a part of this is we're looking at this data set as people who love Python wanting to come in and talk about Python and share their thoughts and feelings about it. But I also recognize that had you asked me this very question three years ago, I would have had to give them a different answer. So yeah, I think that it's great that that number can go up because of the growth of iPhone from a technical standpoint.

11:36 Yeah, great point, Tina.

11:37 Yeah, that pretty much mirrors what I was about to say, because when I started with Python, when I got the first time in touch with it, that must have been some time around 20 07. 20 08 is really a long time ago when I actually was still a system administrator at university in the Computer Science department, and I used Python to automate some stuff like maintenance things and bookkeeping and whatnot. So I just think you remember writing a label tool for the backup drives. And back then, if you had asked me this question, I would certainly not have said I'm a Python programmer. And I'm not even sure I would have said that Python is my secondary language because it would probably rather have been my tertiary or whatever the word is for force office.

12:24 And even ten years ago, I would still have identified as a Java developer with maybe a bit of background in Python and a lot of JavaScript HTML stuff strolling. But these days I've also moved to someone who would call themselves a Python developer. And I kind of find it funny that apparently many more people have made the same decision over the years. That is kind of amazing to see.

12:47 Yeah, there's definitely a large influx of people moving in. So related to that, you said you had done Java, and actually right now I'm working on Dart. I'm trying to maybe do some flutter mobile app stuff to augment our courses and whatnot. And Tanya had a great point where she said the more junior you are, you might just be learning one language now, but then as you grow, you're like, well, I really need to learn this other language to do this thing. So the next question was, well, what are you using in addition to your Python code? Regardless of whether it's your primary or second? Are you doing? JavaScript.

13:24 HTML. Are you doing? C# or rust or go. And I think these questions are always really hard to pick because, for example, HTML and CSS, that seems like a valid question, but on the other hand, it's not really a standalone programming language. No one would introduce themselves like, hey, I'm Michael, I'm a CSS developer. Full stack by the way.

13:48 So should it really be a thing that pairs with that or not? It's a tricky for me to decide, but for that question, the most paired up language is JavaScript and then HTML and CSS and then we've got sort of Genus point bash or shell scripting and SQL. I guess if you look at programming languages, we probably have JavaScript and then C Plus Plus and then Java and then C Sharp. This is pretty interesting what people pair it with. I think you got I talked about the third of sort of web developer side clearly is the 40 30% of JavaScript and HTML and then I think it gets pretty interesting what stands out to everyone here.

14:26 I think this kind of suggested might be a third cohort after the web and data science. And it kind of was suggested by Gina and Jay earlier of automation, right, where I think the folks who work with Ansible and Chef and Salt and use Python to basically do the DevOps it admin things probably are three core and may not quite be themselves Python developers even though they are right. And I think this kind of plays into that with the whole JavaScript HPCSS coming, that web group and then bash shell covering that cohort and then sequel kind of cross cuts across weapon data science. So I think it kind of is interesting. I also personally hope C++ group drops because people write more Python and less C and C++ with all the performance coming in Python three point eleven in the future. But that's just a personal wish.

15:13 Yeah, all your pumping your fists there some C-L-S being overtaken by more Python.

15:18 I will start by getting the first 20 consecutive compliments to Brett who is reviewing web assembly or requests. Probably as we speak. He's got two or three other Bretts back in the back that are doing the full request reviews. But as web assembly becomes a thing, then maybe Brett's mission to demolish C Sharp will take effect. I'll take exceptions in the HTML anal language, the L language.

15:47 Come on, give it some love and.

15:49 Stack overflow says it's the number one language. Okay, maybe the only thing I'll add that was interesting to me on this is seeing the change since 2016. Because this is a question that's been asked every time, fairly stable wording on it, hasn't changed that much. The top five are the top five SQL has bounced around. If I remember correctly, last year it was number one ahead of JavaScript at 43% or something like that. And I kind of thought, well, that's data science kicking in. But then this year it took a little bit of a drop.

16:17 Questions about the makeup of this language. Was this a kind of a multiple choice thing.

16:22 So you could say JavaScript, HTML I remember taking the survey but I cannot remember the question.

16:28 Yeah, the little giveaway is that there's this 100 plus at the top, which means people can pick more than that. Okay, when you see that at the top by a section yeah, I should.

16:40 Have anonymized cleaned up. Data sets are available for all you smart people who can do cross if.

16:48 They want to do sequel against their CSV.

16:51 I have tried to escape JavaScript for a while now, I'm not able to escape it's. Still escaping JavaScript?

17:01 Yeah.

17:02 I am curious to see though as the development of Pi script as it develops, if that JavaScript number will stay the same or if it's going to kind of drop off a little bit and then I know Bootstrap isn't a language, it's more of a front end framework. But this kind of made me curious. Are Python developers using Bootstrap more with their applications or are they using straight JavaScript? Are they using vanilla, HTML and CSS.

17:27 I could imagine that React is pretty much featuring very highly there and maybe also Angular and UJS as well, which is also how I explained that maybe JavaScript is actually ranked up higher than HTML CSS because if you write React in these dates, you pretty much only interact with JavaScript code and you might throw snippets of stuff in there that looks like HTML that actually isn't. And so people in that case would probably more identify as a JavaScript crowd or maybe the TypeScript crowd.

17:55 Do you use a lot of other languages or technologies for your devices and embedded things and so on?

18:01 I used to have this thing that I tried to learn a new language every other year or so, but then life happened and I haven't been up to that for the last, I don't know, 13 years or so now. I can say that in my day to day I probably mostly use Python JavaScript bash as well. A lot. No Java anymore, thankfully. SQL here and there maybe as well, but I think that is about that. I mean, sometimes I also have to touch C or plus code, but I try to really avoid it because I know my weaknesses pointer, arithmetics and forgetting to free up memory. So I stay away from languages that allow to shoot myself in the foot too much.

18:38 Yeah, even if you're good at it, it's a hassle if you can avoid final thought on this one, emily, you said you were doing other languages as well. One, being a core developer, C Plus Plus is probably something that you've got to mess with or see rather being C, Python. But what stands out to you here?

18:55 Yeah, I think that most of my contributions to CPython have been C and not Python. Yes, I think it's interesting. I think it's very clear that web development is very much at the forefront I think being able to sort of ingest this data and make meaning of it does get really difficult because you look at HTML CSS and there's so many different ways that it can be used. So it's like, oh, are these people writing Jango or Flask applications and they're also including that, or do they happen to be writing a react front end and are considering it in there? So I do think that that's interesting and just sort of a difficult thing to really take that meaning out of it. But I think it's very clear that there is some section of people who are still looking for things that are more similar to Python elsewhere. So you can't get away from JavaScript. As we all know, there's really not a good substitution for something like HTML CSS if that's what you're building. But you see things in here where there's go, there's rust, things that people might be leaning towards when they need something that's a bit more performance or filling a different need for them. I think it's interesting that those are still making a meaningful enough impact that they're making this list. And I think it will be interesting to see how this changes over the next few years with improvements of Python performance.

20:14 This portion of Talk Python to me is brought to you by Century. How would you like to remove a little stress from your life? Do you worry that users may be encountering errors, slowdowns or crashes with your app right now? Would you even know it until they sent you that support email?

20:29 How much better would it be to.

20:30 Have the error or performance details immediately sent to you, including the call stack and values of local variables and the active user recorded in the report? With Sentry, this is not only possible, it's simple. In fact, we use Sentry on all the Talk Python web properties. We've actually fixed a bug triggered by a user and had the upgrade ready to roll out as we got the support email. That was a great email to write back.

20:55 Hey, we already saw your error and.

20:56 Have already rolled out the fix. Imagine their surprise, surprise and delight your users. Create your Century account at Talk Python Fmcentry and if you sign up with the code Talk Python all one word, it's good for two, three months of Centuries business plan, which will give you up to 20 times as many monthly events as well as other features. Create better software, delight your users, and support the podcast. Visit Talkpython Fmcentry and use the coupon code talk Python.

21:29 It's hard to tell from these little graphs that shows year over year change, and the one that seems to have grown the most is Rust. And I feel like there's a lot of people starting to pair Rust with Python instead of C with Python. For some of those internals, interesting, okay languages for Web and data science, they break this stuff all down.

21:47 This next question here asks Python usage as a main or secondary language for a certain purpose. So maybe we can touch on top four or five here, data analytics. Python is the main language, but only by 4%, right? And then web development, it seems like Python is more of the main language and so on. But for example, DevOps, as Gino was sort of talking about system administration, it's a secondary language that people bring in. So yes. Tony, were you going to jump in there?

22:19 I was just kind of nodding my head about the data analysis, the 52%, and just thinking like, what else are they using? Are they using R instead of Python for data analysis or something else? Or just kind of made me think of that.

22:32 It's a real good question. I don't know the answer. Maybe some other folks do. What do they use if it's not the second language?

22:37 I don't think it was necessarily like a language. I think it was where is the data coming from and how do you get into it? That was one of the things where I've been a massive advocate for working with public data and using tools like Socrates that provide rest APIs for a lot of that data. But when all of a sudden you're working at a project and you have a map and the map is only GIS data and you're like, well, yes, I could, I could start doing like neonatal stuff or I could just use what they give me. And unfortunately, a lot of data like that is kind of locked into however they decide to give it to you, albeit sometimes a CSV file that has 2000 columns to it. So it's almost terrifying to open up Pandas or open up just Python import CSV and run with it. So you just kind of use whatever they've given you to use. But I'm glad that there are services. Again, that's going to be my repeating sentiment is I'm glad that there are more and more things coming out that make using Python with a lot of these tools a little bit more accessible to beginners and I would say enthusiasts. I'm not a data analyst, I'm not a data scientist, I don't even pretend to be one. I'm just someone that loves looking at data and says, what can I discover from it?

23:58 Yeah, very cool. Gina, how does that DevOps system administration breakdown for you? Does that resonate?

24:03 Absolutely. Because frankly, even though I now consider myself a Python developer, whenever I have to get into the office administration stuff, the first thing that I try to use to solve any given problem that I have is shell script. Once that reaches a certain level of complexity and I start to slowly but surely lose my sanity over it, then I switched over to Pride. The first approach is usually just, I don't know, three or four lines of best script and suddenly all targeted ends up in it, then I might even argument puzzle it's a point, and then Python starts to look more attractive at that point. But if it's really just chaining a bunch of units per month together and throwing JQ against the JSON dump or something like that, then it's just I don't know, the shared script is just faster.

24:48 Yeah, no dependencies. It's just right there.

24:51 Yeah, it just works. Like, maybe I have to install one single command line tool or statically linked even, maybe, and then I'm done. So yeah, when I can do that, I prefer doing that because then I don't feel like I have to maintain something. Now.

25:04 Emily, the one that stands out to me most here is that the biggest I'm using Python as my primary language is for web development. You probably run into a lot of web projects at Cuddle Soft. What are your thoughts on that?

25:15 Yeah, I mean, I think that at least for the space that I operate in, python really is sort of a sweet spot. Python and Ruby don't kick me off the show.

25:26 I think that as a whole, web development is something that needs to be very accessible. You need to be able to hire for it needs to be something that's maintainable over time. And so I do think that there's kind of like a sweet spot of getting something started. And a lot of times, especially if it's your first iteration of building something out, python is a much more accessible language than trying to jump into something where you're maybe over optimizing or over engineering for something in the future. I think Python just really shines with web development and it's such a rich ecosystem that why wouldn't you reach for it if you could?

26:00 Yeah, and you have to hand off these projects as being a consulting firm. You build them and you probably hand them off. And I bet it feels more reasonable to hand off a Django or Flask app than it would be to some highly configured ASP.NET type thing or a Java type of app that requires a bunch of steps even just to get the thing to run.

26:22 Yeah, absolutely. Anything that's going to wind up being like, operating system restricted is really tricky. We've also been working with especially back end applications that require a really complex ecosystem and architecture to deploy them. And my goodness, if you can't easily spin up your local environment within five to ten minutes, you're probably doing something wrong. Like, all of these cloud infrastructures that exist have their place, but a lot of times people really want to grab onto those as well. It complicates things. So I definitely see why Python is still shining in web development, for sure.

26:56 Brett, I'll give you the final word on this section. And it's a two part question. One, educational purposes. Python is the primary language there. That's pretty interesting.

27:05 It's fantastic. I mean, way. Back when I started programming, I didn't have python. I wish they did as an easier language to get tied into it, but I definitely see it and I appreciate it. And I wish I had convinced my professors when I was in grad school to switch the Pythons to some of their choices. But luckily Python still went out. Years later, I've gone back and looked at all my previous schools I attended all switch. So that's fantastic and I hope it goes too right, like polluted to web assembly and such. And I think we have some opportunity here to make getting started for education. And we also point out just getting up and going is a really important friction point to lower. So I'm hoping we can continue to improve that to get us somewhere.

27:46 Yeah, that was the part two of the two part questions. The web assembly stuff, I think traction is finally starting to take there and that's post the time the survey was run, but I think it is.

27:57 I just want to tell you two things. One, I love this question because it's got the most, I find odd specific point of programming of web parser, scrapers and crawlers out of all the other options. It always throws me every time I take this question. It's like why that specific align? And I know it's historical because what Python has been used for over the years, but it's always so specific. The other thing, I look at this and this shows how weird my relationship with Python is. I don't view this as Python for today. I view it as what I wanted to see changed for Python tomorrow and specifically 3510 years from now. I hope we can move the education, the desktop development and the embedded in mobile development. More on our screen. The left but higher percentages.

28:40 Yeah, put them higher in that list, for sure. Absolutely. Yeah. Great point. Okay. Totally agree.

28:45 I believe Paul had something you want to bring up.

28:47 Paul, get in here. Yeah.

28:49 A quick point first on the historical anomaly, brett, when you said that, I just went back and looked at 2017 and WebCrawlers was a big thing, man. It was 32% back then. So it is a little bit of a little bit of an anomaly. So I guess it still is. Well, I'd like to call everyone's attention to is look at data analysis. The difference between the 52 and the 46, it's gone down for people who identify to that. If you go look at the two previous years, it went down then as well. Counterintuitive.

29:18 Yeah, it really is. It must mean that the data analysis folks have a lot of different languages to juggle. All right. Bunch of other things that we could dive into. Kind of touch on a bunch of these. I think this is a really interesting question. I've always enjoyed it. And the question is, do you consider yourself a data scientist? And let's see. 66% say no, 29% say yes. And then there's another, and I'm not really sure if I looked at the results. I guess that makes sense. But it sounds like a yes or no question. But there's some uncertainty in there. But when I describe the world as one third one third. One third. At least for the data science folks here's the one third. I do think there's a very interesting trend in the Python space where people who do data science, they feel like they are more isolated in the minority than, say, web developers and other folks. Because I think you have a team of web developers, and often you have one data scientist at the company that's doing the processing and analyzing. Whatnot but if you look at the usage for Python, the highest use by 50% is data analysis. And yet only 29% of people say they consider themselves data scientists. So I think there's something interesting. I think there's more data science happening in Python than even the people in the trenches of that base of it see it as I think it gets.

30:41 Even a bit weirder because it's not that two thirds of everyone who got asked you doesn't consider themselves data scientists, but two thirds of all the people that were asked that stated that they work in data analysis and machine learning said they are not data scientists, as it says there. So that is something that drove me completely off here because I don't know, I maybe imposes syndrome, but I don't know.

31:06 Yeah, I think a lot of this goes to kind of go I think this kind of goes to what Jay was saying earlier when we look at data analysis, as these questions were asked. That's not necessarily data science for a lot of people. So Jay was talking about using Python to pull data from public APIs and do analysis on them. Or like we use Python to run our accounting department, right? Like we pulled together spreadsheets and do analysis and budgeting and automatically generate invoices. So I think that there's just, like, so much more within that data analysis section that just doesn't necessarily apply to data science.

31:41 Right. They're not doing machine learning with TensorFlow and Jupiter, so it might not feel like I'm a data scientist type. Yeah. To me.

31:49 This is an industry direction question. The industries that we work in are becoming more and more data focused, more and more data driven. And we've been saying that for a decade now. So I'm just going to keep the pattern going. But it seems like even in newer industries, even in industries that are popping up, like I think about how many people are social media influencers that have to deal with things like impressions and stuff like that. So it's like, yes, you have high school kids and younger folks and people who, like, get it that I just don't and they're having to look at data and they're having to think about things from a data driven perspective a lot earlier in life. And I think as it becomes more commonplace, what we'll see is people will do anything and everything to make their jobs easier. And in fact, that was what originally got me into Python, was, how do I make this job easier? Oh, I can script this out. And I think we have some. I mean, I talked to the high school kids from time to time just about their careers in computer science in the future, and a lot of them are thinking about everything that they do now. From a data perspective, I think that's where you have more people doing data analytics that aren't necessarily doing data science.

33:13 Yeah, that's a great perspective. I'm very excited, especially for Brett and Emily on this one. This next question, python versions Python Three versus two. There was a little bit of uncertainty back in 2017. 25% of the people were still I'm doing Python Two. Now it's just down to the ones I suspect. You have no choice. It's 95% Python Three. Brett, can you do a celebration lap on this one?

33:38 Oh, yeah. I mean, I started to celebrate when we got past 50% and the trend continued to go down based on faith alone. And partially because this is somewhat my fault, I did play a part in trying to make this all happen. I kind of had to have faith that this would all trend this way. I feel sorry for the people, those 5% that are still stuck on Python too. I know they're keeping friends of ours.

34:00 Yeah. There's some of the banks that have like, 5000 Python developers working on some forked specialized version of Python Two that has millions of lines of code. That could be 3% right there.

34:11 Yeah. And some people are still actively working on this. Right. Like a friend of some of us, Jeff Triplet, like, I know part of his consulting worker is to help companies move from Python Two to Three. So I know it's not that people aren't trying to do it. My worry about those folks that can't move is how much of the island will become to themselves just because they'll slowly just build these less and less of the open source stuff. But not much we can do there. But, yes, I am very happy about this. And at work, all of our stuff, we drop Python to support officially beginning of this year. So it was a nice day when that happens.

34:49 Fantastic. Emily, being on the inside, what are your thoughts on this as well?

34:53 Yeah, it's interesting because I feel two very conflicted feelings about this. So my gut reaction when I look at this is like, wow, what's? It really 75% of people who are already on it in 2017. In my soul, I feel like there was still this big push to get people on Python Three, and it doesn't feel like we were that successful that long ago. So that's the first thing. And then the other thing is I am lucky to function in a space that we were so able to jump on Python Three right from the beginning. I do kind of share a lot of Brett's concerns and hesitations about the people who are still on Python Two right now are probably really stuck on Python Two and will be for the foreseeable future.

35:38 Yeah, you would have to leave that job and go to a different place where you no longer have to touch that software to make that change. I'm sure actually happened.

35:45 A company I was working for in 2019, they were on Python 27, they're still on Python 27. Unfortunately, they're in that small percentage that's.

35:55 Using Python Two Seven.

35:56 But yeah, for me it's graph represents a struggle that I actually am still fighting, or was fighting until very recently in Octopus maintenance, because Octopus is something that is deployed at the end user space, so I do not control the Python environment that is running in. And so until the very latest stable version, octopus still supported Python Two and Three. And dropping Python Two support was something that I dreaded because I feared a huge backlash from the community along the lines of but then this and this plugin will no longer work because the maintainer has not upgraded it yet to support Python Three as well. And I'm currently looking at my own tracking stats. And for optic print, the split is still 15% of all instances are still on Python Two, but at least we now have 85%. So we are slowly catching up to these survey results. But still the journey was long and hard and I'm really glad that I can finally now say no. I'm exclusively developing in Python Three. f-strings.

36:58 Yes.

36:59 Yes. 36 is all you need. That's the way the magic is. You got Async or weight and got f-strings. Yeah. I think that's an interesting microcosm to think about how your app has these plugins. And so there's that cascading dependency as well.

37:13 Yeah, it also means that if I make decisions like dropping Python to support, I pretty much nuke a whole part of my ecosystem. And that is obviously bad because I depend on my ecosystem. It makes up like it's one of the biggest selling points of the whole thing. So that always stuff like this, always decisions that are especially hard to make.

37:36 This portion of Talk Pythony is brought to you by the compiler podcast from Red Hat. Just like you, I'm a big fan of podcasts and I'm happy to share a new one from a highly respected and open source company, compiler. An original podcast from Red Hat. With more and more of us working from home, it's important to keep our human connection with technology. With compiler, you'll do just that. The compiler podcast unravels industry topics, trends and things you've always wanted to know about tech through interviews with people who know it best. These conversations include answering big questions like what is technical debt? What are hiring managers actually looking for? And do you have to know how to code to get started in Open Source? I was a guest on Red Hat's previous podcast, command line Heroes and Compiler follows along in that excellent and polished style we came to expect from that show. I just listened to episode twelve of Compiler how should we handle failure? I really valued their conversation about making space for developers to fail so that they can learn and grow without fear of making mistakes or taking down the production website. It's a conversation we can all relate to, I'm sure. Listen to an episode of compiler by visiting Talk Python Fmcompiler. The link is in your podcast player's show Notes. You can listen to compiler on Apple podcast, overcast Spotify podcast, or anywhere you listen to your podcast. And yes, of course you could subscribe by just searching for it in your podcast player, but do so by following Talk Python FM compiler so that they know that you came from Top Python to me. My thanks to the compiler podcast for keeping this podcast going strong.

39:15 There's a Zed Shawl quote for everything and I wondered if there was a Zed Shawl quote for this.

39:21 Guess what?

39:22 There's a Zed Shawl quote november 2016 there's a high probability that Python Three is such a failure it will kill Python. So Brett, I mean, you kill her.

39:34 I'm okay with that. Python Two can go hang out with Cobalt in the back of the room and just live on forever, well beyond all of us, and do its thing for the few that are stuck on it forever and just can't do anything better.

39:46 I am curious about that. The box next to the graph here about I'm saying compared to Python Three, python Two is more often applied to computer graphics games and mobile development. I know for a while.

39:57 I'm serious about that as well.

39:58 Yeah, it was interesting. Kind of really stood out to me. I know for Mac, right, they're dropping iPhone 2.7 support, I believe, right. Which happened at the beginning of this year. So yeah.

40:10 It'S got to be embedded in something.

40:12 I can also kind of indirectly talk to this. I have a friend who used to be in the gaming industry professionally, and chats with him, suggest the gaming industry is very slow to pick up on new stuff, ironically, right? Like cutting edge graphics and all that, but modern development practices and stuff extremely slow to switch. I don't know if it's just culture or the velocity tempo, we do development that causes them to not stop and look at how things change. So I think it's a combination of the embedding comment just made plus just literally it works. Why make a change? And we don't have time to move anything we've written in two to three.

40:51 I think Paul Hildebrandt talks about that in Hollywood and video production, right?

40:56 Yeah, Maya and all that switching over. I gave a talk at Disney for Paul at one point to help him try to convince folks to move to Python Three. And they had to get the whole industry on board, right? Because there's a whole industry group that controls control sounds a little extreme, but works together to come up with standards of software. So the whole industry works together and they as a group, had to decide to move to Python Three. And I think they did it a bit later than some people might know. And then that's what got like Maya and all those graphics tools to move over and all that. And if you're still running versions, I'm sure you haven't switched. So that's my guess as to why those specific areas are kind of taking a bit longer to switch.

41:36 Yeah, I totally agree with the game computer graphics. I'm not so sure about mobile because I don't even know what is happening there.

41:43 Just kind of made me wonder a long time ago, in a galaxy far, far away, I doubled briefly in Unity and back then, I think it didn't have Python bindings. And I just checked, apparently they introduced Python bindings in 2020 and they started with Python Two in 2020. So then I currently have the blog post in front of me, python for Unity Editor, and where they said Python Three support is in the works, and that was on February 26 in 2020. So I don't know if they have shipped it by now. I sincerely hope so. But that kind of explains why it might still be a sector in games development. Because if you started, for example, on a Unity game and developed everything in Python Two, that white port is over. We'll look into the source anyhow, because you ship the whole game binary and stuff like that.

42:27 Yeah, very good point. Okay, let's move on to the next one. And this one, I think, more than most you got to keep in mind. This is from the fall of 2021 and this is for Python Three. What versions are you using? You hear about a lot of libraries these days, being 37 or above. I believe official support for 36 is no longer there. Right, Emily? It's now retired, so it breaks down what percentage is being used. So 35 or lower is only 2%. Three six is seven, seven is 13. But it was 27% and 35% for three nine and 16% for 310. So there's sort of this right side, heavy, normal distribution type of thing. And I suspect it would move a little more to the right with 310 being seven months later or something like that.

43:14 Yeah, I was going to say the time frame, I think, as you point out, already important to keep in mind, because in the fall 310 would have been brand speaking new because it comes out at the beginning of October on the broadcast anniversary of Monty Python's Flying Circus. So it's so new that if the community hadn't caught up yet with releasing usually the extension modules that everyone relies on, right, that scientific stack and all that being ready to go, that would probably hold that up. So actually, 16% is kind of nice because it does show that at least some people are ready to go. Day one versus everyone beyond three nights, which for the majority of the year that the survey covers was the latest and greatest. Right. And talking about the Python Two stuff, I love this chart because for the longest time, right, python Two was up over here on the left side and everything was slowly creep up on the other side. Now we're back to what would have been normal way back in my beginner days of Python of oh yeah. Pretty much everyone is on the newest version. Like three months. Six months later. And I see Paul shaking his head and in the same time as I do. Where the whole community moved together on the same versions versus the old split that we had. Where it's just like. Well. Some people are moving. Some aren't. Nice to be back on this cadence.

44:17 Not to fast forward any of your conversation, Mike, but I think the point below it also speaks to why a lot of people are on 39 at this point in time, which is how they're installing it. If you're installing it from your OS provider or some other form, you're going to get an older version of python. And if you're learning Python just from surveys that I've seen from python communities, the largest member of python communities are often students and people wanting to learn. So how do they install python? Well, if it's already there, they're just going to use what's there. If they don't, then they're probably going to go to the website and download it and then just run the installer. I think that we as python professionals like to think that the way that we do things as normal or normalized, I guess, but often not. Me using Asdf to manage all of my different python versions that I'm using back and forth is very much the outlier. I feel like 39 is the largest in this case because teachers are telling their students, go here, install this, do this thing, and if that's what they're using and that's what they're being forced to use, then they're just going to tell their students to do the same thing.

45:33 Yeah, the other thing is the main way you get Python here that people got Python is by downloading the installer. If you do that, it doesn't auto update. Right. And so if you did that a year and a half ago, you're just going to have that version. Oh, I have Python Three. I'm good. There's no auto update, whereas if you did Brew Install, right, it'll say, oh, there's new version, and generally you just accept whatever the updates are. So I think that actually has a big influence here as well. And then, Brett, to your point, I remember right, as 310 came out, there was a few things I wanted that didn't have wheels for 310 that also had to be on M One.

46:08 There were certain libraries that not that they didn't support it, but they weren't quite ready to deliver you the stuff you actually needed to use it. Tanya, Paul, Jay, you all are talking to customers and working with folks.

46:23 Does this influence how you might think of working with people or presenting stuff like tutorials or things along those lines?

46:29 Yeah, I think so.

46:29 I think it would depend on what level they're at and which operating system that they're using.

46:35 Maybe.

46:36 I know for myself, I literally just started using Im. It just makes it a lot easier to also switch between different Python versions. But, yeah, I think this is definitely something to think about, like when we're writing content.

46:47 For sure, for sure.

46:48 I may have been told once or twice to not lean on the Walrus operator and some of my match case operators as much, but you do have to think about how you're writing code and some of the benefits. And I know 311 isn't on here for obvious reasons. But that's one of the things that we think about when we talk about what's happening in the future.

47:10 Too.

47:10 Is. Yes. It's great to be able to extend the virtues of all the efficiency improvements. But at the same time. We have to also understand that we might be talking to someone that says.

47:22 Yeah.

47:22 That's great. We're not going to touch 311 for another three years.

47:25 It works, we're not touching it.

47:28 Yeah, it's fun to encourage that conversation, but also to remember that not every blog post can have the latest and.

47:35 Greatest features, including yeah, for sure.

47:37 Three quick points for me. First emily's first contribution to C. Python was Walrus. So you will address Walrus with love and respect.

47:45 I love the Walrus operator. I, for one, reach for it every time I can in my personal code, however.

47:52 Second, I find myself blocked sometimes by, of all things, has Black gotten to it yet? Which is kind of funny.

48:00 I believe all these problems we solved when Brett adds install Python to the Python launcher feature set. I think that we'll all be in good shape when that happens.

48:11 I'm curious. Emily, I want to put you on the spot, make a prediction. 310. What's this number going to be next time? Think it'll hit 35%?

48:19 Yeah, absolutely.

48:20 All right.

48:21 I think what we're seeing here, at least to a certain extent, is that we haven't inflicted too much trauma on the community that they've said, no, I finally got to Python three, six or 35 or wherever they are at when they migrated over and that they want it to kind of, like, stay there. And I think that the core team takes great care, especially now, to not introduce any sort of deprecation or breaking changes that are going to impact the majority of users, because we know we have this talk internally all the time. There is not going to be a Python Four because we don't want to see that sort of transition that we saw from two to three. And so I'm hoping that in a way, we broken that stigma that a python upgrade is a pain. And I don't think I was really around to see the better days before we introduced that. But I do think at this point, there's much lower friction and much better tooling for somebody to say, hey, yeah, like, Python 310 just came out. Let's upgrade our docker container, let's run CI, let's see if our test pass, and we should be good to go and just kind of, like, more readily upgrade on a regular basis because we look at these more as incremental changes. One and two, I think there's a lot of cool new features that go into each release that people want to grab for, and I think that will drive people to continue to upgrade as much as they possibly can.

49:45 Absolutely. I do think it's been a very smooth ride from three five onward. I can't think of anything that's been a problem, so people are encouraged to keep going. I do think there's two things. One, I love the Wallace operator as well, although I've taken down my website with it on accident because there were some utility scripts that were not loaded by the website that I thought, oh, I can put my newer code over here, and that was 37 on the server. But the web framework scans all the files to try to find routes, URLs, even if you don't call it, and it didn't work so well. But I also love it. I think the other thing is there's going to be an interesting blip in this graph over time from going, because it goes 3839, then 310, and it's sort of this curve, what you would expect, like a normalish distribution. I think the performance that's coming in 311 is going to make a lot of people say, no, it's time to be cutting edge. We're going to get such a boost from it that we're willing to jump not just a 310, but to 311.

50:45 Trying to pull up the graph here for us. There are some amazing numbers for that, and maybe the core I was on the team want to speak real quick to this, but Eduardo pointed out there's this article, if you all have seen it, this is the Python 311 performance. Benchmarks are looking fantastic, and it's kind of hard to navigate this thing, but if you cruise through here, you see some really meaningful performance improvements, like 40% for certain use cases and so on. So Brett Nimali, what do you think about this? More people kind of jumping over 310 to get to this faster?

51:21 Python I think in general you're right. I think when 311 comes out and people start talking about how they're getting bare minimum 5% and certain benchmarks 60%, which averages out probably roughly to 20% for most people, right. I think that's going to cause a lot of people to perk up and go like, yeah, we should jump. Now, having said that, there is the potential for compatibility concerns because so much of the internals have had to be upgraded and changed that if you're depending on extension module that there's some really deep mucking around with C. Python internals, they might have to spend some time still to get updated. So there might also be some cohort of users that get kind of held up because of that. But yeah, I suspect most people are not in that group and so they will be able to jump straight over and people are going to go, oh wow, this is much faster for literally just business reasons alone of just literally saving on your computer's costs.

52:15 Let's switch to failure.

52:17 I think this is going to be one of those you can go to management and convince them that you update your code because the amount of money you're going to save on your cost is going to be high enough that it's worth putting the time and effort in versus other times. Whereas the engineers coming into management going. I want the walls all operated. Let me have this. Right? And they go like, well, it's not worth it, just keep doing it now, like we can save 20% off for compute cost. Okay, yeah, let's go ahead.

52:41 Everyone will eventually get Emily's Walrus. Operator heller Highwater.

52:44 That means I'll probably for all eternity of octopus development, will be stuck on whatever is the latest that is still supported kind of thing or the oldest.

52:59 I mean, I'm happy I'm finally on three seven and not on two seven, but I hear Walrus operating and I hear matching and pattern matching and I hear all this stuff and it looks so amazing and I would love to play around with it, but maybe in five years or so, I don't know. For now, if you have to support something that people install on their OS providers and you are a bit out of luck.

53:22 Absolutely. Very interesting angle here that you're concerned by. All right, we only have time for one more. I want to find out how long people, two things actually. Let's just have a representative of the two major editors. Let's real quick, maybe Brett and Paul, give us your thoughts on if I'm going to use write some code. What editor do I use? Right. It's vs. Code and pi charm. Pretty close, neck and neck and then it just tails off. To some insane long tail after that. Honestly, this must make both of you pretty happy that playing such an important role upfront.

53:58 Yeah.

53:59 Python has been up there from the get go, the start of this survey, and us all spunky folk over at Vs Code have finally caught up to PyCharm because if you go back to 2017, we were you and all your extensions.

54:11 That's what it is.

54:13 Because if you go back to 2017 when this was actually added, we were 6th or 7th on that list. So we're fairly lucky that the community has decided that we are worthy, as it were, to be up there with Pyramid.

54:26 Awesome.

54:27 I think an interesting story for this is just smart editing in general when we're just looking at the distribution of Python releases. For me, I think it's 78% is 3.8 or higher, which is great news for me because I like the typing convenience type hinting conveniences that started to appear in three, eight and after. And it's just a wonderful surprise to me that the Python community values typing and values tooling that puts that to work to help you write better code. So from when I look at this, I see this to a degree as a demand for smart tooling. Smart editing.

55:06 Yeah. And I think that's a really good point. That not only I think it's two signals, it's one of the community, as Paul said, picking up on typing and smart tooling. I want to do that, but also the tool makers, speaking for myself, realizing that Python community is big enough and important enough to invest in it. Right. Because there's always been a conflict of smart tooling for Python is hard.

55:30 I don't want to do it right, which is honestly kind of good in a weird way because it led to us having such a good tradition of documentation, right. And people caring so much about this. I mean, I know what Michael and Paul have done around, missed their tutorials not coming up and being a thing, and we continue to carrying about our documentation tool and all that. But it's also, I think, just a showing of just where we've all come from all directions, both from a support perspective, the community perspective, and just getting to the point where everyone views this is totally reasonable and possible and something people can totally rely on and push on and the community going along with it and like, yeah, this is fantastic. We now have the equivalent tooling, more or less of other languages. Isn't this fantastic? Versus I don't want to use Python because they don't get autocomplete, right? Because I know that used to be a big complaint I used to get, which is once again the history of us pushing for good documentation, good names and caring and all that stuff, and API design. So I think, ironically, not having this at the start of the community back in the early 2000s actually has become a benefit long term because we have good practices that have now paid tenfold. Because good practices plus tooling now versus we'll just lean on the tooling who cares what the name is? Because everyone's just going to hit Dot anyway and just choose the first answer.

56:40 Yes.

56:40 You know you can't bring me on the show without knowing. I'm going to troll a little bit. So I just want to point out that the Vimmode users are winning in the war between Vim and emacs.

56:51 Yeah. It's three to one.

56:53 Yeah, I Believe that.

56:54 Yes. The notepad. Plus plus folks that are out there, too, but excellent. All right, well, we are getting a little bit long on time for everyone on the show's.

57:02 Time.

57:02 I could sit here and talk for hours about this. This is such a great panel to be here and talking with you all about it. It's Been Super Fascinating. So maybe we could just close this out with if you have any thoughts on where Python has recently come from and where it's going. I'll start it off with just WebAssembly PY script. Very exciting new pie slice of where Python might show up and make big impact. So thank you to everyone who's done that. In particular, Brett. And I know, Paul, you're working on Pi script stuff as well.

57:30 I'll just say I just hope the community continues to be as fantastic and wonderful as it is. I'm sure Emily and anyone else who got to be a python in person this year, got to relive that experience after a two year hiatus and got to see it still alive and thriving. And I mean, I've said this before because I just said I came from language by stage for the community, and I continue to stay for the community. Right. I literally just had a career conversation with my manager last month, and I opened with, say, the reason I'm here and the passion I hold is for this community. It's not even specifically for the language anymore. The language is the enabler to allow me to help bring more wonderful people to this community and to help others get to enjoy and benefit from this community. And I hope that's the future is this community continues to thrive and grow and be that open, welcoming place for everyone who needs that place in their lives.

58:10 I just want to say seven years. It took me seven years to go from. Hey, this python thing looks cool. I would love to work with this in my day to day to now I'm in a job where my focus is working on python. And I don't think that part of that is just me being persistent. Ornery I guess but then, like, the other part of that is the fact that the community continues to grow, the resources continue to grow. I feel Emily's pain with working with Ruby. My first programming language was learning Ruby. And the thing that made me switch from Ruby to Python was that community. So we have a couple of Psf folks and core maintainers here. Thank you for making the language what it is, but also thank you for making the community what it is, because without it, I don't think I would be in the role that I met today.

58:54 I would like to just hook into this as well because I went to my very first German Python in 2018. I felt utterly out of my space. I had a large impostor syndrome because who was I was this open source project maintainer who had actually selftaught herself, Tyson, because she developed a project in that. And now I had the courage to go to a Python and I sat there and people just started talking to me and I had some very nice chats. And actually the next Python, I held my first org at one. So I cannot say that I have ever felt so welcome in the community ever before, that it applies to me. Thank you very much for that.

59:33 Yeah, that's awesome. Yeah, that seems to be a common trend on our Talk. I actually started out programming with Java, then I moved to Ruby and other people here did, and then I didn't feel like the community wasn't as supportive. And then when I moved to Python, it was just like light bulb came on and the community has been absolutely amazing. So thank you to everyone who supported me in the community. Thank you to our core developers as well. I'm definitely excited to see where, of course, for Pi script goes and also to see where some of the other types of things though, like mobile development and game development as well, looking at.

01:00:09 All you hear on the screen and just realizing what a great community it is, what awesome contributions you all have made. So thank you for being on the show, thank you for reflecting on the survey and the state of community with me. It's been great to have you here. See you all later.

01:00:21 Thanks, Michael.

01:00:22 Thank you. Bye.

01:00:24 This has been another episode of Talk Python to me. Thank you to our sponsors. Be sure to check out what they're offering, it really helps support the show.

01:00:33 Take some stress out of your life. Get notified immediately about errors and performance issues in your web or mobile applications with Century. Just visit Talk Python FM Century and get started for free. And be sure to use the promo code hawk all one word. Listen to an episode of Compiler, an original podcast from Red Hat Compiler unravels industry topics, trends and things you've always wanted to know about tech through interviews with the people who know it best. Subscribe today by following Talk Python FM compiler want to level up your Python? We have one of the largest catalogs of Python video courses over at Talk Python. Our content ranges from true beginners to deeply advanced topics like memory and async. And best of all, there's not a subscription in site. Check it out for yourself at training. Python FM be sure to subscribe to.

01:01:23 The show, open your favorite podcast app.

01:01:25 And search for Python. We should be right at the top. You can also find the itunesfeed at itunes, the GooglePlay feed at Play and the Directrssfeed atrssontalkon FM.

01:01:37 We're live streaming most of our recordings these days.

01:01:40 If you want to be part of.

01:01:41 The show and have your comments featured on the air, be sure to subscribe to our YouTube channel at talk. Python FM YouTube. This is your host, Michael Kennedy. Thanks so much for listening.

01:01:51 I really appreciate it. Now get out there and write some Python code.

Back to show page
Talk Python's Mastodon Michael Kennedy's Mastodon