Visit our site to listen to past episodes, support the show and sign up for our mailing list.
Summary
We got the chance to talk to Jessica McKellar about her work in the Python community. She told us about her experience as a director for the PSF, working as the diversity outreach manager for PyCon, and being a champion for improving the on-boarding experience for new users of Python. We also discussed perceptions around the performance of Python and some of the work being done to improve concurrency, as well as her work with OpenHatch.
Brief Introduction
- Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
- Subscribe on iTunes, Stitcher, TuneIn or RSS
- Follow us on Twitter or Google+
- Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+
- I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at
- We are recording today on Aug, 12 2015 and your hosts as usual are Tobias Macey and Chris Patti
- Today we are interviewing Jessica McKellar
Interview with Jessica McKellar
- Introductions
- How did you get introduced to Python?
- Attended MIT, originally for Chemistry
- Had friends pursuing CS degrees
- Toolset and skills seemed worth investingating
- Led to BA and MS
- MIT was in transition from LISP to Python
- Can you describe what your responsibilities are as a director of the PSF?
- A lot of outreach and investment in the community
- Do you think the PSF does a good job of making people aware of what it is, what it does for the community, and how they can help?
- Struggled with this historically but has gotten better in recent years
- Website re-design has helped
- A large focus of your work in the community has been around improving the experience of users who are new to Python and programming in general and I noticed that you just received the Frank Willison Memorial Award for your contributions to outreach and education in the Python community. What is your motivation behind this particular focus?
- Great deal of empathy for newcomers due to personal history
- Knowing how to program changes how you think about the world
- Has the situation for newcomers running Windows who wish to try Python gotten any better since your keynote at Kiwi PyCon?
- Some vaguaries of setup have gotten better with recent versions (e.g. setting path variables)
- Ruby has in-browser tutorial to get people hooked
- Do “Batteries Included’ distributions like Anaconda help or is it the same problem of visibility you discussed in your talk?
- Informatino flow / what are you default options question
- We could be much more opinionated about this
- You have presented a number of times about the future of Python and how we can all help to make sure that story is a happy one. How has the material for that talk changed over the past few years?
- As a largely volunteer community, how to maximize the impact of the bandwidth that we have
- Focus on the ‘top of the funnel’ to win over new users
- Python has the steepest positive curve of any language
- Community should invest in AP high school Python curriculum
- What do you anticipate will be the talking points for this topic over the next few years?
- We need to be smart about which areas we invest in to ensure success e.g. mobile, web, desktop.
- If you could grade the Python community on how well they have listened to and acted on the calls to action in your talks over the past few years, what would you give them?
- Rallying large groups of volunteers is a hard problem
- We need to think about commercial partnerships in key areas
- In your Kiwi PyCon talk you mentioned Kivy as an example of a great way to do mobile software development in Python. It feels to me like the Kivy team are still not getting the community involvement and buy in they should. How can we help make Kivy the mobile app development platform of choice for beginners?
- This will be a tough battle because Python is not the default platform for mobile compared to Java for Android, Objective C, Swift
- Users vote with their feet depending on what provides the most value to them
- Opportunity for a virtuous cycle here
- Game development as an entree to programming has been a recurring theme on our podcast. Has the Python game dev scene improved at all since 2013? And do you still see the same pitfalls holding people back (like app packaging), or have we moved on to different problems?
- The problems are largely the same
- Status quo still feels pretty broken
- Creative experiments around this definitely make sense for the community
- KivEnt could be a win here because Kivy apps are free standing binaries and require no dependencies.
- What do you view as the biggest threats to the popularity of Python currently and what can we do to address them?
- Other languages gaining popularity where Python has historically been strong (e.g. server-side development)
- A lot of this may be a perception issue
- May be largely a marketing problem
- I understand that you were involved in the formation of the Open Hatch organization. Can you describe what Open Hatch does and how our listeners can get involved?
- Non-profit dedicated to lowering barriers to entry for open source contribution
- Host workshops in colleges, underserved communities, etc.
Picks
- Tobias
- Chris
- Jessica
- Reply All Podcast
- RFC 959 – original FTP RFC
- Go read some RFCs!
- Think Stats
Keep In Touch
- Google for “Jesstess”
Conference Presentations
Hello, and welcome to podcast. Init, the podcast about Python and the people who make it great. You can subscribe to our show on iTunes, Stitcher, or TuneIn Radio, or you can add our RSS feed to your podcatcher. Please follow us on Twitter or Google plus with links in the show notes And please give us feedback You can leave us a review on iTunes Send us a tweet, send us an email, or leave us a message on Google plus And I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show, you can visit our site at pythonpodcast.com. We are recording today on August 12, 2015, and your host as usual are Tobias Macy and Chris Patti.
Today, we're interviewing Jessica McKellar. Jessica, could you please introduce yourself?
[00:01:02] Unknown:
Sure. Hi, everyone. So, my name is Jessica. I live in San Francisco. I run an engineering group at Dropbox and I'm, I just want a pretty long time contributor to the Python community. In particular, I was a director for the Python software foundation for several years. Back in Boston, I was an organizer for the Boston Python user group while it grew to become the largest Python user group in the world. In large part due to a bunch of very concerted diversity outreach initiatives that we were running that I'm quite proud of. I've also been the diversity chair for PyCon for the past several years.
And I I spend a lot basically, all of my travel is around attending Python conferences much to the consternation of my husband.
[00:01:44] Unknown:
So how did you get introduced to Python?
[00:01:48] Unknown:
Yeah. So I, so I went to MIT, although initially to pursue chemistry. I was 1 of those I was 1 of those, Science Olympiad nerds in high school. I was actually president of the Science Olympiad team, and I, you know, through those experiences through my chemistry classes in high school, I really thought that I was gonna be a chemist and that's what I declared. I have I have a bachelor's degree in chemistry. While I was pursuing that degree I had a a bunch of friends who were pursuing computer science degrees. And so looking at them out of the corner of my eye, I noticed that they were learning what seemed like this really compelling toolkit full of tools for solving sort of arbitrary important problems in the world. And that felt pretty different honestly from what I was covering my chemistry classes. I I love those but it seemed like a pretty different set of skills, and a set of skills that, might be worth investigating.
So I ended I ended up taking a couple of computer science classes to test the water, got sort of immediately hooked, and ended up getting a bachelor's degree and a master's degree in computer science. There was sort of a long way of getting to the point that I was actually I was at MIT right as we were transitioning from Lisp to Python for a bunch of our core classes. And so my my exposure was through was through school, through university, like, right as part of this transition. So about half of my classes were in Lisp and half were in Python. I mean, that was my very first exposure. But then I ended up using Python for basically all of my internships and I've used Python with every job that I've had outside of school. So I I've I've I'm the I've been a founder for, or a participant a participant or a founder in a couple of startups that have been acquired. That's part of how I got to Dropbox, and all of those startups have used Python. And and Dropbox is actually perhaps the the largest distributor of a of a Python application in the world at this point. Dropbox has about 400, 000, 000 users, and, you know, our our desktop client is written in Python.
[00:03:36] Unknown:
So that's kind of a long answer to your question, including a lot of extraneous details, but I I learned Python in school and then I've used it ever since. No. It's all valuable information. We appreciate the background. It's always nice getting a lot of rich detail about people's experience with Python and how you came in contact with it initially. So, no, definitely appreciate that. And how it evolved into taking part in something like Dropbox, which as you said, sort of like behind the scenes
[00:04:03] Unknown:
leverages Python to make people's lives better every day. So that's very cool. Thanks.
[00:04:08] Unknown:
Cool.
[00:04:10] Unknown:
So can you describe what your responsibilities as a director of the PSF were?
[00:04:15] Unknown:
Yeah. So the the PSF is, does not attempt to steward the language. You know, the Python core developers and the associated community are really driving the direction for that. Actually, I could mention that, Guido does work at Dropbox, so I see him every day. Although he's on vacation right now. But the so the PSF is much more, focused on stewarding the community around the language. And this is everything from underwriting PyCon to, so we're we're a 501c3 nonprofit, so we're able collect and disperse funds as a nonprofit to various initiatives. We we we support a bunch of user groups. We we we finance a bunch of Python. Not just conferences, but like local user group events, workshops, things like that. We have a dedicated outreach and education committee that I co chair that, specifically focused on sort of Python in education and bringing Python to to new populations.
So a lot of this is around outreach and the community sort of spending money to invest in the community.
[00:05:16] Unknown:
So do you think the PSF does a good job of making people aware of what it is, what it does for the community and how they can help?
[00:05:24] Unknown:
Yeah. Yeah. That's a good question. And it's it's it's a great question because it's definitely something that we have historically struggled with. I think we're doing a lot better, these days in part because we have some folks who are dedicated to the comms side of things. So we have someone who is like dedicated to writing blog posts, managing some of the social media, and things like that. There there's certainly, I think, more that we could do. If you, like, if you if you pretended that the PSF like, the Python, the Python community were a startup and and, like, you had a marketing budget and how would you spend it, you would probably spend it a little bit differently from how we do as this fairly loose collective of open source enthusiasts. But we we definitely gotten a lot better about this over the last year, I would say. A thing that was, it was maybe a little bit painful to to fully realize the fruits of the labor, but the the website redesign was actually a really big deal.
Because I don't know if people remember the old Python website at this point, but it it it looked like it was from the early nineties and didn't look like like the language of the future. And, like the way that you present yourself, your first impression as a language really does make a big difference for for new users and potential users.
[00:06:35] Unknown:
Yeah. I can definitely I remember when the update to the site was happening and seeing some of the previews and looking at that versus the old site. It's definitely very much improved and it was definitely a good step in the right direction. And actually, if you're looking at different spots in the Wiki, you can still see the old site design.
[00:06:54] Unknown:
Yeah.
[00:06:56] Unknown:
So a large focus of your work in the community has been around improving the experience of users who are new to Python and programming in general. And I noticed that you just received the Frank Willison Memorial Award for your contributions to outreach and education in the Python community. What is your motivation behind this particular focus?
[00:07:15] Unknown:
Yeah. Well, it's it's probably at least twofold. So 1 is that I I have a great deal of empathy for the new user and the beginner because I started programming, I wouldn't say late in life, but compared to a lot of my friends I felt like a real latecomer. You know, I was not 1 of those wunderkind who was programming when I was 4 or 5 years old. So I have a lot of empathy for the the the new user and the beginner, and I and I just had this natural sort of love and desire to support that population. The other big reason is that, you know, I think that that knowing how to program, changes the way that you think about the world.
It's this incredibly empowering experience where you you when you realize that, a bunch of these things that exist, you have the ability to change. Things that seem impossible, because of the scale or the scope or whatever, you have the ability to automate. And that's an incredibly powerful experience to have, and I want as many people as possible to have that experience. And if you want a lot of people to have that experience that necessitates sort of focusing on the top of the funnel which is people who are new to programming and who are who are new to Python. So a big part of this for me is just it's it's, you know, a lot of what I do is also focused on diversity. Outreach and a lot of this is about empowering people in a way that I think is is actually incredibly meaningful in in in this world. And that, like, programming is just incredibly powerful tool and I want lots of people to have that experience.
[00:08:42] Unknown:
Yeah. I can definitely relate to your experience and your thoughts of coming to programming later in life because like you, I didn't start programming until I actually until until I was into my early mid early to mid twenties. And so I definitely have times where I think, oh, well, if only I had been programming 10 years earlier or whatever. I've gotten introduced to it a little earlier. But, this is 1 of those things where you start where you start and you make the best of it. And I think that with enough motivation, anybody regardless of when they start in life can make a really big impact and gain a lot of valuable experience in programming.
[00:09:23] Unknown:
Definitely.
[00:09:24] Unknown:
Has the situation for newcomers running Windows who wish to try Python gotten any better since your keynote at kiwipycon?
[00:09:32] Unknown:
Yes. So so some things have. In particular, at, like, right around that time, I think we were rolling out the the release that changed some of the setup work that you have to do. It I don't know if people in the audience, like, if you think back to if you've ever had to set up Python on Windows, you do a bunch of goofy stuff, like, you have to set, like, various path environment variables and other things that are incredibly arcane to to new programmers. And some of that now, happens under the hood for you in newer versions of Python. So that is, like, a very concrete win, and I'm super glad that's gone out. I would say that the state of the world is still not as great as it could be on a bunch of dimensions. I mean, not even just so so like the experience of having to install Python, possibly needing to install a compiler, depending on what you need to use. That there's still a lot of pain there that could be abstracted away.
Also, that so the onboarding experience for for new users, Windows or otherwise, is I actually, the state of the art there has evolved quite a bit, and I think that there's an opportunity for the Python community to look towards some of our sort of pure languages and and learn a lot from from those, through the innovations that they've had. Like a really concrete example of this is, like, if you go to the Ruby website, they have an like, a really slick in browser learn Ruby in in 10 minutes experience that does a really good job of hooking you without requiring any installation. It's all in browser. And I think we have a real opportunity to invest in some of those really early experiences for new users. This is not specific to Windows, but it would certainly impact anybody who wants to start learning Python.
[00:11:10] Unknown:
Absolutely. Because having to do any kind of installation process at all for really new users can be intimidating and being able to just say, look, you have a web browser. This is something that you use every day. You don't need anything else. Just go here and and get a sense for it. That that that could be a big win. So so leading into our next question, do batteries included distributions like Anaconda help, or is it the same problem of visibility you discussed in your talk?
[00:11:38] Unknown:
Yeah. So it's some of this again goes to, like, the very, very earliest taste of Python and, like, where do you where's the right place for you to experience that? Is that on your computer after you've installed some software or is it in the web? And that's like a really interesting conversation to have. And then the thing about Anaconda and these other installations is that, like, how would a new user know that that's what they're supposed to do to have the easiest experience? There's like an information slash what information flow slash what are what are your default options question here that I think we could become more opinionated about in our onboarding material.
This is this is getting pretty tactical, but I I think that we could it would probably be really healthy for us to do a, like, a a pass at the way that we onboard new users and pick off, like, the the 5 pieces of lowest hanging fruit, and that would have a ton of impact. And 1 of these things might be having a very pointed recommendation about what version of Python or what sort of Python ID you install or or whatever. Just having some strong opinions there so that new users don't have to go, like, research the debate for themselves.
[00:12:45] Unknown:
Yeah. That ties into the whole convention versus configuration debate that has been going for a long time around languages, frameworks, various other tooling, and how the frameworks such as Rails or Ember that just have a lot of this is how you do it. You don't have to think about it. It can really take a lot of the load off of the person using the framework because they don't have that cognitive load of okay. They you you have all of these decisions to make before you can start to write your first line. So having that in terms of the sort of newcomer startup kit, I think would definitely be very valuable because it does it would remove all of those initial choices so that you can just focus on getting introduced to the language, starting to tinker with it. And then as you go through that, you can start to say oh well this particular tool in the kit doesn't work exactly how I want it to. And then you can start investigating what your alternatives are. So that definitely makes a lot of sense.
[00:13:49] Unknown:
I also feel like you mentioned using taking examples from our peer languages. I think something like Go has benefited tremendously from this in the sense that the people who designed the language made an awful lot of this is the way to do it, like, decisions around it. Right? Like, this is the officially sanctioned Go coding style, and these are the officially sanctioned Go tools, and, you know, it just it it it makes the sort of, as you said, the onboarding process, even though they their tools are not necessarily as polished as even Python's are in some respects, the fact that there is only 1 way to do it and it's very clearly documented and and very easy to wrap your head around makes it easier for people.
[00:14:37] Unknown:
Yeah. I would argue though that Python does have a better story around some of that than maybe some alternative languages because of the heavy emphasis on the Zen of Python and the 1 obvious way of doing things. You know, there's definitely dozens of options of ways to do things but at least particularly with the standard library having so many different batteries included, it can reduce the need to reach out to 3rd party libraries just to get going. So it removes some of that inertia and confusion if you just tell people, okay, just focus on what's in the standard library for this particular set of tasks. And then you can start exploring what the greater ecosystem has to offer. So you have presented a number of times about the future of Python and how we can all help to make sure that story is a happy 1. How has the material for that talk changed over the past few years?
[00:15:33] Unknown:
Yeah. I, the thing that I'm thinking about the most these days is about the fact that we, as a largely volunteer driven community, are are necessarily resource constrained and how to sort of maximize the impact of the bandwidth that we have and, like, how to be how to make convincing arguments about the things that are highest impact and then incur getting people to go do them. And so this is increasingly focusing on some of the exactly the things that we've been talking about about the top of the funnel. You know, what what makes languages successful well, there there are there are a couple of things that go into making a language successful for the long haul, but a very important part of it is, like, continuing to win win over new users in a variety of context, have them fall in love with the language, and then contribute back to the ecosystem. So that top of the funnel is really important.
And this this this implies and, you know, and we should we we could and should be metrics driven around this. Again, like, if we were a startup, we would be measuring this stuff better and and and, like, reflecting on the metrics, and then using the metrics to inform the way we prioritize what we work on. But what what what is probably true based on just observations of the community is that we we should be investing more time in those very early experiences. The way that people, like, hit python.org, install our software, and, like, their first 5 minutes in, you know, their first 5 minutes of the REPL or possibly their first 5 minutes in the browser, whichever, you know, ends up being the more compelling experience. And then another big part of this is, whoever wins in education has a huge leg up for the longevity of the language.
I would like Python to be a language that that people still wanna use 10 years from now, 15 years from now. It has a bunch of, like, really really great properties across a variety of of of areas. And and a really good way to ensure that is for it to be taught in high schools and in universities. And so there's this whole separate question of how you ensure that that happens, if that's if that's a good choice, as a learning language. And and Python actually has the the steepest positive trajectory of any language, in universities. There are some folks who track this. So the the the data on this is looking very good, but I think we could make an even more concerted effort in this space. Actually, very very exciting. I mean, I've talked about this before, but, there's actually a new well, so okay. So I I live in the United States, and I took, the advanced placement computer science, class when it was taught in C+ in in high school.
And a lot of people have, like somewhat tortured memories of their high school computing classes, often derived from the AP curricula, which tend to be, like, quite quite dry. And there's a new advanced placement, a computing class that has been developed and is just about to come out of pilot. It's a computing principles class and it's much more focused on the way that you can use programming to have an impact in the world. It's much more interdisciplinary, and it frankly has like a much more engaging curriculum. But 1 of the really interesting things about this AP class is that it does not specify the language of implementation.
So there's a real opportunity for Python like, if this AP class takes off, and honestly I I think it will because of how compelling the the general curriculum is, there's a real opportunity for Python to get into the hands of a lot more people before university through this program. Like, if we're very smart about being available to teachers and collaborating with teachers to develop the the Python curricula around the general framework for this AP class. Like, that would be a very exciting concrete thing for the Python community to invest in.
[00:19:24] Unknown:
Yeah. Having the earlier introduction, as you mentioned your in your talk, it really gives people a good grounding in the language. And also when they do go out and start building things, they're more likely to use Python as that language.
[00:19:39] Unknown:
Oh, yeah. It's not an accident that the the startups that I've been a part of have all used Python. It's like we were running MIT nerds who came out of MIT having learned Python.
[00:19:48] Unknown:
Yeah. Definitely. And although on the con conversely, personally anyway, when I was in school, I was learning with c plus plus and Java and quickly fled that as soon as I started picking up Python. So the early introduction is important, but it also needs to be a language that is easy to think and reason about. And not to say that Java isn't necessarily, but as anybody who has ever used both Java and Python can attest, Java is definitely much more formal in terms of its programming style versus Python. Whereas Python is a little bit more literate I suppose would be the way to put
[00:20:31] Unknown:
it. Sure. And some of this is, and like some of this may maybe is attributable to the language. Some of this is maybe attributable to the curricula that are easy to build around the language at the high school or middle school level. Mhmm. But it's a real it's a real problem for our community that AP Computer Science is the most gender skewed, AP class that exists right now. And, like, if we have an opportunity to help change that ratio, that's a pretty big opportunity for us. Because we, yeah, we suffer the downstream effects of of this skew even at the high school level.
[00:21:04] Unknown:
So what would what do you anticipate will be the talking points for this topic over the next few years?
[00:21:09] Unknown:
Sorry. For this topic, can you scope that a little bit? Sure. Yeah. So,
[00:21:14] Unknown:
going back to the previous question about how the future of Python I guess what the highest priority aspects of the Python community are? What we can be channeling our efforts into? What do you think will be the most high priority items over the next couple of years?
[00:21:31] Unknown:
I mean, what I honestly think should be the highest priority is again this top of the funnel question. Mhmm. So exactly as we discussed. I think there are some other really interesting conversations around how we're sort of and we're a language operating in a market that is evolving very quickly. Python doesn't have to win everywhere. You don't you know, Python doesn't necessarily have to be the language that you use, not only for your server side development, but also for your desktop development, also for your mobile development, and also for your, you know, brain to computer interface of the future. Like, we don't have to win everywhere, but we should be very smart about, continuing to be a very generally relevant language across a bunch of different domains.
And what that may require, if we're if we're capable of it, is this fairly distributed open source community is, like, putting in the work to ensure that we're still being successful in at least a couple of these key areas. Like, we may need to sort of really champion a couple of key areas where I think it's important for Python to still be a leader and still be really successful. And, like, maybe that happens organically through, again, being really smart about getting a bunch of new excited users across a variety of domains, or maybe it's through individuals who are real champions for that part of the ecosystem.
Maybe it's being smart about where we invest the dollars in the p s PSF. Maybe it's being really intelligent about partnerships, but it's a combination for me of, like, the education on top of the funnel thing. And then, you know, if 1 of the big value props of Python is that it's this really generally useful language, it needs to continue continue to be very generally useful, even as the market shifts.
[00:23:13] Unknown:
So if if you could grade the Python community on how well they've listened to and acted on the calls to action in your talks over the past few years, what would you give them?
[00:23:24] Unknown:
I don't wanna I don't wanna grade the Python community. I mean, every you know, everyone is is welcome to contribute to this in whichever way is motivating for them. And some people are really motivated to work on, like, nitty gritty bugs in our threading libraries. And some people are really motivated to teach Python at schools, and some people are motivated to do other things. And they're all totally valid. I mean, it's a hard problem to rally a bunch of largely volunteers to effect some of this change. I mean, I think a thing that is really interesting for us to consider, and I know people have strong opinions on both sides, but I think it would be very interesting for us to consider is if we believe that we need sort of consistent investment in some key areas, how do we ensure that that happens? And maybe the way that happens is that we're paying people or we're partnering with companies that have developers who are paid to make these contributions on behalf of the community. That's certainly the way that it works with other, you know, some other large open source projects. The Linux kernel is, of course, a classic example of this these days. And that would be a a pretty interesting, conversation to have at least.
[00:24:34] Unknown:
Absolutely. You know, there's absolutely no doubt that when you have the the the sheer resources of a company behind you that it it just it it greases the skids. Right? I mean, like, if you have people who can say, you know, x percent of my time is officially sanctioned for contributing to the Python, you know, blah blah project, then you just know a lot more commits are gonna happen. You know, it's gonna get a lot more consistent support. The user community is gonna be a lot better taken care of. It just it really makes a huge difference.
[00:25:11] Unknown:
Yep.
[00:25:13] Unknown:
So in your Kiwi PyCon talk, you mentioned Kivi as an example of a great way to do mobile software development in Python. It feels to me like the Kivi team is still not getting the community involvement and buy in they should. How can we help make Kibby the mobile app development platform of choice for beginners?
[00:25:32] Unknown:
Yeah. That's a that's a good question. It's a you know, this this is a a tough spot for the language to be in when you have a default platform, which is not us for developments, for mobile, you know, be it, you know, Java for Android or Objective c or Swift for iOS, it's it's it's gonna be a tough a tough battle no matter what. You know, how do you get anything adopted? Well, hopefully it's providing a bunch of value that that when people have exposure to it, they they see the value and it makes them wanna wanna develop using these libraries and they contribute back to the ecosystem.
So maybe some of this is a marketing thing and just a brand awareness thing, and maybe there are some smart ways to to help with this around the the PSF partnering with Kivi on ways to increase awareness, running contests, and things like that. Maybe some of this is being really smart about getting mobile development, in Python into places like schools where they they already have a bunch of curricula around doing like fun mobile or game developments in in possibly other languages. But to be totally honest it's a pretty tough problem and like users vote with their feet on what is actually providing the most value to them.
Yeah. I don't have a great answer here, but I you know, it is 1 of those there's sort of there's the opportunity for a virtuous cycle here. Right? Like, you get if you reach a critical mass of people who are using a library and then who are contributing back to it, Like the functionality increases and becomes more relevant to more people, and you and that like caught, you know, that causes more and more people to discover, and then use, and then give back to the community in this virtuous cycle. And it would be great for us to hit that point with Kibby. I don't think we've sort of reached that critical mass yet.
[00:27:30] Unknown:
1 thing that's always impressed me about Kibby that, you know, you talk about, like, users voting with their feet around what gives them the most value that none of the other mobile platforms that you mentioned like Java for Android or Swift or Objective C for iOS give you. I actually, maybe Swift does. I'm not sure. But with when you develop an app in Kivi, it's not even just a mobile app. Right? It's a mobile desktop, like, wherever you can possibly care to run it app. And I would think that that could be a really big win for people who wanna develop applications that run on any platform, on the desktop, on the tablet, on their phone, whatever.
[00:28:10] Unknown:
Yeah. I totally agree. I mean, maybe it's an awareness issue. Maybe people need some great examples in front of them that inspire them to want to do this themselves. Yeah.
[00:28:23] Unknown:
Yeah. And also, I think 1 of the things that could help with adoption as well for Kibby in particular is to have a bit more native feeling, widgets in their toolkit because I know that when, particularly in desktop, when people are designing desktop applications a lot of times they're trying to make it feel integrated into the overall operating system. Whereas, for instance, the Java swing interface does not. So that's why a lot of people tend to like to use, for instance, PyQt for doing desktop clients because the Qt widgets generally have a bit more of a native feel. Whereas with Kivi, all of their widgets are completely custom to the Kivi library but I do know that they've also been doing a lot of work recently to introduce more pre styled widgets so that there's a little bit less inertia for getting that getting the particular styling done because while you do have the complete freedom to add whatever styling and assets and what have you to a Kibbe app, it does require a bit of an extra upfront investment to actually generate those assets.
[00:29:40] Unknown:
So game development as an entree to programming has been a recurring theme in our podcast. Has the Python game dev scene improved at all since 2013, and do you still see the same pitfalls holding people back, like app packaging, or have we moved on to different problems?
[00:29:57] Unknown:
I would say the problems are largely the same, unfortunately. And some of these problems are are hard but tractable, but there there are still a lot of issues around around packaging, around the complexity of installing some of these libraries on some platforms. Yeah.
[00:30:17] Unknown:
It's it's interesting because, I mean, you know, I I don't mean to to to sort of harp or use it as a hobby horse, but I do also think that 1 of the 1 of the things that's making Go successful, and maybe even Rust too, I'm not sure, but definitely Go, not so much for games, but just in general is the fact that when you build a Go binary, it's very easy to package it up. So it's this completely standalone thing that requires no, you know, supporting libraries or anything else. You can just plunk the binary down where you wanna go, and you're done. That's it. And, I know solutions for this exist in Python.
I kinda wonder if if maybe that's like another sort of organizational thing of maybe we need to sort of, like, include some of these mechanisms in the standard distribution and give people better instructions on how to use them so that people know that you can do that kind of thing with Python and just produce a freestanding, you know, binary blob that they can just install. Right?
[00:31:16] Unknown:
Yeah. I definitely think the status quo here is is a tough spot for some some use cases, gaming being a really good example. I mean, just if you I I talked about this in the in the Kiwi pack on top, but like the when you read the reviews on these so there are a bunch of, like weekend or week long like game hackathons that happen online. And when you read the feedback about the the games written in Python, it's sort of heartbreaking. People are like, I refuse to do this. Like, I refuse to install Python to play your game. Or, oh, I've I've been there before. I definitely know that I'm not going to be able to get Pygame installed, so I'm just not even gonna try. So the status quo does feel pretty broken, and I think, like, some creative experiments about how to get around this, are definitely would definitely be worth worth our while in the community.
[00:32:04] Unknown:
Yeah. And I think that this is actually another spot where Kivy and the Kivent game engine can come in to help save some of that story for Python because there have definitely been a number of games written using Kivy and with the Kivant game engine as well to help provide better support for 2 d games. And a big part of the Kivi toolchain as well is the ability to more easily generate those binaries for the various platforms using their buildozer tool. So maybe with some better awareness around that whole ecosystem, we can improve the story for Python and get more people interested in creating games with Python.
So what do you view as the biggest threats to the popularity of Python currently, and what can we do to address them?
[00:33:02] Unknown:
I I mean, 1 of them is that there are languages that are seeing increasing adoption in areas that have historically been our sort of real core competencies and areas of strength. This is stuff around typically server side developments. And, like, why are they becoming more popular? I think some of this is around perception issues around performance, perception issues around maintainability, and that's something that we should think deeply about and and address proactively. And then I I think actually like like being insufficiently proactive about continue about continuing to fuel the top of the funnel and to be this language that new people are learning all the time is, like, the way that languages end up dying accidentally.
Like like, why why don't people learn Perl anymore? And how can we avoid falling into that trap?
[00:34:00] Unknown:
Definitely. And I know that there are some you know, what what are the biggest talking points that I see when people are talking about moving away from Python for various other languages is as you mentioned that performance story and particularly being able to support multi core without having to necessarily use the multiprocessing module and fork off a bunch of different processes, which can become fairly heavyweight. And I know that there's been some work done in a number of projects, including the Pypy STM and the piston project being done at Dropbox and also Py Parallel, which is being sponsored by Continuum Analytics.
So it'll be interesting to see how all of those projects progress and if any of them gain more widespread adoption or if any of those lessons learned from those projects end up making it back into the core Python distribution, rather the CPython distribution. That'll be an interest it'll be interesting to see the to see that happen.
[00:35:03] Unknown:
Yeah. I do think for what it's worth, a large part of this is a perception issue. And that a lot of folks are choosing other languages based on performance concerns, when in reality, Python is like, with the appropriate architecture, Python is definitely totally sufficient. And and what's interesting about that is, like, how do you fix how do you fix perception issues? Like, some of this comes back to, like, a little bit of a marketing problem. Mhmm.
[00:35:28] Unknown:
Yeah. Because a lot of, a lot of lip service is paid to the GIL and how that hampers our ability to do multi core. Whereas you said, using appropriate concurrency routines or even libraries such as Twisted or Tornado or GeoEvent to provide better async support for IO bound applications or even using something like Numba for numerical compute bound applications can get you where you need to be without necessarily having to switch languages. And then there's also the Cython project.
[00:36:02] Unknown:
I think I actually think and you talked about it being potentially a marketing problem. I think part and parcel of that and and kind of the way to solve that, right, is to get some of these projects that are solving these problems, like piston, like like pypy, like pyparallel, to get them sort of more out there, get them talking, get them more visibility. We'd love to talk to the pilot piston or or or pyparallelz folks. And I think sort of, you know, all of the other industry or community, efforts around awareness and marketing should do the same.
We basically need to stop bemoaning the gill and start emphasizing the positive side of what we're actually doing about it and how we're, you know, how we're working around these kind of problems every day. I mean, I know for a fact that there are a ton of people out there in in the real world using Twisted, and more and more asyncio as an example. In fact, we had 1 of them, the author of PTPython, he's using asyncio in his, in his project, and the folks from the IPython Notebook thought it was a really great way to implement things and they may be implementing his solution as part of the IPython core. So I think we need to do more of that sort of like really focus on what we're doing and how we're how we're walking the walk as opposed to the limitations.
[00:37:35] Unknown:
Oh, and you're mentioning IPython Notebook, got me excited to ensure to bring up 1 other point, which is, like, 1 of the great sort of accidental success stories of the Python community is how how quickly we've been adopted in various scientific communities. Like, when when a scientist sits down with an IPython notebook for the first time, like, their minds are blown and their lives are changed forever. It like, it's a truly incredible experience to watch. I have I I 1 of the, nonprofits that I work with is called Software Carpentry, which, is sort of dedicated to teaching software engineering fundamentals and best practices to scientists, and which is is great for scientists because it makes them more efficient. It helps with reproducible research, things like that. But, like, Python has become like a like a real darling of many parts of the scientific community, and that was a little bit of an accident. And that's something I think we should really embrace and invest in.
[00:38:33] Unknown:
Yeah. There's definitely a lot of focus on that particular, industry in Python. And we've actually had a number of people on the show who to talk about the various aspects of Python in the sciences and Python in data science and analytical applications. So it's yeah. It's definitely it's definitely nice to hear those stories and seeing where Python is gaining that popularity. I know that I think it was Travis Olyphant who we spoke with mentioned that there's also a similar organization to software carpentry called Data that's focusing on teaching those same skills to statisticians and analysts to improve their work.
[00:39:16] Unknown:
Cool.
[00:39:17] Unknown:
But, yeah, definitely some more topics that would be interesting to have in future shows. So I understand that you are involved in the formation of the OpenHatch organization. Sure
[00:39:33] Unknown:
Sure. So OpenHatch is, a nonprofit and a website dedicated to lowering the barriers to entry for open source contribution, and they do this in a couple of ways. 1 is through running hands on workshops, frequently, on college campuses, or in various underserved communities. So giving folks the opportunity to learn and then practice the tools of open source development through contributing to real projects. They also have so there's a website that has, a bunch of, sort of training missions for learning the tools of open source development. And there are some other aspects of this as well, like a project Rolodex, that helps you find open source projects that match your interests and and and skills.
So, yeah, this is near and dear to my heart, as you might guess, because it's all about sort of empowering a diverse set of people to harness the power of open source software and contribute back to these communities.
[00:40:32] Unknown:
Definitely. Yeah. And it's it's great to see organizations like that springing up from the Python community because that you know, in addition to being a phenomenal language, the community is really 1 of the biggest strengths of Python. And it's something that I've had people from other language communities as well mention how how well Python has sort of fostered that. And I think that having the PSF there to help steward the community along, I think is a huge part of what gives Python its particular strength. Whereas some other language communities are a lot more ad hoc, so they're not as able to organize around particular issues in the community as as cohesively as Python can.
[00:41:24] Unknown:
Yeah.
[00:41:26] Unknown:
So before we move to the picks, are there any questions that we didn't ask you that you think that you think we should have or anything that you want to bring up to talk about?
[00:41:35] Unknown:
Oh, dang. Not really. I'll see you all at PyCon, hopefully, as usual.
[00:41:42] Unknown:
Okay. Alright. Well, I guess then with that, we'll move to the picks, and I'll go ahead and go first. So for my first pick, I'm gonna choose an application that was originally written for Mac OSX and has also been ported to Linux. I don't know if it runs on Windows or not. It's called f. Lux. You might also pronounce it flux, and it is an application that just runs in the background. You give it your zip code so that it can know where you are longitudinally, and then it will determine based on when the sunset is for your particular location. It will then change the color tone of your computer screen so that you don't have the really harsh blue light shining on you once it starts to get dark. So that it reduces eye strain and it also reduces some of the issues that people experience in terms of not being able to sleep after using a computer screen, which a lot of that has to do with that particular blue light spectrum that comes from electronics. So definitely worth taking a look at if you happen to be somebody who uses their computer late at night frequently.
My next pick is a really interesting website and project that I came across recently called lightyear. Fm And what it does is when you load the site, it will start off with a picture of the earth, and then it will slowly accelerate away from the earth. And at each interval of distance, it will say, for instance, 2015, this is the song that you would be here be picking up in space if you were receiving our radio signals. And then it goes back all the way to about a 120 years ago to when we first started broadcasting radio signals just so you can see at which distances you start to hear the various different things that are permeating out into space. So just really interesting way to explore that kind of subject.
And for my last pick, I'm gonna choose PEP 401 which introduced the from future import various fluffle. So for anybody who has not come across this PIP, I definitely highly recommend that you go and read it. I won't spoil the fun, but I will say that it was originally introduced as an April fools joke by Barry Warsaw, and it is well worth the read. So, Chris, what do you have?
[00:44:14] Unknown:
So my first pick is a series of books of which the most recent came out, and I'm really excited because I like the series an awful lot. It's it's the it's in the category of books that's just entertaining and fun, and I plow through it like, you know, I don't know, like like popcorn. It's the Alex Veras series by Benedikt Jhaka, and it's kind of unique. It's urban fantasy, which is 1 of my favorite genres. And the main character, Alex Verus, is a probability mage, which is kind of interesting. So he doesn't have any flashy powers. He can't fling fireballs around or do any cool things like that. But what he can do, which is awfully neat, is if he's going into a situation, he can see all the potential futures that might come out of the situation and, you know, react accordingly, which makes for some awfully interesting plot lines. It's a great story.
I should say they're great stories. My second pick is Rick Dillon's org mode structure manipulation tutorial, which I know is a mouthful, but in the past few months, I have been converted to be 1 of the eMax faithful. And, 1 of the things that I had been hearing for years from Emacs folks is org mode is amazing. You have to see. It's great. You know, Avdi Graham wrote a great piece on it. And I had played with it, but I had never really sort of, like, actually kind of internalized what makes it so amazing or how I could actually leverage it. Now I'm an Outliner fan from from way, way back, so I I knew that there was some good stuff there. But this is the first time. It's just a short YouTube screencast that will really quickly introduce you to sort of, like, what I see as some of the really crucial nuts and bolts nitty gritty of what Org Mode is and why you should care. It's really great stuff, and I love the rest of his series.
It's called Hacking Emax and or Hacking Emax, excuse me. And it's, it's great stuff. I recommend the whole series, really. And my last pick is going to be a card game called Dominion, and, this has been around for quite a few years at this point. It's 1 of those games that it's not like, you know, super quick to set up or anything. It takes a little bit of effort to get to get going. But, when I was introduced to it, I was blown away by it, and every 1 of my friends that I've introduced to it has loves it now as well. There's a tremendous amount of depth to it. It is a deck building game, but unlike sort of, you know, a lot of the things a lot of the the card games that you might play, your your deck is this constantly growing thing throughout the game. You're just adding cards to it and adding cards. And each each turn, you sort of dole out a bunch from your stash.
And there's a tremendous amount of depth. It's it's really great. I won't I won't bother belibering it any further. I will just say that if you like to play games, then you should check it out. That's it for me. Jessica, what kind of picks do you have for us?
[00:47:14] Unknown:
Sure. So my my first pick is, I have the well, perhaps the blessing and the curse that I can't listen to music or anything while I'm writing code or while I'm processing email at work, so I have to make time for that outside of work. And as a consequence I spend a lot of time walking around the city while listening to music and listening to podcasts. And a podcast that I was sort of late to the game on given how obviously it ties into my interest is a podcast called, Reply All, which is a podcast about the Internet. And so they have, episodes on everything from, like, Internet lore from the early days to, like, did Errol Morris's brother invent email to, just a bunch of other like really sort of fun anecdotes about the Internet and what the Internet enables that, you know, I I find quite entertaining and are a wonderful way to spend my time walking around the city. So Reply All is a podcast that I very much enjoy and recommend.
[00:48:10] Unknown:
That sounds great.
[00:48:13] Unknown:
My second pick is, is RFC 959 or perhaps insert instead your favorite or least favorite RFC. RFC 959 is the original FTP RFC. I know more about it than I would care to due to some work that I've contributed to Twisted, which is an asynchronous networking framework written in Python. And it has the distinction of being, the only RFC that I've included in an email to a candidate that I was trying to sell at Dropbox, and we sort of bonded over like the woes of attempting to implement this RFC. So that was a good time and if you don't have an RFC that you love to hate, then you haven't read enough of them, and my pick is to go read a couple. And then my final pick is, a book by Allen Downey. Allen is like a wonderful wonderful contributor to the Python community. And he is a professor who has published a bunch of incredibly popular books including Think Python, which is actually my like Think Python is the book that I recommend to new programmers if they want to learn Python through a book.
But my my pick here is he's written a book called Think Stats, which is sort of an introduction to statistics, using Python. I hadn't taken a statistics class since I was in high school. I remember absolutely 0 of it, and I'm looking forward to starting to work through this book this month to pick back up some of that material.
[00:49:36] Unknown:
Yeah. We actually had Alan on the show a few weeks ago to talk about some of his work in teaching Python and also his work on the books that he's written. So it's always interesting seeing how our various episodes tie together. But yeah, I'm definitely looking forward to reading that book as well because I too have been working on brushing up my statistics knowledge. And so far, I've been trying to go through the Udacity course, but I think that reading Think Stats might actually be a little bit more effective. So thank you for reminding me of that. Cool.
Alright. We really appreciate you taking the time out of your day to come on the show and talk to us. For anybody who wants to follow you or get in touch with you to talk about what we discussed here or some of the other work that you've done, what would be the best way for them to do that?
[00:50:27] Unknown:
Sure. So I'm super easy to get in touch with. So if you just Google for jestess, I own sorry, j e s t e s s. I own that everywhere. You can find my email address. Definitely feel free to shoot me an email, hit me up on Twitter, all of that.
[00:50:39] Unknown:
And so like Tess is my middle name. It's not a made up name. So I'm Jessica Tess. I have a rhyming set of names. Okay. Alright. Well, again, thank you very much, and we really appreciate you coming on the show, and I'm sure our listeners greatly appreciate it as well.
[00:50:54] Unknown:
Cool. Thank you for having me.
Introduction and Host Welcome
Interview with Jessica McKellar
Responsibilities as PSF Director
Focus on Outreach and Education
Onboarding New Python Users
Python in Education
Future Priorities for Python
Mobile Development with Kivy
Game Development in Python
Performance and Perception Issues
Python in Scientific Communities
OpenHatch Organization
Listener Picks and Recommendations