On 04.05.2018 19:04, Guido van Rossum wrote:
Thank you Steven! I assume that Brian hadn't seen my response (such crossed messages due to delivery delays are very common in this mailing list).

I'd like to use your email (nearly) verbatim to start off the discussion about civility we're going to have at the Language Summit.

Since I won't be present at the summit to tell my side of the story, you can see it below.
It's up to you to judge it, but as least you need to know what to judge.

In a nutshell, this is an exceptional situation, and I saw no better way that was guaranteed to work.
I never meant or mean to use this as a standard tactic, this is only the second such case in my life.
On Fri, May 4, 2018 at 8:43 AM, Steven D'Aprano <steve@pearwood.info> wrote:
On Thu, May 03, 2018 at 06:31:03PM +0000, Brett Cannon wrote:

> No one is saying people can't be upset and if you are ever upset there's
> something wrong; we're human beings after all. But those of us speaking up
> about the tone are saying that you can also wait until you're not so upset
> to write an email. This was never going to be resolved in an hour, so
> waiting an hour until you're in a better place to write an email that
> wasn't quite so inflammatory seems like a reasonable thing to ask.

Certainly!

I'm not defending Ivan's initial email. His tantrum *was* annoying,
unreasonable, and unfair to those who do care about tkinter. He could
have done better.

But *we* should be better too. Our response to Ivan has not been
welcoming, and as a community we haven't lived up to our own standards,
as we have piled onto him to express our rightous indignation:

1. Guido responded telling Ivan to calm down and work off his
   frustration elsewhere. And that's where things should have
   stopped, unless Ivan had persisted in his impoliteness.

2. Brian upped the ante by bringing the CoC into discussion.

3. Paul raised it again by describing Ivan's post as "offensive".

4. And now, Steve H has claimed that Ivan's initial post was
   bordering on "abusive".

We've gone from rightly treating Ivan's post as intemperate and
impolite, and telling him to chill, to calling his post "offensive", to
"abusive". (Next, I presume, someone will claim to be traumatised by
Ivan's email.)

Just as Ivan should have waited until he had calmed down before firing
off his rant, so we ought to resist the temptation to strike back with
hostility at trivial social transgressions, especially from newcomers.
This is what Ivan actually said:

- Tkinter is broken and partly functional (an opinion with only the
  most tenuous connection with fact, but hardly abusive);

- that nobody cares (factually wrong, but not abusive);

- that possibly nobody is using it (factually wrong, but not abusive);

- that if that's the case (it isn't), then it should be removed
  from the std lib (a reasonable suggestion if only the premise had
  been correct).
As I suspected. This is a classic scenario that is occasionally seen anywhere: "everyone is underestimating a problem until a disaster strikes".
The team's perception of Tkinter is basically: "well, there are slight issues, and the docs are lacking, but no big deal."

Well, this _is_ a big deal. As in, "with 15+ years of experience, 5+ with Python, I failed to produce a working GUI in a week; no-one on the Net, regardless of experience, (including Terry) is ever sure how to do things right; every online tutorial says: "all the industry-standard and expected ways are broken/barred, we have to resort to ugly workarounds to accomplish just about anything"" big deal. This is anything but normal, and all the more shocking in Python where the opposite is the norm.

And now, a disaster striked. Not knowing this, I've relied on Tkinter with very much at stake (my income for the two following months, basically), and lost. If that's not a testament just how much damage Tkinter's current state actually does, I dunno what is.

Of course, it's up to me to write fixes and all since this is a volunteer project. But I can't do this alone, I must recruit the team's cooperation if I hope to ever be successful. Unless I shatter their current outlook on the matter first, any fixes I provide will likely be dismissed as unneeded or deferred indefinitely as unimportant. There are precedents of that, including with no response whatsoever, and the messages were written neutrally, with a thorough explanation, patch/PR etc. (I do believe the maintainers are doing their best. Still, the mere fact that they chose to work with other tickers over mine shows that they considered those more important. So it does matter if they underestimate a topic.)

That's why I had to resort to shock value. First, it would guarantee that my message won't fall on deaf ears this time as well. Second, I had to express, somehow, that there indeed was a systemic disaster, not just your average newbie conundrum, in graphic details to shock the team and disrupt their current way of thinking about the Tkinter case.

Putting the question point-blank: "drop/deprecate" -- also helped the shock value, and would also force the team to reassess if they really have the will or resources to bring the module up to Python standards or at least prevent any more such damage.
I also did require the team's feedback on this question to assess the perspectives for results of my efforts -- thus if they're worth the time -- as explained in https://mail.python.org/pipermail/python-dev/2018-May/153330.html .

By no means I consider this a standard way of action. This is only the second such case in my life. The previous one was when I created a translation project for the GPL and found that I cannot legally do that the way that was required to make it work due to overly defensive FSF's terms.

This is the justification. It's up to you to judge how sound it is, but you need to know what to judge, at least. I wasn't happy to have to resort to this, but found no better way that would be guaranteed to work.

Now that the social issues are out of the way and I got the required feedback to continue, I can finally concentrate on the patches, with confidence that my efforts won't go to waste.

Intemperate and impolite it certainly was, as well as full of factual
inaccuracies, but to call it "close to abusive" is a hostile over-
reaction. We ought to be kinder than that. Our response to Ivan has been
more hostile, and less open and respectful, than his email that
triggered the response.

Brett is right to say people can afford to wait a little while before
firing off an angry email. But the same applies to us: we too can afford
to wait a little while before raising the threat of the CoC over a minor
social faux pas. This community isn't so fragile that we have to jump
down the throat of a newcomer lest the community immediately collapses
into Call Of Duty gamer culture.


--
Steve
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org



--
--Guido van Rossum (python.org/~guido)


_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/vano%40mail.mipt.ru

-- 
Regards,
Ivan