Transcript #87: Guido van Rossum steps downReturn to episode page
00:00 KENNEDY: Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds. This is Episode 87, recorded July 17th, 2018. I'm Michael Kennedy.
00:10 PANELISTS: And I'm Brian Okken.
00:11 KENNEDY: And Brian, we've got a really special episode for some big news here.
00:16 PANELISTS: Yes, and we've got some great guests helping us with this.
00:18 KENNEDY: We do, we have Carol Willing, and Brett Cannon, both joining us to get somewhat of a inside perspective on this big, somewhat sad, announcement and we're going to dig into that. Hello Carol, welcome to the show.
00:32 PANELISTS: Hi, how you doing?
00:33 KENNEDY: I'm great, thanks for being here. Hi Brett.
00:35 PANELISTS: Hello everyone, thanks for having me.
00:36 KENNEDY: Yeah absolutely, it's great you're here. So, before we get into this I want to just quickly thank Datadog for sponsoring the show, and tell you guys quickly about them before we dig into this stuff, 'cause there's not a real break. So let me just say thank you to Datadog. If you have infrastructure that you want monitored, if you have multi tier or multi server applications you can plug in Datadog and get distributed tracing, logging, error handling, everything all in one place. 14 day free trial, and sign up at pythonbytes.fm/datadog. You'll get a cool Datadog T-shirt. So, thank you for them for sponsoring this episode. Brian, you want to tell us what the big news is?
01:13 PANELISTS: I think I'm just about as clueless as everybody else. The, I'm just in shock. Last week we heard an announcement that Guido was stepping down as the BDFL.
01:23 KENNEDY: Yeah, that is a big deal. So, there's been a little bit of debate about exactly what he meant when he said this, you know? Was it he's just taking a break? Is he actually stepping down? So let me just read the salient parts of the announcement. So, this was an email sent to the Python mailing list, the Python Dev mailing list, and the title was Transfer of Power, and here's Guido's words, bits and pieces taken from his email. Now that PEP 572 is done, I don't ever want to have to fight so hard for a PEP and find that so many people despise my decisions. I'd like to remove myself entirely from the decision process. I'll still be there for a while as an ordinary core dev, and I'll still be available to mentor people, possibly more available. But I'm basically giving myself a permanent vacation from being BDFL, and you all will be on your own. I am not going to appoint a successor. The decision, he says basically, I'm summarizing, that the day to day stuff is going to be fine, but the decisions that matter that may be affected are how PEPs are decided and how new core devs are inducted, and then finally sort of on the parting thought said, I'll still be here, but I'm trying to let you all figure something out for yourselves. I'm tired, and need a very long break. So, that was the announcement, and that's the big news, and that's what we're going to talk about today, and first I just want to say thank you to Guido for doing so much for so long, creating one of the most popular programming languages in history.
02:46 PANELISTS: To have publicly said this, I am personally forever indebted to Guido and the team 'cause they basically taught me how to program, for real. I have a official education in all this, but I have always stated that how to actually develop in the real world is entirely down to Guido and the team.
03:03 KENNEDY: Yeah. That's awesome.
03:05 PANELISTS: And I think Guido has done so much not just for the language, but also for the community as well. And I know I appreciate from the earliest days when he was designing Python how he made it accessible for learners and for people to actually use the language, and when I'm teaching people, whether it's with Jupyter or high school students like I'm teaching this week, it's just a pleasure to do it in Python, and personally I have a lot to thank him for, but even more so for the greater group of people as well. Yeah, I don't know if he specifically set out to set the tone as he did, or if it was, it's just Guido being Guido, but I think he definitely deserves a lot of credit for setting the tone that this community has ended up with as being inclusive and welcoming and just the, basically what makes this community as amazing as it is.
03:59 KENNEDY: Yeah, and it's not just technical. I think one of the special things about Python, unlike many languages, is there are professional programming languages that can build high and stuff, and there's learning languages that are super basic, but you got to stop to go build real apps with something else later, and this is one of the few languages that you can start simple and finish big with. So that is really, I think, part of its magic. But also you go to PyCon and these other conferences and you look around and the people around you look more like general society and less like a bunch of white guys. You know what I mean? To me that is a really special thing and it really is, it's not as far as it should be, but it is on the path where, it's on a good path, it's unlike other communities that I've been involved in, so I think that's also really important.
04:44 PANELISTS: Well I think him as a person, I think he has, his personality has so much to do with it. You mentioned PyCon, and one of the things that Guido did at PyCon was I had asked him if he would meet a young man called Joshua Lowe who does Interblocks which is this really cool user interface that lets you go from scratch to Python code, and we were talking about how Joshua had made it over dinner and then the next day Guido probably spent an hour just hacking with him and made this young man's PyCon experience more amazing than it was just the day before.
05:26 KENNEDY: That's really awesome, yeah. And Brian, you got to have lunch with him at the last PyCon right?
05:30 PANELISTS: That was really fun, they did a drawing of people that donated to the Python Software Foundation, they drew a handful of names, and I think there were six or seven of us had lunch with him, and one of the things that was really interesting at that lunch was we were going around the table, talked about what everybody does and what their contribution or not to Python was, and I talked about some of the things I was doing. I mentioned I have a full-time job, but I also work on trying to teach testing and Pytest and other development processes to people. He looked at me and said "So you've got a full-time day job, how do you have enough energy to deal with all the negative feedback you get from contributing to Python?" And I haven't really got that negative feedback, and I guess that was a bizarre, I thought of it as a bizarre question, but now in context it makes a lot of sense.
06:29 KENNEDY: He was at the center of the pressure points right? Of that stuff, so let's maybe talk about what some of the root causes for this, like he specifically calls out PEP 572 in his letter that he sent out but I feel like there must be more to that, like PEP 572 was the straw? Not everything? Carol and Brett, you guys are more on the inside, you probably have more exposure to this. What do you think?
06:57 PANELISTS: Honestly, it was the last straw. I don't know what Carol thinks, but I personally figured Guido was probably going to retire in the next, I don't know, two, maybe three years, just because he's joked so long about retirement and I think he was just getting ready to just not do it, and he's been working on making the projects self-sustaining for quite some time. But admittedly from my perspective, PEP 572 got really nasty. It was so much negativity that I think he just got fed up and said look, I've been doing this for 28 years, I've been putting up with general negativity as well, and this groundswell was just too much to bear and just like forget it, I don't want to put up with this anymore, I'm going to, as he said, he's going to retire. He's still the BDFL, that for life bit is true, but he's basically said my last dictatorial declaration is I am not going to make anymore dictatorial declarations ever again. Have fun. Yeah, but no, it got extremely negative, like when Guido announced the acceptance of the PEP the very first tweet at him was too bad it's a waste of time. That was just a very common occurrence of just nothing but negativity, there wasn't constructive feedback or anything, and it dragged on forever, there were some missteps in terms of how it was communicated in terms of a technical aspect of how it was communicated through the list, like reposting the PEP but people really just piled it on and it was just unnecessary. It was just not constructive, and that's, as Brian pointed out, that's why he asked that question how do you handle the negativity because there can be a lot of negativity anytime you touch this language. People love it for a reason, and if there's any hints of you changing something that they don't like, some people really overreact. If you saw my keynote at PyCon US, it was entirely on this topic because it can get so overwhelming sometimes when people just jump on you and especially on something used so widely as Python, there's not a small number of people who feel the need to share their opinion, and unfortunately share it in an nonconstructive way. I think it just finally made him just go yeah, you know what, I don't need to ever put up with this ever again, forget it, and just said I'm retiring.
09:16 KENNEDY: One thought that I had when we were getting ready for this show was, it was related to what Brian said as well, like Guido has a full-time hectic job at Dropbox right? He's already fully committed to working on stuff, and then he's trying to bear the significant portion of the weight of people not wanting changes or demanding changes to Python in various ways. Do you, Carol, think it would've been different if the PSF had made a space to employ Guido to be in that role and not make it, there's the stress of the experience and then there's the stress of these are my final two hours of the day and I'm already exhausted, now I'm getting this, you know what I mean?
10:01 PANELISTS: I can't speak for Guido, but I mean I don't know that that would've solved it, I mean I think he has been doing what he wants to be doing, and I think if he had said hey I want to do this, people would be very happy to accommodate him. I think largely what Brett had said, we were talking in the office here at Jupyter the other day and we were saying we can't believe how long he has shepherded the language and dealt with people's comments and fostered the direction of the language, and in many ways any maintainer will feel over time some burnout when there's negativity around a project, and I think it's unfortunate that people choose to make things personal when they don't need to be personal, that they view things with black and white as opposed to wanting to compromise over something. I remember when I was facing some burnout and he was one of the people that said to me well do the things that you really enjoy. Electronics and teaching and just really helpful advice, so I think maybe he's taking some of his own advice.
11:18 KENNEDY: Yeah, it has been a really long time that he's been working on this, I have never worked on a single project for 30 years. I've not been programming for 30 years honestly, but it just seems like it's pretty natural for him to step down. One thing I really wish, and Brian I think we spoke about this last time, I wish he would've just gone into a more, just I'm kind of stepping back for a while and hung in there until after 2020 and Python 3 becomes the one and only Python, and that could've been a celebratory stepping down rather than an I'm frustrated and I'm giving you guys the reins. I would've liked to see him retire in some sort of celebration, mission accomplished type of experience, you know?
12:01 PANELISTS: It would've been nice, but the problem is there's still the chance of another, I don't think operation is quite the right word, but an explosion of negativity between now and then and while I would like to assume the community has switched over to 3, and every number I've seen has said that, I also don't know if the people who are holding on to Python 2 are going to react reasonably come January 1st 2020 as well, so I could also see him going you know what, I don't want to risk having to put myself through that after what he has just gone through.
12:33 KENNEDY: Yeah, that's possible.
12:34 PANELISTS: I totally get the perspective of it would've been an amazing party, January 1st or at PyCon in 2020 going yup, we've moved on to Python 3, Guido's getting the well deserved retirement he wants, and it would've been an amazing party, but instead we're just going to have just the amazing party for Python 3 and I'm personally fine with that.
12:52 KENNEDY: We can invite Guido. I'm sure he'll be there.
12:55 PANELISTS: I don't think that that, I mean he's still the president of the PSF, so he obviously is still going to be involved, and it's up to us as the community, much like the SciPy community did last week, they did a really nice thank you Guido, they got everybody from the conference together and gave a very thoughtful thank you which I've never seen them do for anything before, so it was really cool. I think he has touched so many people in so many different ways that that celebration will come. I think, looking at it, I don't know that there's ever an easy way to change how you make decisions and governance when you have many personalities involved. It's unfortunate how it came out, but I think there had to be something that would give us a catalyst in the developer community to really take some of these issues on that are not necessarily new issues to us, he's been asking us to do it for quite a while and we just haven't either had the bandwidth or the kick in the pants to actually go and do it.
14:06 KENNEDY: So we're all kind of like the 29 year old kid still living at home and Guido's like get out, go live on your own, take care of yourself.
14:14 PANELISTS: A little bit, yeah.
14:16 KENNEDY: All right, so you spoke about governance and decision making and stuff. What do you think is going to replace Guido being the final decider?
14:24 PANELISTS: It's actually still being actively discussed. As the e-mail Guido sent said, he's basically leaving it up to us, he did not dictate how we were going to govern ourselves afterwards, so he has left that up to us, he actually didn't even dictate how we would even choose how we would choose to govern ourselves, so there's not even a specific choice yet of how we would potentially vote for this. Some people have said PSF fellows, some have said core devs, so there's, it's a completely open-ended question honestly. The current thinking seems to be around, and Carol can obviously correct me if my feeling doesn't jive with hers at all, either potentially another BDFL, or a somehow "Council of Elders" or some such. It seems to be, the key thing is trying to figure out how we want to steward the design of the language. We've been managing ourselves daily for quite some time, Guido's not directly involved with releases so that's not even an issue, it really comes down to how do we have someone make the final decision on PEPs? Who says yay or nay, who makes the technical decisions, who chooses the paint color for the bike shed, that kind of thing. That's the really key thing we have to still make a decision on. Yeah, and I think Brett put it, I think the e-mail said, I've at least seen Python committers have been very respectful and really trying to seek out what is going to happen from here, and I think Guido's e-mail mentioned four things, day-to-day decisions on the issue tracker, how PEP are decided, which to me is the direction of the language and who stewards that, how new core devs are inducted, and the code of conduct. If I look at all four of those, the day-to-day decisions, as Brett had said, releases and things like that, we're in a good spot and we should probably just be doing what we have been doing. How new core devs are inducted, I think that will fall out of whatever decision making we have for the language. I know that we've made some progress over the past couple years and might continue to see that we will make progress, and the code of conduct I think we're all recognizing that being professional and civil to each other and talking about issues as opposed to whether somebody's intelligence gets called into question or whatever, is not the right way to do it, it's better to be professional. How PEPs are decided, it seems as if, much like Brett had mentioned, that we're converging on maybe three individuals as a triumvirate world one, and no more than five is how I've read it.
17:23 KENNEDY: Okay, that makes a lot of sense. It seems to me whatever the decision is it should be odd, not even.
17:29 PANELISTS: Actually that came up already and Tim Peters, for those of you who have been in language for a long time might recognize the name, whose gotten active again partially thanks to PEP 572, so at least there's one very nice perk from my perspective from what happened with PEP 572, pointed out that the odd number in voting typically is very important when you have an either A or B decision and you have to choose one or the other, but if you have a status quo or a change, so more of a yes/no decision, having the tie go to the status quo is not quite so critical. We could theoretically go with a four and really not have too much of an impactful problem in that regard.
18:07 KENNEDY: Yeah, I guess it would lead to stronger debate. You've got to bring someone over to your side if it's a split decision, and if they fail to decide then it just stays the way it is. Nothing new is adopted I guess.
18:18 PANELISTS: Yeah exactly, so there is the possibility of actually going with four for instance.
18:24 KENNEDY: Interesting.
18:25 PANELISTS: I don't think anyone suggested just two, it seems to be pretty much one, three, four, five seems to be running numbers right now. Right.
18:31 KENNEDY: Yeah, interesting, okay that makes a lot of sense. So I guess the final thing that we should spend some time is is this a problem for the community? Is this going to hurt Python's fantastic momentum? Is this going to hurt the growth or evolution or sustaining Python, or do you think it's just a little bit of change on how decisions are made and not such a big deal?
18:58 PANELISTS: Do you want me to take that first, Brett? Yeah, yeah, go ahead. You go first, Carol. I think the language will continue to thrive and will continue to grow. Will some things be different? Yes, but Guido's made it very clear he's still going to be accessible on mailing lists, he's still the president of the PSF, and the PSF is largely with the community support doing many of the outreach things and things to grow the community, and then the core development side of things, I think what we've seen is a shift in some ways away from strictly the language to also Python has a very rich ecosystem of libraries, so things like Jupyter and SciPy and NumPy wouldn't have come about if Python, the core language, hadn't been so wonderful to work with. So yes, there's going to be work to do to figure out how to continue the design of the language, but I have every belief and commitment that that will happen. I agree, I think the way, I don't think this is going to change the momentum for language. I don't think honestly anyone should really be worried at all. There might be a slowdown in terms of new features for Python 3.8 which I know some people actually like the idea of. Basically I view it no more as a temporary pause in language defining changes, and honestly we've had a language moratorium before back for Python 3.3 I believe, which I should know since I helped write the PEP for that. If anything, you can view it as basically just a moratorium on language changes for a little while until we decide how we want to govern those kinds of changes, and then it'll just more or less go back to where it was. Now the pace might be slower than it was, if for instance we go with a council versus another benevolent dictator who could potentially come to decisions faster and just do other things I guess potentially more nimbly in my personal view, but I really don't see this really affecting the language long term, or even medium term, or basically short term depending on your definition of short.
21:14 KENNEDY: Yeah, depends on definition of short, yeah.
21:16 PANELISTS: I suspect we'll have this all worked out in the next few months, I'd be really surprised if we don't have a solid plan of what our options are by the end of the year if not already decided by then. I've got hopefully a quick question. I guess I don't know how, when there's discussions on PEP, who can participate in those discussions, is it just core developers or... I have to caveat this with this was the way it used to be, we'll see if this continues, but to answer that question Brian, basically the way we suggest people do PEPs is they come with an idea to Python Idea, the mailing list, and they propose it, and usually pretty quickly people either go that's been proposed before, no that doesn't seem very Pythonic, or that seems like a possibly good idea. Guido did on occasion come in and say yes there is a possibility for this, or would shut an idea down quickly so people didn't waste their time. Then usually they have a discussion, work out some rough details, and then usually the proposer goes away and comes back with a rough PEP saying all right, here is a more formal proposal, and then more discussion on Python Ideas to help that author refine it, and then what they would do is they would then bring that to Python Dev with more or less a finalized PEP and then any final salient details would be worked out, and then either Guido would name what we called a BDFL delegate who would be someone he delegated the final decision to in terms of technical details and also whether the PEP would be accepted, or he would keep the BDFL vote himself and he would eventually make the call. One change that has been floated though is to take a PEP from Python Ideas to Python Dev. You might start needing more of a co-sponsor from a core developer to help make sure that the idea seems solid enough to bring forward and also to make sure that the PEP is in a good position because one of the problems with PEP 572 was while the idea was there, the PEP wasn't fully fully fleshed out to the level that we typically have PEP from Python Ideas and Devs as, and so there was a lot of repetitious discussion of things that should have been recorded initially in the PEP to have temped down on the repeated discussion because the discussion on Python Ideas actually was a bit more reasonable than it was on Python Dev and less reactionary, funny enough. That's generally the process is idea to Python Ideas, then a rough PEP and then refine it, and then once it's fairly refined, goes to Python Dev, final discussion, and then either Guido or a named BDFL delegate made a decision and the PEP either got accepted or rejected and that's basically the way it was. Is there a point in that process where the rest of the community can, I guess, add to the opinion or... So yes, Python Ideas is a completely open mailing list. Python Dev is also a completely open mailing list, so none of these discussions are happening behind closed doors at all. The only mailing list, honestly, that is in any way closed in any of this process is Python Committers and that is more technical details that only affect Python core developers themselves and not PEPs. None of these discussions happen in such a fashion that outsiders, outsiders is a bad term, people who happen not to be core developers are always able to bring forward their opinion. The parlor trick though is not having people suddenly pop in and leave their opinion without checking what the people have said or come in and not understanding how to be professional about leaving their opinion. So there's always a balancing act of trying to ask to widely of people who don't quite understand the norms of how to communicate well, honestly, but none of the conversation is closed off such that people can't participate. For instance Brian, if we had a testing oriented one you're totally happy to come in and participate whether it's at the nebulous stage in Python Ideas or drafting up that PEP or on Python Dev where it's very much more finalized, like very honing in to the technical details of how this would work and really thinking through the ramifications and really focused discussion before a final decision's made. But as I said, this is how it was, I don't know how we're going to tweak it.
25:30 KENNEDY: Yeah, that makes a lot of sense.
25:31 PANELISTS: Yeah, and it should more or less be the same going forward, it just we might start being stricter about when PEP moves from Python Ideas to Python Dev to try to make sure the discussion doesn't get rehashed. As Carol pointed out, this has brought forward some code of conduct issues that we'll probably, I know I'm personally working towards refining, and have been since PyCon, to help try to push even harder to keep the discussion civil. Right, and I think in addition to just the civility of the discussions, one of the things that I want to look at is can we use some of the great stuff that we have in natural language processing and pull out what the most meaningful content when it comes to comments, and part of the issue with 572, there were so many comments that you had to read them all if you wanted the full spectrum, and not all of us have time to do that, and so a way to condense or shorten the period of comments or something, and that's as much a social issue, and in some ways a conduct issue, as it is a technical issue. Yeah, that'd be something like, in my own community for instance, in physical communities, everybody's welcome to attend the open city council meetings, but hardly anybody does. However, when there's a change that affects everybody that's usually posted somewhere and then there's a period of open for community comment or something. I'm not saying we need to do that with Python, but I agree with this somewhat, maybe a curated or refereed or some Cliff Notes version of the discussion up 'till now before somebody can jump in and
27:17 KENNEDY: Yeah, and that's definitely something that's been talked about.
27:20 PANELISTS: All that puts work on the Python community itself also to do that. That's work as well. Yeah, and actually historically the PEP was supposed to capture all of these details, like the rejected idea and open idea section and every PEP was meant to act as a running summary of the discussion to help prevent that, but for instance in the case of PEP 572 it was a bit overwhelming on the volume and it can be hard to do that, so as Carol mentioned, there's discussion going on now about how we can potentially help alleviate that load on the PEP author while making sure that that kind of thing is taken care of.
28:20 KENNEDY: Yeah, it sounds like there's some community stuff to do as well, but I have faith that you guys will figure something out, and in terms of the voting and the decision making, and I guess I want to sort of echo Carol's thought when I ask about the momentum, so much of Python's momentum is with the ecosystem and the extra libraries and PyPI and all of these things, and honestly if the language didn't change one bit for five years I still think there would be massive momentum in the community, so I don't see a real danger here.
28:35 PANELISTS: Not at all, and honestly I think the momentum's due to the community and Guido has helped shepard it forward and bring it to where it is, but I think at this point the language, the language in the community built around it is honestly bigger than Guido at this point. While we'll all miss Guido immensely, and his contribution was very important, I don't think the community should worry because the community itself is going to be what carries this forward. Yeah, and I think a lot of the core developers, as well as community members, are going to ask themselves, hopefully before they post messages and things, like what would Guido have said, what would Guido think? Put yourself, write your e-mail messages, like you're the BDFL and have to convince people. I think there are some people that are very articulate and have great ideas and add a lot to improving it. I think the PEP did get improved from beginning to end, but it's taxing when you have to slog through the negativity, and I think what Brett is saying, like hey, let's up our game so that the people who are doing the bulk of the work aren't getting negativity thrown at them when there should be collaboration, and hey, this is for the greater good of the language. You don't have to use it, I think trust is a big part of it, trust that the people who are making the decisions are being good stewards for the language and I think that the discussion that I've seen so far, I think most people are doing that and will continue to do that.
30:18 KENNEDY: Yeah, I think that was already mostly there, it's just sad that this put the final straw onto Guido, but thanks to him for everything that he has done, I think this may be a good place to leave it. Brett, Carol, you guys want to have some final parting thoughts on this whole idea? Anything else you want to add before we call it a show?
30:36 PANELISTS: Not really, I think we, pretty much as we said, don't need to panic, keep on coding. I think we're going to move past this with no real issue. Obviously thanks to Guido as we've all said and hopefully, while it's sad that Guido's retiring, hopefully we can learn some lessons from why it came about when it did and be better for it coming out the other end.
30:59 KENNEDY: Yeah, absolutely, Carol?
31:00 PANELISTS: I agree with what Brett said, and I also think the surprise may still come. Guido is not going away. He may be more focusing on things that rock his world that he's put on hold while he shepherded the design and decision making of the language, and I think there's still some Guido surprises yet to come, and I look forward to that, and I just thank him for being an amazing person as well as a great language developer.
31:32 KENNEDY: Yeah, I totally agree with that.
31:34 PANELISTS: He actually has not disappeared, he actually just replied to some e-mails yesterday and today about PEP 44, so he's still actively engaged, so he definitely has not disappeared off the map.
31:45 KENNEDY: Nice, well if I could throw some ideas out there, Python Web Assembly Browser. Just going to leave that there if he wants to try something new. Brian, anything else?
31:55 PANELISTS: Yeah, I just want to, just the obvious heads up of if you've got a negative reaction about something, or some feeling of entitlement, you sleep on it. Don't hit the keyboard right away, try to talk to people online as if you were talking to them in person. Again, if you haven't watched Brett's talk from 2018 PyCon, go watch it 'cause it was an eye-opener for me.
32:21 KENNEDY: How similar was that to your PyCascades one, Brett?
32:24 PANELISTS: Pretty much the same. It was my PyCascades became my PyCon US keynote talk.
32:25 KENNEDY: So definitely people should watch that, I think it sets the right tone for things, I'll put that in the show notes.
32:38 PANELISTS: Awesome.
32:39 KENNEDY: All right, thank you all for being here. It's really, I think it's important to spend some time talking about this and just getting that inside information out for everyone in the community, and I think we're going to be fine, so let's carry on huh?
32:51 PANELISTS: That sounds good.
32:51 KENNEDY: All right, bye everyone.
32:52 PANELISTS: Bye. Bye.
32:55 KENNEDY: Thank you for listening to Python Bytes. Follow the show on Twitter via @pythonbytes, that's Python Bytes as in B-Y-T-E-S, and get the full show notes at pythonbytes.fm. If you have a news item you want featured just visit pythonbytes.fm and send it our way. We're always on the look out for sharing something cool. On behalf of myself and Brian Okken, this is Michael Kennedy, thank you for listening, and sharing this podcast with your friends and colleagues.