WEBVTT

00:00:00.001 --> 00:00:05.060
Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.

00:00:05.060 --> 00:00:09.000
This is episode 87, recorded July 17th, 2018.

00:00:09.000 --> 00:00:10.000
I'm Michael Kennedy.

00:00:10.000 --> 00:00:10.980
And I'm Brian Ochten.

00:00:10.980 --> 00:00:15.880
And Brian, we've got a really special episode for some big news here.

00:00:15.880 --> 00:00:18.760
Yes, and we've got some great guests helping us with this.

00:00:18.760 --> 00:00:25.480
We do. We have Carol Willing and Brett Cannon both joining us to get somewhat of an inside perspective

00:00:25.480 --> 00:00:28.800
on this big, somewhat sad announcement.

00:00:29.040 --> 00:00:30.260
And we're going to dig into that.

00:00:30.260 --> 00:00:32.040
Hello, Carol. Welcome to the show.

00:00:32.040 --> 00:00:33.200
Hi, how are you doing?

00:00:33.200 --> 00:00:34.900
Great. Thanks for being here. Hi, Brett.

00:00:34.900 --> 00:00:36.820
Hello, everyone. Thanks for having me.

00:00:36.820 --> 00:00:38.260
Yeah, absolutely. It's great you're here.

00:00:38.260 --> 00:00:42.860
So before we get into this, I want to just quickly thank Datadog for sponsoring the show

00:00:42.860 --> 00:00:46.820
and tell you guys quickly about them before we dig into the stuff because there's not a real break.

00:00:46.820 --> 00:00:49.320
So let me just say thank you to Datadog.

00:00:49.320 --> 00:00:54.940
If you have infrastructure that you want monitored, if you have multi-tier or multi-server applications,

00:00:54.940 --> 00:01:01.200
you can plug in Datadog and get distributed tracing, logging, error handling, everything all in one place.

00:01:01.200 --> 00:01:06.200
14-day free trial and sign up at pythonbytes.fm.datadog.

00:01:06.200 --> 00:01:07.820
You'll get a cool Datadog t-shirt.

00:01:07.820 --> 00:01:10.280
So thank you for them for sponsoring this episode.

00:01:10.280 --> 00:01:13.040
Brian, you want to tell us what the big news is?

00:01:13.040 --> 00:01:18.440
I think I'm just about as clueless as everybody else. I'm just in shock. Last week, we heard an

00:01:18.440 --> 00:01:22.840
announcement that Guido was stepping down as the BDFL.

00:01:22.840 --> 00:01:29.860
Yeah, that is a big deal. So there's been a little bit of debate about exactly what he meant when he

00:01:29.860 --> 00:01:35.900
said this. Was it he's just taking a break? Is he actually stepping down? So let me just read the

00:01:35.900 --> 00:01:41.200
salient parts of the announcement. So this was an email sent to the Python mailing list,

00:01:41.200 --> 00:01:46.960
Python dev mailing list. And the title was Transfer of Power. And here's Guido's words,

00:01:46.960 --> 00:01:54.280
bits and pieces taken from his email. Now that PEP 572 is done, I don't ever want to have to fight so

00:01:54.280 --> 00:02:00.420
hard for a PEP and find that so many people despise my decisions. I'd like to remove myself entirely from

00:02:00.420 --> 00:02:05.180
the decision process. I'll still be here for a while as an ordinary core dev, and I'll still be available

00:02:05.180 --> 00:02:10.740
to mentor people, possibly more available. But I'm basically giving myself a permanent vacation

00:02:10.740 --> 00:02:16.980
from being BDFL. And you all will be on your own. I'm not going to appoint a successor.

00:02:16.980 --> 00:02:22.460
The decision he says, basically summarizing that the day to day stuff is going to be fine. But the

00:02:22.460 --> 00:02:26.440
decisions that matter that may be affected are how peps are decided and how new core devs are

00:02:26.440 --> 00:02:31.760
inducted. And then finally, sort of on the parting thought said, I'll still be here. But I'm trying to

00:02:31.760 --> 00:02:36.740
let you all figure something out for yourselves. I'm tired and need a very long break. So that was the

00:02:36.740 --> 00:02:40.240
announcement. And that's the big news. And that's what we're going to talk about today. And first,

00:02:40.280 --> 00:02:45.400
I just want to say thank you to Guido for doing so much for so long, creating one of the most popular

00:02:45.400 --> 00:02:46.840
programming languages in history.

00:02:46.840 --> 00:02:51.920
I've publicly said this, like, I'm personally forever indebted to Guido and the team, because

00:02:51.920 --> 00:02:57.460
they basically taught me how to program for real. Like, I have an official education in all this,

00:02:57.460 --> 00:03:02.140
but I have always stated that how to actually develop in the real world is entirely down to

00:03:02.140 --> 00:03:03.200
Guido and the team.

00:03:03.200 --> 00:03:04.340
Yeah, that's awesome.

00:03:04.480 --> 00:03:09.280
And I think, you know, Guido has done so much, not just for the language, but also for the community

00:03:09.280 --> 00:03:15.960
as well. And I know, I appreciate from the earliest days when he was designing Python,

00:03:15.960 --> 00:03:23.760
how he made it accessible for learners, and for people to actually use the language. And,

00:03:23.760 --> 00:03:29.180
you know, when I'm teaching people, whether it's with Jupyter, or high school students, like I'm teaching

00:03:29.180 --> 00:03:35.240
this week, it's just a pleasure to do it in Python. And personally, I have a lot to thank

00:03:35.240 --> 00:03:39.900
him for, but even more so for the greater group of people as well.

00:03:39.900 --> 00:03:45.720
Yeah, I don't know if he specifically set out to set the tone, as he did, or if it was, it's just

00:03:45.720 --> 00:03:50.340
Guido being Guido. But I think he definitely deserves a lot of credit for setting the tone

00:03:50.340 --> 00:03:57.000
that this community has ended up with, as being inclusive and welcoming. And just the basically

00:03:57.000 --> 00:03:58.980
what makes this community as amazing as it is.

00:03:58.980 --> 00:04:03.180
Yeah, it's not just technical. I think one of the special things about Python, unlike many

00:04:03.180 --> 00:04:07.460
languages is they're sort of professional programming languages that can build high and stuff.

00:04:07.460 --> 00:04:11.620
And there's learning languages that are super basic, but you got to stop to go build real

00:04:11.620 --> 00:04:15.960
apps with something else later. And this is one of the few languages that you can start simple

00:04:15.960 --> 00:04:21.420
and finish big with. And so that is really, I think, part of its magic. But also, you know,

00:04:21.420 --> 00:04:25.260
you go to PyCon and these other conferences, and you look around and the people around you

00:04:25.260 --> 00:04:31.960
look like more like general society and less like a bunch of white guys. You know what I mean?

00:04:31.960 --> 00:04:37.620
And to me, that is a really special thing. It really is. It's not as far as it should be,

00:04:37.620 --> 00:04:42.120
but it is on the path of where it's on a good path. It's unlike other communities that I've been

00:04:42.120 --> 00:04:44.280
involved in. So I think that's also really important.

00:04:44.280 --> 00:04:49.740
Well, and I think Kim as a person, I think he has, his personality has so much to do with it.

00:04:49.740 --> 00:04:56.800
You mentioned PyCon. And one of the things that Guido did at PyCon was, I had asked him if he would

00:04:56.800 --> 00:05:04.080
meet a young man called Joshua Lowe, who does EduBlocks, which is this really cool user interface

00:05:04.080 --> 00:05:12.880
that lets you go from scratch to Python code. And we were talking about how Joshua had made it over

00:05:12.880 --> 00:05:20.580
dinner. And then the next day, Guido probably spent an hour just hacking with him and made this young

00:05:20.580 --> 00:05:25.880
man's PyCon experience more amazing than it was just the day before.

00:05:25.880 --> 00:05:30.480
That's really awesome. Yeah. And Brian, you got to have lunch with him at the last PyCon, right?

00:05:30.480 --> 00:05:36.480
That was really fun. They did a drawing of people that donated to the Python Software Foundation.

00:05:36.480 --> 00:05:42.640
They drew a handful of names and I think there were like six or seven of us have lunch with him.

00:05:43.340 --> 00:05:48.900
And one of the things that was really interesting at that lunch was we were in around the table and

00:05:48.900 --> 00:05:55.160
talked about what everybody does and what their contribution or not to Python was. And it talked

00:05:55.160 --> 00:06:02.440
about some of the things I was doing. I mentioned I have a full-time job, but I also work on trying

00:06:02.440 --> 00:06:09.660
to teach testing and pytest and other development processes to people. And he looked at me and said,

00:06:09.800 --> 00:06:15.860
so you have got a full-time day job. How do you have enough energy to deal with all the negative

00:06:15.860 --> 00:06:22.940
feedback you get from contributing to Python? And I haven't really got that negative feedback. And

00:06:22.940 --> 00:06:28.040
that's what I was a, I guess that was a bizarre, I thought of it as a bizarre question, but now in

00:06:28.040 --> 00:06:34.140
context, it makes a lot of sense. He was at the center of the pressure points, right? That's tough. So let's,

00:06:34.140 --> 00:06:39.760
let's maybe talk about what some of the root causes for this. Like he specifically calls out

00:06:39.760 --> 00:06:47.400
Pep 572 in his letter that he sent out, but I feel like there must be more to that. Like,

00:06:47.400 --> 00:06:54.060
like Pep 572 was the straw, not everything, but Carol and Brett, you guys are more on the inside.

00:06:54.060 --> 00:06:57.000
You probably have more exposure to this. What do you think?

00:06:57.000 --> 00:07:04.120
Honestly, it was the last straw about, I don't know what Carol thinks, but I personally figured

00:07:04.120 --> 00:07:10.660
Guido was probably going to retire in the next, I don't know, two, maybe three years just because

00:07:10.660 --> 00:07:16.980
he's joked so long about retirement. And I think he was just getting ready to just not do it. And he's

00:07:16.980 --> 00:07:23.980
been working on making the projects self-sustaining for quite some time. But admittedly, from my perspective,

00:07:23.980 --> 00:07:33.220
Pep 572 got really nasty. It was so much negativity that I think he just got fed up and said like,

00:07:33.220 --> 00:07:37.360
look, I've been doing this for 28 years. I've been putting up with general negativity as well.

00:07:37.360 --> 00:07:43.960
And this groundswell was just too much to bear and just like, forget it. I don't want to put up with

00:07:43.960 --> 00:07:49.420
this anymore. I'm gonna, as he said, he's going to retire. He's still the BDFL. That for life bit is

00:07:49.420 --> 00:07:55.300
true. But he's basically said, my last dictatorial declaration is I am not going to make any more

00:07:55.300 --> 00:07:59.900
dictatorial declarations ever again. Have fun. Yeah.

00:07:59.900 --> 00:08:04.820
Yeah. But no, it got extremely negative. Like when Guido announced the acceptance of the Pep,

00:08:04.820 --> 00:08:11.660
the very first tweet at him was too bad. It's a waste of time. And that was just a very common

00:08:11.660 --> 00:08:16.880
occurrence of just nothing but negativity. There wasn't constructive feedback or anything. And it

00:08:16.880 --> 00:08:21.900
dragged on forever. There were some missteps in terms of how it was communicated in terms of a technical

00:08:21.900 --> 00:08:28.500
aspect of how it was communicated through the list, like reposting the Pep. But people just really just

00:08:28.500 --> 00:08:35.500
piled it on and it was just unnecessary. It was just not constructive. And that's as Brian pointed

00:08:35.500 --> 00:08:39.660
out. That's why he asked that question. How do you handle the negativity? Because there can be a lot

00:08:39.660 --> 00:08:44.680
of negativity anytime you touch this language. People love it for a reason. And if there's any hints of

00:08:44.680 --> 00:08:50.500
you changing something that they don't like, some people really overreact. And if you saw my keynote

00:08:50.500 --> 00:08:58.500
Python US, it was entirely on this topic because it can get so overwhelming sometimes when people just

00:08:58.500 --> 00:09:03.360
jump on you and expect on a part of you so widely as Python, there's not a small number of people who

00:09:03.360 --> 00:09:08.260
feel the need to share their opinion. And unfortunately, share it in a unconstructive way.

00:09:08.840 --> 00:09:12.900
And I think it just finally made him just go, yeah, you know what, I don't need to ever put up with

00:09:12.900 --> 00:09:16.180
this ever again. Forget it. And just said, I'm retiring.

00:09:16.420 --> 00:09:21.660
One thought that I had when we were getting ready for this show was, you know, it's kind of related to

00:09:21.660 --> 00:09:28.480
what Brian said as well. Like, you know, has a full time hectic job at Dropbox, right? He's already

00:09:28.480 --> 00:09:35.180
fully committed to working on stuff. And then he's trying to bear the, you know, significant portion

00:09:35.180 --> 00:09:42.280
of the weight of people not wanting changes or demanding changes to Python in various ways. And,

00:09:42.280 --> 00:09:47.500
you know, do you, Carol, think it would have been different if the PSF had made a space

00:09:47.500 --> 00:09:55.120
to sort of employ, you know, to be in that role and not make it, you know, there's the stress of the

00:09:55.120 --> 00:09:59.140
experience and there's the stress of these are my final two hours of the day and I'm already exhausted.

00:09:59.140 --> 00:10:01.020
Now I'm getting this. You know what I mean?

00:10:01.020 --> 00:10:05.800
I can't speak for Guido, but I mean, I don't know that that would have solved it. I mean,

00:10:05.800 --> 00:10:12.160
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,

00:10:12.160 --> 00:10:19.300
people would be, you know, very happy to accommodate him. I think largely what Brett had said, you know,

00:10:19.300 --> 00:10:26.460
we were talking in the office here at Jupyter the other day and we were saying, we can't believe how long

00:10:26.460 --> 00:10:34.920
he has shepherded the language and dealt with, you know, people's comments and fostered, you know,

00:10:34.920 --> 00:10:44.140
the direction of the language. And in many ways, any maintainer will feel over time, some burnout when

00:10:44.140 --> 00:10:52.480
there's negativity around a project. And I think it's unfortunate that people choose to make things

00:10:52.480 --> 00:10:59.580
personal when they don't need to be personal, that they view things with black and white as opposed to

00:10:59.580 --> 00:11:07.500
wanting to compromise over something. And I remember when I was facing some burnout and he was one of the

00:11:07.500 --> 00:11:14.600
people that said to me, well, do the things that you really enjoy electronics and teaching and is really

00:11:14.600 --> 00:11:18.560
helpful advice. So I think maybe he's taking some of his own advice.

00:11:18.560 --> 00:11:23.220
Yeah. It has been a really long time that he's been working on this. I've never worked on a single

00:11:23.220 --> 00:11:30.200
project for 30 years, right? I've not been programming for 30 years, honestly, but it just

00:11:30.200 --> 00:11:35.280
seems like, you know, it's pretty natural for him to step down. One thing I really wish, and I, Brian,

00:11:35.280 --> 00:11:40.600
I think we spoke about this last time. I wish he would have just sort of gone into a more,

00:11:40.600 --> 00:11:46.960
just, I'm kind of stepping back for a while and hung in there until after 2020 and Python 3 becomes

00:11:46.960 --> 00:11:52.020
the one and only Python. And sort of that could have been like a celebratory stepping down rather

00:11:52.020 --> 00:11:57.700
than a, I'm frustrated and I'm giving you guys the reins. I would have liked to see him retire in some

00:11:57.700 --> 00:12:01.340
sort of celebration, mission accomplished type of experience, you know?

00:12:01.340 --> 00:12:06.100
It would have been nice, but the problem is, is there's still the chance of another,

00:12:06.100 --> 00:12:11.020
I don't think uprising is quite the right word, but an explosion in negativity between now and then.

00:12:11.020 --> 00:12:17.600
And while I would like to assume the community has switched over to three and every number I've seen

00:12:17.600 --> 00:12:23.800
has said that, I also don't know if the people who are holding onto Python 2 are going to react

00:12:23.800 --> 00:12:29.240
reasonably come January 1st, 2020 as well. So I could also see him going like, you know what,

00:12:29.240 --> 00:12:33.200
I don't want to risk having to put myself through that after what he's just gone through.

00:12:33.200 --> 00:12:34.180
Yeah, that's possible.

00:12:34.180 --> 00:12:40.360
I totally get the perspective of, it would have been an amazing party January 1st or at PyCon in 2020

00:12:40.360 --> 00:12:45.560
going like, yeah, we've moved on to Python 3. Guido's getting the well-deserved determining wants

00:12:45.560 --> 00:12:49.600
and it would have been an amazing party. But instead, we're just going to have just the amazing party

00:12:49.600 --> 00:12:51.960
for Python 3. And I'm personally fine with that.

00:12:51.960 --> 00:12:54.720
We can invite Guido. I'm sure he'll be there.

00:12:54.880 --> 00:13:01.780
I don't think that that, I mean, he's still the president of the PSF. So he obviously is still

00:13:01.780 --> 00:13:08.640
going to be involved. And, you know, it's up to us as the community, much like the SciPy community

00:13:08.640 --> 00:13:13.940
did last week. They did a really nice thank you, Guido. Like they got everybody from the conference

00:13:13.940 --> 00:13:20.080
together and gave them a very thoughtful thank you, which I've never seen them do for anything

00:13:20.080 --> 00:13:26.720
before. So it was really cool. And I think he has touched so many people in so many different ways

00:13:26.720 --> 00:13:34.240
that that celebration will come. I think looking at it, I don't know that there's ever an easy way

00:13:34.240 --> 00:13:40.980
to change how you make decisions and governance when you have many personalities involved.

00:13:41.980 --> 00:13:49.360
And it's unfortunate how it came out. But I think there had to be something that would give us

00:13:49.360 --> 00:13:56.920
a catalyst in the developer community to really take some of these issues on that are not necessarily

00:13:56.920 --> 00:14:02.400
new issues to us. He's been asking us to do it for quite a while. And we just haven't either had the

00:14:02.400 --> 00:14:06.880
bandwidth or the sort of kick in the pants to actually go and do it.

00:14:06.880 --> 00:14:11.400
So we're all kind of like the 29 year old kids still living at home and Guido's like, get out,

00:14:11.400 --> 00:14:13.580
go live on your own, take care of yourself.

00:14:13.580 --> 00:14:14.820
A little bit. Yeah.

00:14:14.820 --> 00:14:19.960
All right. So you spoke about governance and decision making and stuff. Like, what do you think

00:14:19.960 --> 00:14:24.420
is going to replace Guido being the final decider?

00:14:24.420 --> 00:14:30.500
It's actually still being actively discussed. As the email Guido sent said, he's basically

00:14:30.500 --> 00:14:37.440
leaving it up to us. He did not dictate how we were going to govern ourselves afterwards.

00:14:37.440 --> 00:14:43.180
So he has left it up to us. He actually didn't even dictate how we would even choose how we would

00:14:43.180 --> 00:14:48.680
choose to govern ourselves. So there's not even a specific choice yet of how we would potentially

00:14:48.680 --> 00:14:55.360
vote for this. Like some people have said PSF fellows, some have said core devs. So there's,

00:14:55.580 --> 00:15:02.760
it's a completely open-ended question. Honestly, the current thinking seems to be around and Carol can

00:15:02.760 --> 00:15:10.160
obviously correct me if my feeling doesn't jive with hers at all, either potentially another BDFL

00:15:10.160 --> 00:15:17.680
or a somehow council of elders or some such. It seems to be the key thing is, is trying to figure out

00:15:17.680 --> 00:15:24.720
how we want to steward the design of the language. We've been managing ourselves daily for quite some

00:15:24.720 --> 00:15:29.520
time. Guido's not directly involved with releases, so that's not even an issue. It's really comes down

00:15:29.520 --> 00:15:35.180
to how do we have someone make the final decision on peps? Who says yay or nay? Who makes the technical

00:15:35.180 --> 00:15:41.200
decisions? Who chooses the paint color for the bike shed? That kind of thing. That's the really key

00:15:41.200 --> 00:15:46.780
thing we have to still make a decision on. Yeah. And I think Brett kind of put it, you know, I think the

00:15:46.780 --> 00:15:54.700
emails that I've at least seen on Python committers have been very respectful and, you know, really trying to,

00:15:54.700 --> 00:16:02.780
seek out what is going to happen from here. And I think Guido's email mentioned four things, day-to-day

00:16:02.780 --> 00:16:10.140
decisions on the issue tracker and GitHub, how peps are decided, which to me is sort of like the direction

00:16:10.140 --> 00:16:15.960
of the language and who stewards that, how new core devs are inducted, and the code of conduct.

00:16:16.440 --> 00:16:24.520
And if I look at all four of those, the day-to-day decisions, as Brett had said, you know, releases and

00:16:24.520 --> 00:16:29.900
things like that, we're in a good spot. And we should probably just be doing what we have been doing.

00:16:30.440 --> 00:16:37.720
How new core devs are inducted. I think that will fall out of whatever decision-making we have for the

00:16:37.720 --> 00:16:43.740
language. I know that we've made some progress over the past couple of years, and I continue

00:16:43.740 --> 00:16:50.260
to see that we will make progress. And the code of conduct, I think we're all recognizing that

00:16:50.260 --> 00:16:59.700
being professional and civil to each other and talking about issues as opposed to whether somebody's

00:16:59.700 --> 00:17:04.260
intelligence calls, it's called into question or whatever, is not the right way to do it. It's

00:17:04.260 --> 00:17:11.640
better to be professional. And, you know, how peps are decided, it seems as if, much like Brett had

00:17:11.640 --> 00:17:19.200
mentioned, that we're sort of converging on maybe three individuals as like a triumvirate or one,

00:17:19.200 --> 00:17:23.560
and no more than five, is sort of how I've read it.

00:17:23.560 --> 00:17:28.740
Okay. That makes a lot of sense. It seems to me, whatever the decision is, it should be odd, not even.

00:17:28.740 --> 00:17:34.180
Actually, that came up already. And Tim Peters, for those of you who've been in language for a long

00:17:34.180 --> 00:17:38.980
time, might recognize the name, who's gotten active again, partially thanks to PEP 572. So,

00:17:39.040 --> 00:17:43.720
at least there's one very nice perk from my perspective from what happened with PEP 572,

00:17:43.720 --> 00:17:49.680
pointed out that the odd number in voting typically is very important when you have an either A or B

00:17:49.680 --> 00:17:54.800
decision, and you have to choose one or the other. But if you have a status quo or a change,

00:17:54.800 --> 00:18:00.900
so more of a yes-no decision, having the tie go to the status quo is not quite so critical.

00:18:00.900 --> 00:18:06.360
So, we could theoretically go with a four and really not have too much of an impactful problem

00:18:06.360 --> 00:18:07.680
in that regard.

00:18:07.680 --> 00:18:12.120
Yeah. I guess it would lead to stronger debates. You've got to bring someone over to your side if

00:18:12.120 --> 00:18:17.360
it's a split decision. And if they fail to decide, then it just stays the way it is. Right? Nothing

00:18:17.360 --> 00:18:18.560
new is adopted, I guess.

00:18:18.560 --> 00:18:23.620
Yeah, exactly. So, there is a possibility of actually going with four, for instance.

00:18:23.620 --> 00:18:24.400
Interesting.

00:18:24.400 --> 00:18:28.240
I don't think anyone suggested two. It seems to be pretty much one, three,

00:18:28.240 --> 00:18:30.940
four, five seems to be the running numbers right now.

00:18:30.940 --> 00:18:31.340
Right.

00:18:31.660 --> 00:18:37.940
Yeah. Interesting. Okay. Yeah, that makes a lot of sense. So, I guess the final thing that we should spend

00:18:37.940 --> 00:18:46.440
some time on is, is this a problem for the community? Is this going to hurt Python's fantastic momentum?

00:18:46.800 --> 00:18:58.180
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?

00:18:58.180 --> 00:18:59.680
Do you want me to take that first, Brett?

00:18:59.680 --> 00:19:00.860
Yeah. Yeah, go ahead.

00:19:00.860 --> 00:19:01.860
You go first, Carol.

00:19:01.860 --> 00:19:24.980
So, 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. The PSF is largely, with the community support, doing many of the outreach things and things to grow the community.

00:19:25.500 --> 00:19:39.120
And then the core development side of things, I think what you've seen is sort of a shift in some ways away from strictly the language to also, you know, Python has a very rich ecosystem of libraries.

00:19:39.120 --> 00:20:02.080
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. And so, yes, there was 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.

00:20:02.080 --> 00:20:20.280
I agree. I think the way I don't think this is going to change the momentum for the 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.

00:20:20.780 --> 00:20:35.880
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.

00:20:36.560 --> 00:20:48.480
So, 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.

00:20:48.480 --> 00:21:02.500
Now, the pace might be slower than it was if, for instance, we go with a counsel versus another benevolent dictator who could potentially come to decisions faster and just do other things.

00:21:02.500 --> 00:21:13.900
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 defending on your definition of short.

00:21:13.900 --> 00:21:15.860
Yeah, for some definition of short, yeah.

00:21:15.860 --> 00:21:25.880
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 and if not already decided by then.

00:21:25.880 --> 00:21:37.460
Now, I've got hopefully a quick question. I guess I don't know how, when there's discussions on peps, who can participate in those discussions? Is it just core developers?

00:21:37.460 --> 00:21:43.780
I have to caveat this with this was the way it used to be. We'll see if this continues.

00:21:44.520 --> 00:21:57.100
But to answer that question, Brian, basically, the way we suggest people do peps is they come with an idea to Python ideas, the mailing list, and they propose it. And usually pretty quickly, people either go, that's been proposed before.

00:21:58.280 --> 00:22:12.960
No, that's not doesn't seem very Pythonic. Or there's that seems like a possibly good idea. And Guido did occasion come in and say, yes, there's a possibility for this or shuts would shut an idea down quickly. So people didn't waste their time.

00:22:13.460 --> 00:22:27.100
And 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's a more formal proposal. And then more discussion on Python ideas to help that author refine it.

00:22:27.520 --> 00:22:50.120
And then what they would do is they would then bring that to Python dev and then 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.

00:22:50.520 --> 00:22:55.520
Or he would keep the BDFL vote himself and he would eventually make the call.

00:22:55.520 --> 00:23:12.160
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 the PEP is in a good position.

00:23:12.160 --> 00:23:24.860
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 peps from Python ideas on dev as.

00:23:24.860 --> 00:23:32.900
And so there was a lot of repetitious discussion of things that should have been recorded initially in the PEP to have tamped down on the repeated discussion.

00:23:33.360 --> 00:23:39.740
Because the discussion on Python ideas actually was a bit more reasonable than it was on Python dev and less reactionary, funny enough.

00:23:39.740 --> 00:23:46.180
So that's generally the process is idea to Python ideas, then a rough pep, and then refine it.

00:23:46.180 --> 00:23:55.240
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.

00:23:55.240 --> 00:23:57.940
And the PEP either got accepted or rejected.

00:23:57.940 --> 00:24:00.260
And that's basically the way it was.

00:24:00.260 --> 00:24:06.380
Is there a point in that process where the rest of the community can, I guess, add to the opinion?

00:24:06.380 --> 00:24:09.680
So yes, Python ideas is a completely open mailing list.

00:24:09.680 --> 00:24:12.180
Python dev is also a completely open mailing list.

00:24:12.180 --> 00:24:15.720
So none of these discussions are happening behind closed doors at all.

00:24:15.720 --> 00:24:21.460
The only mailing list, honestly, that is in any way closed in any of this process is Python committers.

00:24:21.460 --> 00:24:27.220
And that has more technical details that only affect Python core developers themselves and not peps.

00:24:27.460 --> 00:24:32.780
So none of these discussions happen in such a fashion that outsiders, outsiders is a bad term.

00:24:32.780 --> 00:24:38.320
People who happen not to be core developers are always able to bring forward their opinion.

00:24:38.320 --> 00:24:52.160
The part of the trick, though, is not having people suddenly pop in and leave their opinion without checking what other people have said or come in and not understanding how to be professional about leaving their opinion.

00:24:52.560 --> 00:25:01.620
So there's always a balancing act of trying to ask too widely of people who don't quite understand the norms of how to communicate well, honestly.

00:25:01.620 --> 00:25:05.160
But none of the conversation is closed off such that people can't participate.

00:25:05.320 --> 00:25:21.260
So 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 and Python ideas or drafting up that PEP or on Python dev where it's very much more finalized, like very honing into the technical details of how this would work.

00:25:21.260 --> 00:25:26.960
And really thinking through the ramifications and really focus, focus discussion before our final decisions made.

00:25:27.180 --> 00:25:29.180
But as I said, this is how it was.

00:25:29.180 --> 00:25:30.600
I don't know how we're going to tweak it.

00:25:30.600 --> 00:25:31.580
Yeah, that makes a lot of sense.

00:25:31.580 --> 00:25:33.920
Yeah, and it should more or less be the same going forward.

00:25:33.920 --> 00:25:42.440
It just might, we might start being a bit stricter about when peps move from Python ideas to Python dev to try to make sure the discussion doesn't get rehashed.

00:25:43.160 --> 00:25:57.980
And as Carol pointed out, this is kind of brought forward some code of conduct issues that will 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.

00:25:57.980 --> 00:26:16.260
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 like the most meaningful content when it comes to comments?

00:26:16.620 --> 00:26:26.600
And, you know, part of the issue with 572, there were so many comments that you have to kind of read them all if you wanted like the full spectrum.

00:26:26.600 --> 00:26:30.200
And not all of us have time to do that.

00:26:30.200 --> 00:26:36.880
And so, you know, a way to condense or shorten the period of comments or something.

00:26:36.880 --> 00:26:43.560
And that's as much a social issue and in some ways a conduct issue as it is a technical issue.

00:26:43.560 --> 00:26:54.640
Yeah, that'd be something like in my own community, for instance, in like physical communities, everybody is welcome to attend the open city council meetings, but hardly anybody does.

00:26:54.640 --> 00:26:59.700
However, when there's a change that affects everybody, that's usually posted somewhere.

00:26:59.700 --> 00:27:04.220
And then there's like a period of open for community comment or something.

00:27:04.220 --> 00:27:16.920
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.

00:27:16.920 --> 00:27:17.420
Yeah.

00:27:17.420 --> 00:27:20.700
And that's definitely something that's been talked about.

00:27:20.700 --> 00:27:25.280
All that puts work on the Python community itself also to do that.

00:27:25.280 --> 00:27:26.420
That's work as well.

00:27:26.420 --> 00:27:26.660
Yeah.

00:27:26.660 --> 00:27:41.700
And actually, historically, the PEP was supposed to capture all of these details, like the rejected idea and open discussion, open idea section of every PEP was meant to act as a running summary of the discussion to help prevent that.

00:27:42.380 --> 00:27:49.540
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.

00:27:49.540 --> 00:28:01.360
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.

00:28:01.540 --> 00:28:04.900
Yeah, it sounds like there's some community stuff to do as well.

00:28:04.900 --> 00:28:10.820
But I have faith that you guys will figure something out in terms of the voting and the decision making.

00:28:10.820 --> 00:28:17.260
And I guess I want to sort of echo Carol's thought when I ask about the momentum.

00:28:17.260 --> 00:28:26.200
So much of Python's momentum is with the ecosystem and the extra libraries and PyPI and all of these things.

00:28:26.200 --> 00:28:33.160
And honestly, if the language didn't change one bit for five years, I still think there would be massive momentum in the community.

00:28:33.160 --> 00:28:35.100
So I don't see a real danger here.

00:28:35.100 --> 00:28:35.880
Not at all.

00:28:35.880 --> 00:28:39.760
And honestly, I think the momentum's due to the community.

00:28:39.760 --> 00:28:44.440
And Guido has helped shepherd it forward and bring it to where it is.

00:28:44.440 --> 00:28:52.620
But I think at this point, the language and the community built around it is honestly bigger than Guido at this point.

00:28:52.620 --> 00:29:02.500
So while we'll all miss Guido immensely and his contribution is very important, I don't think the community should worry because the community itself is going to be what carries this forward.

00:29:02.500 --> 00:29:02.920
Yeah.

00:29:02.920 --> 00:29:12.860
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?

00:29:12.860 --> 00:29:14.380
What would Guido think?

00:29:14.380 --> 00:29:22.340
You know, put yourself, write your email messages like you're the BDFL and have to convince people.

00:29:22.340 --> 00:29:29.400
I think there are some people that are very articulate and have great ideas and add a lot to improving it.

00:29:29.400 --> 00:29:33.720
You know, I think the PEP didn't get improved from beginning to end.

00:29:33.940 --> 00:29:38.500
But it's taxing when you have to slog through the negativity.

00:29:38.500 --> 00:29:53.880
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.

00:29:53.880 --> 00:29:58.860
And, hey, this is for the greater good of the language.

00:29:58.860 --> 00:30:02.460
It's you don't have to use it or trust.

00:30:02.800 --> 00:30:04.520
I think trust is a big part of it.

00:30:04.520 --> 00:30:09.820
Trust that the people who are making the decisions are being good stewards for the language.

00:30:09.820 --> 00:30:17.800
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.

00:30:17.800 --> 00:30:19.800
Yeah, I think that was already mostly there.

00:30:19.800 --> 00:30:24.540
It's just it is sad that this put the final straw on Guido.

00:30:24.540 --> 00:30:27.340
But thanks to him for everything that he has done.

00:30:27.340 --> 00:30:29.440
I think this may be a good place to leave it.

00:30:29.700 --> 00:30:33.480
Brett, Carol, you guys want to have some final parting thoughts on this whole idea?

00:30:33.480 --> 00:30:36.160
Anything else you want to add before we call it a show?

00:30:36.160 --> 00:30:36.780
Not really.

00:30:36.780 --> 00:30:39.940
I think we've pretty much, as we said, no need to panic.

00:30:39.940 --> 00:30:40.740
Keep on coding.

00:30:40.740 --> 00:30:43.840
I think we're going to move past this with no real issue.

00:30:43.840 --> 00:30:47.320
Obviously, thanks to Guido, as we've all said.

00:30:47.320 --> 00:30:59.140
And hopefully, while it's sad that Guido is 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.

00:30:59.140 --> 00:30:59.800
Yeah, absolutely.

00:30:59.800 --> 00:31:00.120
Carol?

00:31:00.120 --> 00:31:01.440
I agree with what Brett said.

00:31:01.440 --> 00:31:04.400
And I also think the surprise may still come.

00:31:04.400 --> 00:31:06.960
Guido is not going away.

00:31:06.960 --> 00:31:18.940
He may be more focusing on things that rock his world that he sort of put on hold while he shepherded the design and decision making of the language.

00:31:19.300 --> 00:31:23.920
And I think there's still some Guido surprises yet to come.

00:31:23.920 --> 00:31:25.800
And I look forward to that.

00:31:25.800 --> 00:31:32.260
And I just thank him for being an amazing person as well as a great language developer.

00:31:32.260 --> 00:31:34.000
Yeah, I totally agree with that.

00:31:34.000 --> 00:31:35.040
He actually has not disappeared.

00:31:35.040 --> 00:31:39.700
He actually just replied to some emails yesterday and today about PEP 44, which is type hints.

00:31:40.260 --> 00:31:42.260
So he's still actively engaged.

00:31:42.260 --> 00:31:44.620
So he definitely has not disappeared off the mat.

00:31:44.620 --> 00:31:44.960
Yeah.

00:31:44.960 --> 00:31:45.400
Nice.

00:31:45.460 --> 00:31:47.080
Well, if I could throw some ideas out there.

00:31:47.080 --> 00:31:49.420
Python WebAssembly browser.

00:31:49.420 --> 00:31:52.540
I'm just going to leave that there if he wants to, you know, try something new.

00:31:52.540 --> 00:31:55.620
Brian, anything else?

00:31:55.620 --> 00:32:06.900
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.

00:32:06.900 --> 00:32:08.540
You know, don't hit the keyboard right away.

00:32:08.540 --> 00:32:12.300
Try to talk to people online as if you were talking to them in person.

00:32:12.300 --> 00:32:21.580
And again, if you haven't watched the Brett's talk from 2018, Picon, go watch it because it was an eye opener for me.

00:32:21.580 --> 00:32:24.520
How similar was that to your PyCascades one, Brett?

00:32:24.520 --> 00:32:25.300
Pretty much the same.

00:32:25.700 --> 00:32:31.220
It was my PyCascades talk became my PyCon US keynote talk.

00:32:31.220 --> 00:32:31.460
Yeah.

00:32:31.460 --> 00:32:34.680
So definitely people should watch that.

00:32:34.680 --> 00:32:37.260
I think it sets the right tone for things.

00:32:37.260 --> 00:32:38.280
I'll put that in the show notes.

00:32:38.280 --> 00:32:38.680
Awesome.

00:32:38.680 --> 00:32:39.120
All right.

00:32:39.120 --> 00:32:40.520
Thank you all for being here.

00:32:40.520 --> 00:32:47.880
It's really, I think it's important to spend some time talking about this and just sort of getting that inside information out for everyone in the community.

00:32:47.880 --> 00:32:49.080
And I think we're going to be fine.

00:32:49.080 --> 00:32:50.700
So let's carry on, huh?

00:32:50.700 --> 00:32:51.880
That sounds good.

00:32:51.880 --> 00:32:52.280
All right.

00:32:52.280 --> 00:32:52.700
Bye, everyone.

00:32:52.700 --> 00:32:53.000
Bye.

00:32:53.000 --> 00:32:53.540
Bye.

00:32:53.540 --> 00:32:55.540
Bye.

00:32:55.540 --> 00:32:57.140
Thank you for listening to Python Bytes.

00:32:57.140 --> 00:32:59.700
Follow the show on Twitter via at Python Bytes.

00:32:59.700 --> 00:33:02.580
That's Python Bytes as in B-Y-T-E-S.

00:33:02.580 --> 00:33:06.020
And get the full show notes at pythonbytes.fm.

00:33:06.020 --> 00:33:10.340
If you have a news item you want featured, just visit pythonbytes.fm and send it our way.

00:33:10.340 --> 00:33:13.060
We're always on the lookout for sharing something cool.

00:33:13.540 --> 00:33:16.460
On behalf of myself and Brian Okken, this is Michael Kennedy.

00:33:16.460 --> 00:33:20.060
Thank you for listening and sharing this podcast with your friends and colleagues.

