classification
Title: Replace ableist terms and pejoratives in source code.
Type: enhancement Stage: resolved
Components: Documentation Versions: Python 3.8
process
Status: closed Resolution: postponed
Dependencies: Superseder:
Assigned To: Nosy List: 25.45, Socob, brett.cannon, rhettinger, suic, terry.reedy, willingc
Priority: normal Keywords:

Created on 2018-09-13 16:15 by 25.45, last changed 2018-09-22 19:54 by Socob. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 9287 merged rhettinger, 2018-09-14 00:06
PR 9335 closed python-dev, 2018-09-15 18:59
Messages (11)
msg325260 - (view) Author: (25.45) * Date: 2018-09-13 16:15
It has come to my attention that CPython's source code contains problematic ableist/saneist terms and/or pejoratives, namely

sanity check    144
silly           26
insane          13
crazy           13
stupid          6
lame            2
lunatic         1

Some of those slipped into the documentation. In an attempt to make Python community more inclusive and welcoming, we should clean up these usages and replace them with something neutral (where applicable). Unfortunately, to this day many developers deem such efforts as "trolling", so please note that the precedent has already been set by many major projects. Here're just a few:

https://github.com/unpkg/unpkg.com/pull/81
https://github.com/reduxjs/redux/pull/2335
https://github.com/rtfd/readthedocs.org/pull/3752
https://github.com/krzysztofzablocki/Sourcery/issues/2
https://github.com/google/xi-editor/pull/126

Other resources:

https://english.stackexchange.com/q/282282
http://isthisableism.tumblr.com/sluralternatives

The goal of this issue is not to stir up arguments, but to figure out the alternatives and ways to replace those problematic terms.
msg325291 - (view) Author: Carol Willing (willingc) * (Python committer) Date: 2018-09-13 20:26
Thank you for filing an issue. I will be carefully reviewing the Python documentation section by section over the next several months. I will open individual issues as I go through each section as well as pull requests as I thoughtfully review each section.

I'm closing this issue but will be opening individual issues by documentation section as time permits my review.
msg325456 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-09-15 20:41
I am re-opening with the scope limited to source code that will not be part of a doc review.  The 2nd PR falls within this limit and I think it should be properly reviewed.

I am opposed to removing 'sanity check' as it has a well-enough defined meaning within programming that does not disparage the code author.  Indeed, sanity checks are often written and labelled as such by module authors.  PR9335 does not touch this phrase.

The other terms are more often applied to code by others, sometimes with a hint of disparagement of the author.
msg325486 - (view) Author: Gabriel (suic) * Date: 2018-09-16 14:14
Come on guys. Stop this madness. :(
msg325502 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-09-16 21:19
David and Brett: I consider part of the actions of the anonymous person using the temporary aliases 25.45 and jonsees to be violations of our Code of Conduct.  I would therefore like you two to issue a warning, if not a ban.

I consider the first part of the initial message to be arrogant and rude.  I let that go, took "The goal of this issue is not to stir up arguments, but to figure out the alternatives and ways to replace those problematic terms." at face value, re-opened the issue, and reviewed the second PR.  In response, 'jonsees' refused to fix the bug and make or discuss the other requested revisions, but instead insulted and lied*.  In other words, 'argument' rather than 'figuring out'.  This treatment of my volunteer efforts makes me less willing to contribute more.

* In the context of Victor's changes on another issue, Raymond merging his first PR, Carol's promise to review the docs for inconsiderate language, and me reviewing the second PR and approving parts thereof, "Python developers have no desire of actually accepting any of these changes" is an insulting lie.
---

Gabriel: From what you wrote here, it was not immediately clear what 'madness' you want stopped.  The presence of certain words in the docs?  Or the blanket removal of certain words from the docs?  I am guessing the latter.  If so, that is not what any core devs that I know of are openly advocating.

The fact that I have to guess illustrates what I wrote in the review: "the 'sin' of these words is that they tend to be vague and say more about the writer's opinion than about the ostensible subject."  Do you think it madness to replace vague (and somewhat sloppy) words with more precise words that better communicate real meaning to users?  That is what Raymond did and what I intended to do.
---

I am leaving this issue open so that I can at least remove "Windows is lunatic" in a new PR.
msg325503 - (view) Author: Gabriel (suic) * Date: 2018-09-16 22:44
@terry.reedy: By madness I meant:

1. blank replacement of words without relevant justification. Collecting 5 links and labelling some words as pejorative or <whatever>ist or do it for “diversity reasons” etc. is no justification. I have no problem with changing wording in documentation but it has to be justified.

2. that IMO this is _de facto_ PC/SJW language mutilation/censorship. I've made my main claim about that here: https://bugs.python.org/issue34605#msg324825 and IMO this is a continuation of the BPO34605 which is not any better or even worse than this one. I also expect more BPOs and PRs like this and IMHO _no more BPOs or PRs like this should be accepted or merged_.

If I can advise: There should be a clear statement about how PSF and core developers will handle BPOs and PRs like this or BPO34605 i.e. if you accept/reject them in the future eventually what is going to be the rule of thumb for acceptance. It can bring some clarity into this whole issue/discussion. What I’ve experienced so far is very disappointing. Repeating “there will be no more discussion about this” is not a solution and I consider this to be damaging for Python community’s reputation.
msg325506 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-09-17 01:12
Gabriel, I believe I addressed most your concerns in my previous post.  You might reread it in that light.  

There seems to be a misperception that we have collectively changed how we judge doc proposals.  Should we 'announce' that we proceed as we have been?

Are you are suggesting that we judge proposals by the proposer, rather than the substance of the proposal? In general, I should hope we do not have to.

If you want to be concretely helpful, comment on one or more of the specific proposals in PR9335, forgetting who made the proposal and why.  Or, pretend that I suggested making those changes for better clarity.  (But skip the multiple 'crazy' to 'weird' changes, as I have decided against those.)
msg325507 - (view) Author: Carol Willing (willingc) * (Python committer) Date: 2018-09-17 01:41
Hi all,

I'm going to close this issue for now. As I mentioned earlier (sorry Terry for not being clearer), I will be doing a comprehensive review of the docs and source code over the next few months. I will make recommendations as PRs and issues as I go through the review (see #msg325291).

In the review, I will take into account PSF values, clarity in source code as well as testing of code changes, and best practices in documentation.

Thanks everyone for respecting my intent to treat this review in a respectful and thoughtful manner.
msg325515 - (view) Author: Gabriel (suic) * Date: 2018-09-17 09:17
@terry.reedy

> Gabriel, I believe I addressed most your concerns in my previous post.

I don't think so (see below) but we don't have to agree in everything. :)

> Are you are suggesting that we judge proposals _by the proposer_, rather than the substance of the proposal?

Definitely not. It really doesn't matter who has made a proposal if _it makes sense_. However, that doesn't matter either when a proposal doesn't make sense or it's ill-advised or not justified.

> who made the proposal and _why_

I don't care about who but the _why_ is the matter here as I put it in point 1. of my previous post. IMO one has to be clear and explicit about his/her intentions/justifications i.e. if one does something for clarity than he or she should declare it :)

> There seems to be a misperception that we have collectively changed how we judge doc proposals.  Should we 'announce' that we proceed as we have been?

When I use your word: PSF and core developers should address the misperception. To be honest with you, IMO the "Python officials" handled these issues very badly and unprofessionally. Let me clarify. I'm not the only one who has perceived this BPO and V. Stinner's master/slave change (or some "gender neutralizations" of the documentation in the past) as PC/SJW ergo politically/ideologically motivated. So, what is perceived to be the main issue is the motivation. The way these were handled brings quite an _ambiguous_ impression and it's not clear if PSF or core developers are willing to proceed in this PC/SJW (ergo political/ideological) direction or what exactly is their stance. I read the BPOs and GH PRs and also some other articles and discussions where this ambiguity created a lot of confusion. There were statements in those articles and discussions like "GvR were asked to decide this question and he agrees with PC/SJW direction..." Therefore, I don't know how to interpret "that we proceed as we have been" as IMO no clear statement has been made so far.

tl;dr

To conclude: I think we still aren't at the same page. However, I'm not sure if it makes sense to continue in this debate _at the moment_ at least for me. The amount of absurdity, nonsense*  and misconduct, _I've perceived_ while discussing these two BPOs, made me disappointed and discouraged me for any further participation on trying to make Python better at least for now. I want to give it some time and come back to this with a "cool(er) head".

To be specific: merging unjustified politically or ideologically motivated changes without discussion, not addressing factual arguments, silencing and censoring discussions**, sending people to Twitter (even if they don't have an account), using Code of Conduct as a tool***, making "feeling-based" arguments aren't characteristics of rational discourse or open community. I can't imagine what comes next but after all these things, I'm (rather) pessimistic.

* e.g. "cleaning/censoring" language based on its "potential offensiveness" is a nonsense as any language _is_ potentially offensive.
** "no further discussion is needed" (or even welcomed) without further context or clarification _can be perceived_ as arrogant as saying "Shut up! I know it better!"
*** To be clear, I don't mean your warning under issue34694. I can completely agree that I shouldn't/mustn't make sarcastic comments. IMO CoC is a written-down common sense. If it needs to be used as an argument (i.e. a tool) in a discussion, it's a sign of deeper issues or that something went to far.
msg325775 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2018-09-19 17:38
> David and Brett: I consider part of the actions of the anonymous person using the temporary aliases 25.45 and jonsees to be violations of our Code of Conduct.  I would therefore like you two to issue a warning, if not a ban.

I am not interested in being a community policeman, nor do I have time to do it.  I will no longer be making any non-technical contributions to Python.  I will no longer hand out tracker permissions or revoke them, and I will not participate in any of these non-technical discussions.
msg325834 - (view) Author: Gabriel (suic) * Date: 2018-09-20 00:51
@terry.reed:

I politely ask you: Please use my proper first name if you refer to me and please don't call me an extremist (like here https://bugs.python.org/msg325802). Feel free to criticize my opinion but don't put labels on me. We don't know each other. Labeling people (not actions or ideas) is ad hominem argumentation or can be considered to be a personal attack which as far as I understand isn't complaint with CoC either.

And please don't misrepresent what I wrote:

> Marko called our actions 'madness' and here called us 'irresponsible'.   (https://bugs.python.org/issue34694#msg325802)

I called _the behavior_ irresponsible not the people. Even responsible people can sometimes have irresponsible choices or behavior.

> I find this behavior from the Python core developers and representatives simply rresponsible. (https://bugs.python.org/msg325499)

I hope we can end this debate here.
History
Date User Action Args
2018-09-22 19:54:19Socobsetnosy: + Socob
2018-09-20 00:51:36suicsetnosy: + suic
messages: + msg325834
2018-09-19 22:43:09suicsetnosy: - suic
2018-09-19 17:38:19r.david.murraysetnosy: - r.david.murray
2018-09-19 17:38:08r.david.murraysetnosy: brett.cannon, rhettinger, terry.reedy, r.david.murray, willingc, suic, 25.45
messages: + msg325775
2018-09-17 09:17:39suicsetmessages: + msg325515
2018-09-17 01:41:02willingcsetstatus: open -> closed
resolution: postponed
messages: + msg325507

stage: patch review -> resolved
2018-09-17 01:12:44terry.reedysetmessages: + msg325506
2018-09-16 22:44:41suicsetmessages: + msg325503
2018-09-16 21:19:28terry.reedysetnosy: + brett.cannon, r.david.murray
messages: + msg325502
2018-09-16 14:14:50suicsetnosy: + suic
messages: + msg325486
2018-09-15 20:41:11terry.reedysetstatus: closed -> open

assignee: willingc ->
title: Remove ableist terms and pejoratives from source code and docs -> Replace ableist terms and pejoratives in source code.
nosy: + terry.reedy

messages: + msg325456
resolution: remind -> (no value)
stage: resolved -> patch review
2018-09-15 18:59:48python-devsetpull_requests: + pull_request8759
2018-09-14 00:06:16rhettingersetpull_requests: + pull_request8717
2018-09-13 22:00:53rhettingersetnosy: + rhettinger
2018-09-13 20:26:32willingcsetstatus: open -> closed

type: enhancement
assignee: willingc
components: + Documentation

nosy: + willingc
messages: + msg325291
resolution: remind
stage: resolved
2018-09-13 16:15:5725.45create