
Guido blames social media for his decision to abandon the supervision of Python - revyuh
https://www.revyuh.com/2019/05/guido-blames-social-media-in-part-for-his-decision-to-abandon-the-supervision-of-python/
======
cletus
Serious question: did anything good come out of paying attention to Twitter?
Like, ever? I'm sure it has its bubble-living adherents here. Then again, so
did Quora.

As for the claim of "questioning [his] authority", isn't that a given? With or
without social media. That's pretty much human nature. It's up to you to
establish the tone and medium of how people interact with you. Linus, for
example, is pretty much strictly email and most things go through one of the
"inner circle" who are largely responsible for areas like networking. As brash
as he can be, you pretty much know what to expect and you have delegation.

Honestly, I wonder how much of this goes back to GvR's handling of Python 3.
This should go down as something to be studied for years on how not to do a
breaking change. IIRC Python 3 was released in 2008. Here we are in 2019 with
no end in sight for Python 2.7.

My favourite Python 3ism was the removal of the s and u string literal
prefixes. In Python 2.0+, u'this is a string' was a Unicode literal prefix. It
was removed in 3.0 for reasons that are beyond me (I know Unicode became the
default for string literals) but then added back in 3.3 for backwards
compatibility. Why remove it in the first place? It makes no sense. But this
just went to the perception that the Python powers-that-be were removed from
reality in their hubris.

Anyway, GvR... one can't help but respect his stewardship and contribution to
Python. Please make no mistake about that. The weird thing about human nature
is in situations like this, if the peanut gallery senses they're getting to
you it only encourages them. Sad but true.

~~~
thanatos_dem
> Here we are in 2019 with no end in sight for Python 2.7

An end is in sight, is coming soon, and it’s sort of concerning that more
folks haven’t realized it yet -
[https://pythonclock.org/](https://pythonclock.org/)

~~~
StavrosK
Seriously, I wonder how many of the people who proclaim "no end in sight" for
2.7 are actually using Python. In the usage I can see, the majority of the
ecosystem seems to support 3, and at least a large minority has stopped
supporting 2.

~~~
Analemma_
I think they’re both true. People who are “extremely online” and up-to-date
with technology developments are all done with Python 2.7 and can say the end
is near, but they’re not the only people. There’s an entire dark matter world
of businesses still on 2.7, maintained by people who don’t live in the Bay and
don’t read Hacker News, and so they’re largely invisible. It will be a long
time before they all switch.

~~~
Bahamut
Even in the Bay Area there are companies still with Python 2.7 with no real
migration strategy yet. I maintain several such packages at work myself.

~~~
StavrosK
I don't know, we have a codebase of 100k loc of Python 2.7 and I migrated much
of it in two or three weeks myself. I don't think the fact that companies
don't spend some time drawing up a strategy is the language's problem.

------
dotdi
> “Dripping water hollows out stone, not through force but through
> persistence.” ― Ovid

It's not easy to take all the hate and ill-will day in day out. It's not even
easy to ignore it, much less to deal with it.

I respect Guido's decision even though I was quite sad to see him step down.
It's not difficult to see that, with Pythons growing popularity, things would
probably have become even worse for him in the future.

~~~
nabla9
Social media gives unfair advantage to a horde of ankle biters, influences and
opinionated individuals to affect things that matter.

Even completely harmful promotion can snowball into supporting harmful
behaviour. CTO or senior developer in a small company may feel the need to
promote stuff they do by writing technical articles and commenting ongoing
debates in the social media. Attaching comments to anything that is trending
is important if you want to promote stuff. Suddenly the person is committed
with his own name to something he did not thing trough and unintentionally
adding side support to some hate campaign.

~~~
DFHippie
Not to bite any angles, but s/angle biter/ankle biter/.

------
linsomniac
It is really hard on maintainers. I think a lot of it is that old adage "It
takes 10 positive things to counteract one negative one." And, for some
reason, people on the Internet can choose to have any alternate persona they
want, and what do they choose? The shittiest person imaginable.

There was a really good Keynote by Brett Cannon last year at PyCon about how
hard, emotionally, maintaining OSS is:
[https://youtu.be/tzFWz5fiVKU?t=3259](https://youtu.be/tzFWz5fiVKU?t=3259) \--
Unfortunately the official post is buried after 50 minutes of lightning talks.
He gets very emotional on stage. I was sitting with him before he gave this
talk, it was a very hard talk for him to give, and so very important.

My own story like this: I took over maintenance of a module that had been
abandoned, but after the better part of a decade I ran into a time in my life
where I have little time for it. It had been languishing, but someone finally
offered to help out on the maintenance. Great! I added them to the github
project, they started triaging issues, and within a day this guy started
spitting vitriol at the new maintainer.

I called this guy out, but he doubled down. I just locked the issue and moved
on with my life. But this guy tracked me down and sent me an e-mail to my
personal e-mail full of expletives. Followed quickly by an apology:

"I'm sorry, I didn't mean to send that e-mail from my work e-mail address,
please don't get me fired."

Literally: No apology for being a jerk, just begging me not to share that
exchange with their employer. All of the github comments he had made were
removed or severely edited.

And... That person who offered to maintain that module? That was the last time
they touched it.

~~~
mixmastamyk
Clowns must be held accountable for their actions, otherwise they don't learn.

------
mixmastamyk
Believe the Python3 change is a bit of a red-herring, everyone learned from
that.

The breaking point was PEP 572 (ie :=) which was quite controversial. The
lesson here: One shouldn't attempt to reverse 25-year old design decisions,
not even GvR. Python is too big now.

There was a compromise (and more congruent) alternative, reuse of the "as"
keyword, that was thrown out immediately, and proponents rammed 572 thru
despite significant objection. That's when things got ugly. Personally I
disagreed with that decision, and tried to support the compromise design.

In the end, didn't think 572 was the end of the world (will be occasionally
useful, if ugly), and tried to stay polite, but sadly many didn't. Then he
accepted 572 and stepped down, as if one last poke in the eye, unfortunately.

~~~
metalliqaz
I think you're right about 572, although even that wouldn't have been enough
without all the other stuff from the past, such as the unicode strings.

I often have to write things like this:

    
    
      m = re.match()
      if m:
        do something
    

So I'm looking forward to the feature. I'm not sure you were fair to the
process about the alternative syntax, though. They did give a well-reasoned
explanation for discounting it.

~~~
mixmastamyk
It was discounted because it was less flexible, didn't handle as many use
cases. True.

However, during the process Victor Stinner rewrote one large module using the
new syntax as an exercise. We learned that ~95% of the time, only the simplest
case was used, the form you gave above. The extra flexibility turned out not
very important in real code.

We had a choice of ":=" syntax, duplicate but full functionality, and losing
the BDFL, or ~95% functionality, language congruity, and keeping him. They
chose the former.

Maybe Guido stepping aside will be good in the long run however, it was bound
to happen eventually.

------
mjw1007
Note that Guido has been elected to the new steering council, and the council
has been delegating language-design questions to him.

So I think (and hope) the effect of these changes will be that Guido will make
more or less the same decisions as before, but both be under less stress when
doing so (because he doesn't _have_ to be the final decision maker), and no
longer have to be concerned about people questioning the source of his
authority.

------
jsmeaton
The governance model has already been decided, and the steering council
elected.

[https://www.google.com/url?sa=i&source=web&cd=&ved=2ahUKEwj9...](https://www.google.com/url?sa=i&source=web&cd=&ved=2ahUKEwj9wfzQhIfiAhUbcCsKHR_eBwEQzPwBegQIARAC&url=https%3A%2F%2Fsnarky.ca%2Fan-
update-on-pythons-
governance%2F&psig=AOvVaw20lBJ5sZiwPycetdS3TOdm&ust=1557236626663837)

~~~
brittohalloran
PEP-8016 [1] has the details of the steering council mechanism (5 person
elected council, describes their powers), and PEP-8100 [2] has the results of
the election and now shows vote totals.

[1]
[https://www.python.org/dev/peps/pep-8016/](https://www.python.org/dev/peps/pep-8016/)

[2]
[https://www.python.org/dev/peps/pep-8100/#results](https://www.python.org/dev/peps/pep-8100/#results)

------
Demiurge
This is not an accurate title. He is not blaming ths social media, he is
blaming the developers who engaged in social politics instead of open and
honest conversation.

------
misthop
Many people here are referencing the 2 to 3 process as germane to the
discussion, but it was really PEP 572 (the walrus operator := ) that was it
for him. PEP 572 was _hugely_ contentious among the core devs, much more so
than the 2 to 3 transition.

Citation - Yesterday at Pycon during the Steering Council meeting he stated
that he tendered his BDFL resignation the morning after approving that PEP

------
ravenstine
Not that I think Guido's decision to leave his supervisory role is wrong, but
couldn't he have simply not engaged with social media and just continue his
role without all the negative garbage input? It's not like the things people
say on Twitter without accountability is worth a damn.

------
MrGilbert
For a "Benevolent Dictator", social media should be like the schoolyard for a
teacher: Let the folks have their talks, their chit-chat. If there is a real
issue, it's up to them to voice it. If they question your authority, so be it.

Maybe this is something you have to get used to.

~~~
java_script
It's 2019 and we're _all_ posters now. Even the leader of the free world is
involved with the kind of online disputes that internet addicts were having in
the 2000s on vBulletin sites. Congress has had hearing from people mad that
their posts weren't getting enough traction. It's hilarious but I'm no longer
surprised when I find out someone famous is as 'online' as me now.

------
amelius
What I don't get is if you're tired of certain forms of social media, then why
don't you quit using those?

------
gubbrora
Sad to hear. I don't know what exactly he did for python project, but if we
take the pudding as proof of the recipe he did a lot of things right

Edit: I meant I don't know what he did as a bdfl day to day.

~~~
misthop
He literally invented the language, and until stepping down last year (as
described in this link) he was the python BDFL (Benevolent Dictator for Life)

I apologize if this came off snarky - I did not mean for it to, I just wanted
to emphasize Guido's contributions. (edited)

------
uglycoyote
Although the article was mostly about this social media issue, watching the
attached video I found Guido's statements about diversity and unconscious bias
in Open Source to be a much more interesting part of the interview. (around
the 23 minute mark)

Quote from Guido:

If you say "our project is open, anybody can come and join us, anybody can
contribute", you are really underestimating the issues. Because it is not just
joining the project that's the problem, it is staying in the project.

Which means you have to feel comfortable exchanging emails and code reviews
and what-all with people that you don't know personally but you communicate
frequently online.

And that sort of communication requires that everybody has respect for each
other, and that respect is often missing because of unconscious biases, where
guys and sometimes even women, who believe that they have no bias, don't
realize that there are small differences in communication styles between men
and women, (sometimes they are large differences) that just make it harder for
women to join a particular community.

Because it's not just about writing the code, you have to sort of stand up for
your code, defend your code, and there is a certain male attitude there that
is endemic in many projects, where a woman for example would just not feel
comfortable sort of claiming that she is right, that she has the correct
insight to decide or to choose a solution, while a guy who knows less than
that woman might honestly believe more in their own being right, and so they
present a much more confident image. And so they have a much easier time even
when they are not all that competent. As long as they present confidence they
might get their inferior solution adopted.

A woman will more likely feel that she has to have a perfect solution and a
perfect understanding of the issues, why it is a perfect solution, before she
will even submit a patch. I am doing a fair amount of mentoring of women
specifically, and I found that sometimes women I am mentoring will ask for my
approval on every step of the way. They will say "I want to file an issue on
the bug tracker but I'm afraid of the negative backlash when I put the issue
in, can I tell you what I want to write the issue about?" That is charming,
but and I always tell them "just put it in the tracker already! your head is
not going to be bitten off, you will got honest feedback, and whether the
feedback is 'that is a good idea' or 'that is a bad idea' it will be fine".
But I'm sure a guy of the same skill level would not hesitate to just put the
issue in the tracker. It is a bit of an attitude and mentality difference
which makes it much harder for competent women to get started and stay afloat
in this community where the male attitude is the default attitude. Because if
someone presents that uncertainty, they are much more likely to get ignored or
rejected.

------
caymanjim
Every leader throughout history has had to put up with the discontent of the
governed. Being thick-skinned and ignoring the barbs is part of the job.

Social media is a red herring here; this sort of thing has happened on all
forms of social media since the dawn of computing. It used to be on mailing
lists and Usenet. Now it's primarily on Twitter.

After 30 years of leading a project, anyone is going to get worn down.

~~~
anc84
The psychological feedback loops and self-affirmation have been tweaked to
perversion and addiction by social media. There are notifications, +1, heart,
subreferences, everything, everywhere. It has become much more overwhelming.

~~~
user17843
yes, it's sickening. I do my best to filter out all the like and upvote stuff,
but it doesn't really help because it changes the entire atmosphere of a
platform and thus affects me too.

------
twerkmonsta
No offense to Guido, and I love Python, but the transition from Python 2 to
Python 3 is a reference point for me in terms of how NOT to update a
programming language. Noone should ever be attacked, but surely someone
deserves some criticism.

~~~
beambot
What would you have done differently? Frankly, it seemed pretty principled to
me -- enough to where I wouldn't be comfortable Monday quarterbacking.

~~~
devit
Make the 2 vs 3 language decision be module-specific with a single Python
executable supporting both languages, allowing you to freely mix Python 2 and
3 files and libraries and thus not splitting the ecosystem.

~~~
eesmith
I believe that would have been much more expensive to develop, and the Python
dev team didn't have the resources for it.

The easiest things can be done by automatic translation, like 2to3.

The remaining parts get increasingly difficult, because Python 2 objects have
to know how they are interpreted in Python 3, and vice versa.

A simper step would be to write an AST transformer to instrument Python 2 code
and identify the non-Python 3-compatible uses of, for example, keys() and
values(). That's almost as hard as writing a Python 3 implementation in Python
2, and I couldn't convince myself that it made financial sense given that it
would still miss a lot of corner cases.

------
rodorgas
A dictator that can’t stand to others questioning your decisions is a weak
dictator. Python is mature enough to have the current governance model, but
his exit could have been less noisy.

~~~
Insanity
a "dictator" is still human. I think you might underestimate how annoying
people can be online.

