 I'm happy to be here. I want to tell you a little bit today about some of the things that I've been thinking of in terms of the future of Python and the Python community. So I call this what lies ahead, Confessions of a Dubious Futurist. And I do have down at the bottom my contact information if in case you want to dispute something that I have said or say something to me about that. And also, I will point out that at the very bottom corner there, which, OK, so I kind of guessed wrong. It's a screen layout and whatever may not be the easiest to see, is just a link to these slides in case you want them. You're welcome to that if you want. So I'm going to start by talking a little bit about the PSF just because, in fact, everywhere I go, people seem not to have heard much about it. So at the end of this 40 minutes or so, you will have heard about it. Python Software Foundation, this is our official mission statement. The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language and to support and facilitate the growth of a diverse and international community of Python programmers. What that means is, first of all, we want to make sure that as many people who are interested in the Python language and the Python community join us. So I would please encourage you, if you consider you're at all interested, to go to python.org slash PSF slash membership and read about membership. There's a free membership. There is a $99 per year supporting membership, which is something that if you, I guess, I think the way I look at it is certainly in my case, too, is if you make a living from the Python language, this is a way to give back to it as a professional thing. So you can look at that. And better than that, if you do that, even the free membership, I've got a special PSF member sticker for you, so see me. This is the hook. This is the thing people can't resist. So I do have stickers. I'm also the chair of the board of directors of the Python Software Foundation. And what we do is make sure that what we think is happening is happening. We try to make sure that we have sufficient resources, i.e. money, to carry out what we want to do. And we set the strategy and direction for the foundation going forward. So that's why it's important that everyone who is a member actually votes and our board member elections don't close until the end of tomorrow, anywhere on Earth. So you have at least 36 hours to vote if you're a member. So you should do that. And what happens is what we, as the Python Software Foundation, worry about is community. As I said, we also hold the intellectual property of the Python language. Somebody needs to own the rights to the language, even if it's open source. So we do that. And we worry about the trademarks, all of that stuff. And as well, the PSF puts on PyConUS, which gives us, well, in excess of $200,000 worth of profits that we give to workshops, Django Girls, PyLadies, to PyCons around the world. This is a unique event in that it is a Python conference that is going to give the PSF money rather than ask the PSF for money. So this is an historic occasion. And we're really happy about that. And we hope it continues, because we can use the funds to give to other people who need it. So all of those things. And then as I say, I'm chair of the board of directors. So my job is to make sure the board does what it does, which is job is to make sure that everything happens, all of that. And what that means is that I have to be a futurist. If we're worrying about strategy, we have to have some expectation. OK, I know I feel better. So I have to be a futurist. And I've always liked the notion of a futurist. I think this is going to be a perfect job, because when you're a futurist, you can make up all of these things about the future, and nobody ever checks. So whatever I say, about five years from now or whatever, almost certainly you're not going to check. And even if you do, I'll just say, eh, you're right. Got that one wrong. And nobody cares. So this is interesting. So this is my attempt to be a futurist. In fact, my qualification for being a futurist, I can promise only one thing for sure. And that is that I am impossibly old. I am looking around here. Probably one of the oldest people in this room. I promise you I'm older than you think I am. I have been around for a long time. And here I want to do an audience participation thing. I think Mario asked who was at their first Python event. But I want to know how many of you are fairly new to Python, been using Python for less than a year? OK, that's great. I've got something for you, so stay tuned. Five years, less than five years. OK, that's a lot of people. Less than 10 years or less. OK, 15? OK, more than 15. OK, yeah, there are a couple of us. Yeah, I know some of you. So here's where I need to stop and throw in a commercial. I do actually have a Python book that is aimed at those of you who are new to Python but no programming. It's not a learn to program book. My third edition just came out. I have some free ebook codes for those of you who fall into that category so you can see me. While they last, as they say. And also, we didn't do an official sponsorship, but my publisher Manning did send me a particular 40% off code for everybody at Pylandinium. So there is that code there, CTWPylandinium18. If you go to Manning.com, you should get 40% off. If not, let me know, and I will yell at them. So that's the end of the commercial. OK, so I started Python in 2001 at Linux World. So I actually know the day I learned Python. And it was at a workshop done by Guido van Rossum. This is actually a slide from when he did it a few months later. I couldn't find a copy of this slide from 2001, so that's a 2002 slide. But we were there. The hot new thing was Python 2.1. And I thought it was a fascinating language. I remember asking a certain number of fairly dumb questions. And I was really excited. I was working at a school at the time as the director of technology. And we made everybody, when they were like 14 or 15, they had to do a class where they actually wrote programs. So I was really excited to find Python, because I was facing the prospect of teaching every 14 or 15-year-old in the school Java. And instead, I could do it with this. On the plane back home, I rewrote the curriculum so that we could use Python. So that's how great it was. And then we used it for writing software in the school and doing other things. So what I'm doing here is I'm trying to wind us back to about that time to see sort of what things were like then. They were different. Sometimes we forget. I was having a discussion the other night with someone how we tend to forget that we didn't always have smartphones. Well, so that was my phone. Maybe some of you had a similar phone. This was the mobile revolution. We thought we were pretty darn cool. That was my tablet, Handspring Visor. I never quite got the hang. You had to use the special alphabet when you wrote on the little tiny touch area to get it to interpret it. I never quite got the hang of that. It never understood me entirely. And that was my laptop. And yes, I did have that sweet little docking station that had both a floppy drive and a CD-ROM drive in it. And that was like a 333 megahertz Celeron. Yeah, I was cool. I ran Gintu Linux on it. In fact, any of you who are Linux geeks will know it took me like an entire weekend for it to compile X Windows so that I would have a graphical interface. That was part of the install process, one weekend of building stuff. So what about Python back in those days? This is from the very first PyCon, which was in 2003. I don't think Steve is here yet. This is Guido van Rossum and Steve Holden, who is the chair of the first PyCon. And Steve was around yesterday. I think he's going to be around later on. So looking much younger, obviously, this was the first state of the Python union address by Guido at PyCon. And this was actually kind of brought to mind because Tanya Slusser and Hailey Hoyet at PyCon this year had a poster where they went back and they dug up all of the talks that they could find for PyCons from 2003 through 2018. And I think they got some EuroPython talks in there as well. I don't think they got most of them. So they were just trying to see what things we were thinking about. And this is kind of where I want to be, too. So we were defensive about a few things in those days. We were very, very aware that Perl was the competition. Every Unix or Linux system came with Perl. Not every system came with Python. Perl was the language they used for all of those things. So we were very aware of that. It's kind of funny looking back now because I haven't heard anybody worrying about Perl for a long time. But even if you look at the Zen of Python, it says there should be one and preferably only one obvious way to do it. If you remember, what was the motto of Perl? There's more than one way to do it. So we were deliberately thinking about things like that. We were a little bit defensive about this whitespace stuff because people kept saying, huh, I would never use a language that formatted, controlled the code for blocks by whitespace. Come on. This was somehow an awful thing. And this was in an era where I remember endless flame wars on C mailing lists about where you place the braces and how much you indent or don't indent and things like that. And yet there were people saying, oh, we could never use Python because it's got whitespace. But this was something that we thought about. I mean, again, if you do your Python digging around, if you do from future import braces, you will get the error message, not a chance. So again, we were thinking about these things. And then we had a certain amount of inferiority complex about being just a scripting language, not a real language, whatever that might mean. And that, again, was something that I think it was in the first PyCon. There is actually a talk entitled Scripting Language MyRs. So again, these are things that we were concerned about that maybe now we don't think about so much. What were we interested in? If you go back and look at the first PyCons, you will note that we were really, in terms of web frameworks, everybody was into Zope. Or if they weren't into Zope, they were into Twisted. Twisted is still with us. Zope is underlined, but back in the day, there were lots of people developing in Zope, which was, well, Zope was kind of everything. I mean, it was a web application. It was a web server. It was a content management system. It was an object-oriented database. Whatever you wanted was in Zope. And it was one of the most difficult things to learn that I've ever learned. So a lot of us old timers remember that Zope was the web thing that a lot of people did. We did actually talk about, in a lot of the early PyCons, how to write desktop applications. This is something that we don't worry about much anymore, but it was a big thing. How do you write desktop applications in Python? And then finally, we did have a lot of talks, even in the early days, about education and science. Now, the education part was no surprise to me, because at the very first PyCon, I gave an education talk. So I'm well aware we were always interested in education. Science, when I went back and looked, I was sort of a little bit surprised, because I had forgotten this, that even though back in the day, 15 years ago, a lot of scientists, if they were doing something with computers, they were using Fortran, some good friends who still write Fortran, or they were using some sort of proprietary stats package, there were still a lot of people in science who were picking up Python, even from a fairly early stage. So those things were there. On the other hand, here are all of the things that we had no clue about. When we started the PyCons, we did not know that things like Django and Flask and all of those things were going to be coming. They weren't there. Infrastructure and DevOps, containerization, all of those things we were really no clue about. If you go look at the first few PyCons, there was maybe a talk about scaling something, but nothing about the cloud, all of that stuff. Again, no clue. And certainly, we talked about data and scaling, but we never talked about big data as we talk about it. Now, data science, as it is now, was not a thing. In the early days, maybe it was merciful, I don't know. We didn't really worry much about Python 3. I think it was in 2005 that Guido started giving talks about Python 3,000, as it was called. And it was so far away, we were all going to be retired before it came along. And don't worry, it'll be fine, all of those things. So we didn't see that coming. While people knew about the guild, nobody was worried about the guild, mainly because everybody only had a single core in their computer. Unless you had a server or something special, you had the money to spend on maybe a dual core machine, or actually a dual processor machine. Quite often, they plugged them in as separate processors. So there's nothing much about that. Interestingly, first three PyKons, there were no talks that I would consider to be about community or diversity or anything like that. And in fact, thinking back on those early PyKons, there was no diversity, really. There were maybe, I would say, two or 3% women attending. Very few people that were a minority in any other way. As far as I can recall, everybody was treated pretty well. It wasn't really an issue, but it was not a thing. And then the other thing we had no clue about was the fact that PyKon, as a brand, and the notion of a Python conference was going to become a thing. When this was done, this was just 200 people in a university recreation space. It was not really, we had no clue that this was going to be a thing. So that's probably a shortened list of the many things that we did not know about 17 years ago. And my point there is that the future is hard. We never get the future right. This is from the turn of the last century, when there are obviously some ladies enjoying video conferencing. And how long did we have to wait for this thing that was just around the corner? I remember when I was a child, we were still waiting for picture phones that were going to be just like a wired telephone, except that we're going to have this screen and somehow everyone was magically going to do that. And that never happened. And now suddenly we look around and we're in an age where there are these idiots with little boxes having video conferences and getting in our way as we walk down the street. So it's really hard to predict these things. Or my favorite example, flying cars. If you're a futurist, you must predict flying cars. And we're still waiting for flying cars. Flying cars would be amazing. Look, even the dog loves a flying car. And yet we're still waiting for this, although I saw this in the Guardian a couple of weeks ago. Apparently Uber are testing autonomous robo-copter taxi things in Paris right now. So maybe our time is coming for flying cars. I don't know. So the future is hard. It's hard to predict the future. So I'm going to take a few shots at some. Well, I'll start with some easy ones. Technically, I think there are some things that are pretty easy to call. Particularly, OK, so this is dead easy. If by January 1st, 2021, Python 2 is still officially being supported, there will be a lot of core developers that will be very, very unhappy. Python 2 is officially on the way out. People now have come to terms with it. They're going to move on. They're going to move their applications. So that's going to happen. It's arguable, but I think that if you look at new things being done, Python 3 is now more popular than Python 2. This has been a long road. And finally, there is discussion about Python 4, but don't worry. It's not going to be like going from 2 to 3. Don't worry. They're not going to do that again. It's OK. It's OK. So that one's easy. That's going to happen. My opinion in terms of technical issues, C-Python's performance on multiple core devices will need to be addressed. That means that the global interpreter lock that keeps us running only one processor-thread at a time is going to have to be gotten around somehow. Obviously, if I had a clue as to how that was going to work, I would be giving a very different talk. I don't know how that's going to work, but we cannot, I think, keep going forward with the way we are when, in fact, my phone has eight cores. It's just we're scaling out horizontally now rather than vertically, as I would call it. This issue is going to need to be addressed. And then, speaking of phones with many cores, the whole notion of mobile devices and Python on mobile devices also needs to be addressed. We can, I suppose, say we just don't want to be on mobile. That's not what Python is. Fine. But as more and more and more devices are tablets or phones or whatever, I think we need to think very carefully about what we're going to do. You can, without so much trouble, now run something that is Python on a phone. But it's not very easy to use Python to create a device that actually goes into the app store. It's a KIVI framework that can do some of those things. The Beware project, which is involving a lot of people in the company, and I personally like the Beware project a lot, they are working towards this, they apparently now can get an app onto the app store. So that's progress. And those efforts need to keep moving forward, in my opinion. But those are all the easy ones. The hard things to deal with are the issues that relate to our general growth as a community and as a language. I think this again is something we had no clue about, 15 years ago, then we were kind of in the middle of the pack an interesting language, whatever. But things have changed quite a bit. We woke up one day and we're now, according to most of these measures, we're now somewhere in the top three most popular languages. Please, for an old timer like me, this is kind of shocking. How did this happen? So that means that there's a lot going on. I know from my position on the PSF board that we have Django Girls and PyCons and all of these sorts of conferences springing up everywhere. I think in the past year, this is off the top of my head, so it's not an exact number. In the past year, I think the PSF has given money for something on the order of 40 Django Girls events in Nigeria alone. We don't fund all of them, but I have a pretty fair idea that there have been at least that many Django Girls events the past year in Brazil alone. Those are both big countries, but still that's a lot going on. We have a lot of people that we're bringing into the community. We have PyCons springing up practically everywhere, so places where I was sort of surprised that they were into Python at all are contacting us, say, hey, we're going to have a PyCon. Great, we had no idea. Similarly, we get a lot of traffic to the python.org website by way of China, and yet we don't know what the community in China is doing at all. So there are a lot of people there, so we have a lot of people that are joining us in this language. If you look at growth, web development is growing. Django Flask, API stuff, all of that together is growing steadily, not spectacularly, but steadily. People using Python for science by way of software carpentry and all of that stuff, Jupyter notebooks, that whole ecosystem is growing pretty rapidly. And of course, Python in connection with data science is just sort of taking off and exploding. So we have all of that growth going on. And that definitely makes things interesting in a lot of ways. If the Python software foundation is going to keep on supporting this growing, this exploding community, we're going to need more resources. We're going to need more resources to maintain PyPI. And when you think about it, PyPI serves every time, well, maybe not every time, but most times people do a pip install. They're going to pypi.org, Python package index. So until recently when we hired Ernest Durbin, who started with us last week as our full-time infrastructure director, this was sort of on donated services run by volunteers, and yet we have that many people in the world that are depending upon it in production. So obviously, as the numbers go up, we're going to need to improve that service. As our numbers go up, we're going to need to provide other services that maybe we're not even thinking about yet. So that means we're going to need to figure out ways that we can support all of this. And that means that from where I sit as part of the PSF, we have a lot of work to do in terms of making the PSF a bigger, better, more mature organization. Part of that involves, as I say, people who make their living from Python. We need to get more of a culture of supporting what the PSF does. But we also need to look for corporate sponsors and outside donors. Bloomberg is, by the way, one of our sponsors. Very grateful to them for that. But we also need maybe these people who were part of a unicorn startup and now are rolling in money. They could come and give us some of that. You know, one of those people have a word with them. We need to identify ways, in other words, that we can do the resources to provide what people are going to demand as this growth continues. And of course, the other part of this is that for those who've been in the Python community for a long time, we've been working hard to make the way that the PSF runs a more mature and sort of following best practices more of a mature organization. When the PSF started, which was, again, back in 2001, it was a few Python developers who were just sort of keeping things together in their spare time. That worked fine then. But I think even the people who were on the board then would tell you it won't work now. So we're continuing to work on that, which, again, is why you should vote in the election, if you remember. And then other problems as demands go up, we need to take care of our volunteers. We have a lot of things that are done by volunteers. One group that is definitely under a lot of pressure are the core developers. Everybody wants to submit a patch, patches and fixes and everything, pull requests, pile up. And we only have a few core developers that can actually handle that. So we need to work on ways that we can do that. But we also need to think about all of the many other volunteers. The volunteers that put this on, the volunteers that do other things. At PyCon, this year, Brett Cannon, who is a core developer actually, sort of made the point that we need to be kind, certainly. And we need to be appreciative of the people that are doing these things. So when you see somebody who's running a event, it's very easy to point out some helpful criticism of the things that are going wrong. But maybe we need to be sure that we give them some support as well, because we have a lot of people everywhere in this community that are doing a lot of hard work and they're not getting much reward for it. So we need to be sure that we address that, I think. We also need to take into account that as we grow, we will have a continuing, diverging set of people who are in the Python world. And it used to be back in 2001, we were all just sort of writing Python, and that was fine. There really weren't, oh, yeah, there was science. There was education, whatever. But in general, we came together as one place pretty easily, and one place pretty easily as one community pretty easily. Now we've got maybe Django developers here. We've got data science people here. And honestly, I'm hearing outrumblings that they're not seeing what they have in common so much. We need to think about that. We need to find ways that we can come together. It's fine that we have different conferences, PiData, DjangoCon, sure, that's also fine. But we also, I think, lose something if we lose sight of the fact that we're all kind of brought together by a common language. So that is, at least in my opinion, something we need to worry about. Diversity, we pride ourselves on the way that we handle diversity and inclusion. We have come a long way. We should be happy with what has been done. But in fact, we're not done yet. And that is both in terms of there are a lot of places where there are still things to be done. But also as we bring in together all of these different communities from different parts of the world, different backgrounds, different languages, this whole diversity thing is just going to get harder. We need to be ready for that. We need to think about that. I'm thinking in terms, one thing that I've been working on or thinking about or doing whatever I can for is basically translation. So people that are not native English speakers. It used to be that really to be in the Python community, you speak English, and that's it. That's your choice. So we need to think about things like that, obviously. That's why I'm wearing my Picon Charles t-shirt, by the way. So there are a lot of things there. There are different customs, different religious beliefs, different political beliefs. We need to be able to come together and somehow make a community in spite of all of that. That is going to be a hard challenge. I hope we can do it. And then similarly, we need to continue to think about ways that we can have people actually make meaningful contributions. How can they come and join a conference and do something meaningful, contribute that way? How can we bring them into a coding project and have them make a meaningful contribution? And this is not an easy problem, because as you know, if you're involved in something, bringing somebody in to help is sometimes more work than just doing it yourself, whether it's in part of organizing a conference or whether it's in explaining why this pull request is absolutely not what we could do and try to do that in a nice way, et cetera, et cetera. All of those things take time. And yet if we don't do them, our future looks pretty bleak. So this is another challenge that we need to think about. We need to work on it. We can do this. But again, it's an issue that I think needs to be called out. And as I say, kind of the uniting theme is we need to do all these things, grow, add these people, do these things, have this conference, and still have a community. It's sort of a tall order. So what do we have to help us do that? We have two things, two big things in our favor. We've got the language, which is accessible. It's welcoming to people. People can take it on easily. I think that as long as we keep the spirit of this language, and if you've read the endless debates on Python Dev, you know that people are really concerned about keeping the spirit of the language, that that helps us. I think the other thing we have going for us is all of you. We have, as a community, people of enormous energy, intelligence, sheer goodwill. Most people are amazed. If you haven't done it, I have brought people to Python events or into the Python community from the outside. And they have always been amazed at just what a fine bunch of humans we all are. That is in our favor. So I stole this from Brett Cannon years ago, and I continue to see, actually, it's no longer theft. He officially gave me permission to use it as much as I want. So the quote from Brett Cannon a few years ago, don't know about the rest of you. I came for the language, but stayed for the community. I think that kind of has to be at our core as we move forward. And then finally, my prediction for the future, flying cars with Python inside. OK, thank you very much. See, I told you nobody was going to argue with me. OK. A lot of these challenges sound a little bit daunting, but I'm sure we can solve them. Are the other language communities face roughly similar challenges? So my question is, do the other communities face similar challenges? Can we take inspiration from the way that they've solved them? Or is it roughly the same across the board? I think a lot of communities face these problems. I actually would argue that most language communities look to us for inspiration as to how to deal with these things. I don't know of any language that has community on the scale that the Python community is and takes care of it that much. From what I have seen as an outsider, I know that Golang, they are working very diligently to build community, and they are in some ways looking at us and things like that. And they've done a good job, but I don't think they're anywhere near on the scale yet. I'm speaking purely out of ignorance, but that's my impression. Most other languages I only know from people that are involved in them saying, if I had it to do over again, maybe I would do Python because I like the community better. So I think we are the ones that are kind of blazing the trail. You've been rejected. Go ahead. Cool. You mentioned that you noticed the community was diverging into these different areas, web, data science, science, things like that. This is something I've noticed even within the company I work for, the data team and the engineering team don't have a lot in common in terms of how they're doing things. What do you think we can do as a community and in teams to try and regain that sense of Python being the unifying factor? I think particularly in the case of data science, I'm not sure there's any great shortcut, but I think it's an awareness that basically we have people kind of coming in two directions. And if we're just aware of that, because I'm looking for somebody at my company, I'd really like to hire somebody who's a solid engineer who's become fascinated with data science. That's really the sweet spot for where we are. But I also know there are people who are started out as pure data scientists who are now getting interested in the intricacies of coding and things like that. We just need to be aware of that and encourage that, I think, is the first thing to do. Particularly in that area, just telling people, understand the other person, that doesn't help. But just being aware that we do have that kind of process going on. That was strange. Yeah. Hi there. With all the growth and amazing different ways that Python's being used nowadays, you said it's still, there's other languages, and it doesn't do everything. Are there any things that you think maybe it's not best for, is it things like embedded devices, or do you think it could also take over as the top for everything language? I doubt very much it would be a top for everything language. I don't know that that would do us any good. Obviously, we don't do desktop applications much anymore. We don't worry other than having beginners or people who are interested, but we're not really the language that drives heavily graphical games. It's used a lot to glue things together in the gaming world. We're not the language that you would write image processing stuff in that needs the high performance. But again, Pixar and all of those companies use Python to glue the bits together so they can do CGI. So there are a lot of things like that where it really makes sense to have a different language. Embedded with the rise of MicroPython, it's like we're actually gaining more of a toehold there than we had before. So yeah, but I do think that if we're going to yield things like, say, mobile, we should do it intentionally rather than just sort of wandering away. Now that I have the mic. See the test that effect, yeah? I'm curious from your perspective, what do you think was the, is there any consensus as to why the language became so popular? Because I think when I started and I went to my first PyCon and I learned that the language, the first version of the language was built about the same time when I was born that was shocking to me because the language always seemed to be very fresh, new, and trendy to me. So what do you think was the main factor of growth over time? What made it so popular? My opinion is that its design makes it a very appealing, a very pleasant language to do. So that there is the whole fact that the very first thing in the Zen of Python is beautiful is better than ugly. I argue that in some cosmic sense that isn't just coincidence, that that really is a core principle and that makes it very appealing. Then in practical terms, it's been kind of one lucky break after another. So Django came along at a time when people were looking at a lot of web frameworks and it would do a lot. Python ends up being connected to a lot of data processing things and that kind of builds as a virtuous circle. Oh, you've got this in Python. Oh, well, why don't we do this other thing in Python? Oh, now there are two things in Python, let's do this. And so there is that sort of aspect, I guess, of being in the right place at the right time with an appealing tool. We have time for one last question while we get the next speaker set up. If you are the next speaker, if I could get you to go over to the AV gentleman over there, that would be great. This is working? All right, cool. Just asking very shortly, what is your favorite IDE? Oh, my favorite IDE? You don't have to answer that. Oh, I'll answer that. It's Emax. So there you go. And I'll stick to that. In VI mode? Well, no, I also use VI sometimes, so I am by textual, yes. Thank you very much.