New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-34605: Avoid master/slave terms #9101

Merged
merged 1 commit into from Sep 7, 2018

Conversation

Projects
None yet
@vstinner
Member

vstinner commented Sep 7, 2018

  • Replace "master process" with "parent process"
  • Replace "master option mappings" with "main option mappings"
  • Replace "master pattern object" with "main pattern object"
  • ssl: replace "master" with "server"
  • And some other similar changes

https://bugs.python.org/issue34605

bpo-34605: Avoid master/slave terms
* Replace "master process" with "parent process"
* Replace "master option mappings" with "main option mappings"
* Replace "master pattern object" with "main pattern object"
* ssl: replace "master" with "server"
* And some other similar changes

@vstinner vstinner added the skip news label Sep 7, 2018

@vstinner vstinner merged commit 5e92265 into python:master Sep 7, 2018

7 of 9 checks passed

Linux-PR-Coverage in progress
Details
Windows-PR queued
Details
Linux-PR #Linux-PR_20180907.24 succeeded
Details
bedevere/issue-number Issue number 34605 found
Details
bedevere/news "skip news" label found
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
docs #docs_20180907.24 succeeded
Details
macOS-PR #macOS-PR_20180907.24 succeeded
Details

@vstinner vstinner deleted the vstinner:misc_master_slave branch Sep 7, 2018

@@ -223,7 +223,7 @@ def initialize_options(self):
def finalize_options(self):
"""Finalizes options."""
# This method (and its pliant slaves, like 'finalize_unix()',
# This method (and its pliant childs, like 'finalize_unix()',

This comment has been minimized.

@ericvsmith

ericvsmith Sep 7, 2018

Member

I think this reads better as children. Although pliant isn't a very common word, and I'm not sure how it's being used here.

@ericvsmith

ericvsmith Sep 7, 2018

Member

I think this reads better as children. Although pliant isn't a very common word, and I'm not sure how it's being used here.

This comment has been minimized.

@vstinner

vstinner Sep 7, 2018

Member

Oh, maybe I should have waited longer before merging this one :-( I'm wasn't 100% sure between "childs" and "children". Sorry, english is not my first language. I created PR #9102 to replace childs with children.

I'm not sure what do you propose for pliant. In case of doubt, I leave it unchanged.

@vstinner

vstinner Sep 7, 2018

Member

Oh, maybe I should have waited longer before merging this one :-( I'm wasn't 100% sure between "childs" and "children". Sorry, english is not my first language. I created PR #9102 to replace childs with children.

I'm not sure what do you propose for pliant. In case of doubt, I leave it unchanged.

This comment has been minimized.

@gvanrossum

gvanrossum Sep 11, 2018

Member

I Googled a bit and it seems "pliant slave" is an old-fashioned way to refer to slaves, and even more demeaning than just "slave" -- I presume it was meant ironically by the original author. We should really replace the entire construct "pliant slaves" with a more neutral term. I don't think "children" is the right term -- I propose "helpers".

@gvanrossum

gvanrossum Sep 11, 2018

Member

I Googled a bit and it seems "pliant slave" is an old-fashioned way to refer to slaves, and even more demeaning than just "slave" -- I presume it was meant ironically by the original author. We should really replace the entire construct "pliant slaves" with a more neutral term. I don't think "children" is the right term -- I propose "helpers".

This comment has been minimized.

@vstinner
@vstinner

This comment has been minimized.

@ErroneousFatality

ErroneousFatality Sep 12, 2018

@gvanrossum it's in the same vein as compliant.

@ErroneousFatality

ErroneousFatality Sep 12, 2018

@gvanrossum it's in the same vein as compliant.

lisroach pushed a commit to lisroach/cpython that referenced this pull request Sep 12, 2018

bpo-34605: Avoid master/slave terms (GH-9101)
* Replace "master process" with "parent process"
* Replace "master option mappings" with "main option mappings"
* Replace "master pattern object" with "main pattern object"
* ssl: replace "master" with "server"
* And some other similar changes
@towerd

This comment was marked as disruptive content.

Show comment
Hide comment
@towerd

towerd Sep 12, 2018

In "Oxford Advanced Learners Dictionary", slave has an entry:
(specialist) a device that is directly controlled by another one

Words shall be interpreted in certain context. Otherwise, should every word be interpreted literally? If one is named Cook, is he really a cook?

What's more, if slave can remind someone of bad things, shall every word with some bad meaning be avoided? Stones can be related to weapon, sea can drown people, shall these words be banned? The names of famous campus killers, shall they be avoided to be used as names of new born babies, because these names are used by killers'?

I'm afraid this seems like the "literary inquisition" that happened numerous times in history. In those cases, word were interpreted in certain ways deliberately, totally ignoring their context, and the related persons were judged criminal just because they said those words.

towerd commented Sep 12, 2018

In "Oxford Advanced Learners Dictionary", slave has an entry:
(specialist) a device that is directly controlled by another one

Words shall be interpreted in certain context. Otherwise, should every word be interpreted literally? If one is named Cook, is he really a cook?

What's more, if slave can remind someone of bad things, shall every word with some bad meaning be avoided? Stones can be related to weapon, sea can drown people, shall these words be banned? The names of famous campus killers, shall they be avoided to be used as names of new born babies, because these names are used by killers'?

I'm afraid this seems like the "literary inquisition" that happened numerous times in history. In those cases, word were interpreted in certain ways deliberately, totally ignoring their context, and the related persons were judged criminal just because they said those words.

@gvanrossum

This comment has been minimized.

Show comment
Hide comment
@gvanrossum

gvanrossum Sep 12, 2018

Member
Member

gvanrossum commented Sep 12, 2018

@peterwilli

This comment was marked as disruptive content.

Show comment
Hide comment
@peterwilli

peterwilli Sep 12, 2018

Let's contribute to an increasingly worrying trend where people are not able to use the words they want to because of some negative association. My atheist, I love this trend! Keep 'em coming.

peterwilli commented Sep 12, 2018

Let's contribute to an increasingly worrying trend where people are not able to use the words they want to because of some negative association. My atheist, I love this trend! Keep 'em coming.

@noizex

This comment was marked as off-topic.

Show comment
Hide comment
@noizex

noizex Sep 12, 2018

Totally makes sense - changing decades-old terms in one repository will definitely help make things easily understandable and a world - much better place to live. 👍

noizex commented Sep 12, 2018

Totally makes sense - changing decades-old terms in one repository will definitely help make things easily understandable and a world - much better place to live. 👍

@GuacheSuede

This comment was marked as disruptive content.

Show comment
Hide comment
@GuacheSuede

GuacheSuede Sep 12, 2018

Why do the leaders of python not listen to the community ? Why even open source then ?

GuacheSuede commented Sep 12, 2018

Why do the leaders of python not listen to the community ? Why even open source then ?

@LudwikJaniuk

This comment was marked as disruptive content.

Show comment
Hide comment
@LudwikJaniuk

LudwikJaniuk Sep 12, 2018

Damn this sucks.

LudwikJaniuk commented Sep 12, 2018

Damn this sucks.

@mkubasz

This comment was marked as disruptive content.

Show comment
Hide comment
@mkubasz

mkubasz Sep 12, 2018

Please, don't put some ideological stuff into programming. Master/slave in the technical world is something related to the machine, no to human. I think the only good reason to change this words is to unify with algorithms.

mkubasz commented Sep 12, 2018

Please, don't put some ideological stuff into programming. Master/slave in the technical world is something related to the machine, no to human. I think the only good reason to change this words is to unify with algorithms.

@ecrvnr

This comment was marked as off-topic.

Show comment
Hide comment
@ecrvnr

ecrvnr Sep 12, 2018

You people are mentally ill.

ecrvnr commented Sep 12, 2018

You people are mentally ill.

@tpruzina

This comment was marked as disruptive content.

Show comment
Hide comment
@tpruzina

tpruzina Sep 12, 2018

As a non-native english speaker I had no idea what primary/replicant was even supposed to mean,
I learnt english from watching movies & TV shows for close to a decade now and I don't think I've ever came across "primary" used as a noun. As far as replicant (replica?) goes, only association that popped in my head is clone (you guessed it, I like sci-fi).

Negative association is kinda the point here, master/slave relationship describes perfectly what is going on. In some cases it doesn't, for example there are buses that have no master, in which case we should probably use initiator/target or some other descriptive term. Justification for removing word "master" should always be that we have some more descriptive term, not that "master/slave" signifies slavery, because that's exactly why we use that word.

Not only that, forcibly adopting new terms breaks language compatibility with old code/standards and possibly renders searches painful (at the very least, you probably have to enter both phrases into search engine to get proper results).

In bunch of cases it might even make sense to sensibly use "main" instead of "master", provided that something other than "master/slave" relationship takes place. I don't think that anybody would argue otherwise. In cases where master/slave relationship naturally describes what is going on, I think you are making a disservice to the community by introducing ambiguous terminology to fix the problem that exists only in minds of few people.

If people want to use PC friendly names in new code, that is entirely their prerogative. I have yet to see any valid reasoning for this, all these changes do is policing the language and introducing problems where there were none.

I'm open to hear some criticism on my reasoning, this honestly makes no sense to me.

tpruzina commented Sep 12, 2018

As a non-native english speaker I had no idea what primary/replicant was even supposed to mean,
I learnt english from watching movies & TV shows for close to a decade now and I don't think I've ever came across "primary" used as a noun. As far as replicant (replica?) goes, only association that popped in my head is clone (you guessed it, I like sci-fi).

Negative association is kinda the point here, master/slave relationship describes perfectly what is going on. In some cases it doesn't, for example there are buses that have no master, in which case we should probably use initiator/target or some other descriptive term. Justification for removing word "master" should always be that we have some more descriptive term, not that "master/slave" signifies slavery, because that's exactly why we use that word.

Not only that, forcibly adopting new terms breaks language compatibility with old code/standards and possibly renders searches painful (at the very least, you probably have to enter both phrases into search engine to get proper results).

In bunch of cases it might even make sense to sensibly use "main" instead of "master", provided that something other than "master/slave" relationship takes place. I don't think that anybody would argue otherwise. In cases where master/slave relationship naturally describes what is going on, I think you are making a disservice to the community by introducing ambiguous terminology to fix the problem that exists only in minds of few people.

If people want to use PC friendly names in new code, that is entirely their prerogative. I have yet to see any valid reasoning for this, all these changes do is policing the language and introducing problems where there were none.

I'm open to hear some criticism on my reasoning, this honestly makes no sense to me.

@PetteriAimonen

This comment was marked as off-topic.

Show comment
Hide comment
@PetteriAimonen

PetteriAimonen Sep 12, 2018

I can't help it, but this line just seems funny:

vstinner merged commit 5e92265 into python:master

Time to rename it as current branch? ;)

PetteriAimonen commented Sep 12, 2018

I can't help it, but this line just seems funny:

vstinner merged commit 5e92265 into python:master

Time to rename it as current branch? ;)

@Phvli

This comment was marked as off-topic.

Show comment
Hide comment
@Phvli

Phvli Sep 12, 2018

Differentiating between main and someting that is supposedly "non-main" is an attack against equality. Also, calling entities "objects" still bears with it painful hints to slavery and objectification. This correction, while being a step towards making the world a safer place, is not even halfway there. You can do better!

Phvli commented Sep 12, 2018

Differentiating between main and someting that is supposedly "non-main" is an attack against equality. Also, calling entities "objects" still bears with it painful hints to slavery and objectification. This correction, while being a step towards making the world a safer place, is not even halfway there. You can do better!

@x1024

This comment was marked as disruptive content.

Show comment
Hide comment
@x1024

x1024 Sep 12, 2018

Every single time you people decide to change software for no other reason than social justice, all normal programmers decide to be more racist, sexist, transphobic and whatever else pisses you off - for no other reason than just to spite you. We weren't using master/slave terminology before, but you can bet we'll be using it now - every single chance we get.

And we'll be thinking of it. You know, it. The reason why you think it's offensive. And I just want you to know - we weren't thinking of it before... but we are now. Only because of you.

You can claim that such measures hurt everyone, or that it's counterproductive, or that it even hurts our own careers.
It doesn't matter. It doesn't matter. It doesn't matter. Any price will be paid, social justice will fail, and if you don't drop it immediately, you will fail with it.

x1024 commented Sep 12, 2018

Every single time you people decide to change software for no other reason than social justice, all normal programmers decide to be more racist, sexist, transphobic and whatever else pisses you off - for no other reason than just to spite you. We weren't using master/slave terminology before, but you can bet we'll be using it now - every single chance we get.

And we'll be thinking of it. You know, it. The reason why you think it's offensive. And I just want you to know - we weren't thinking of it before... but we are now. Only because of you.

You can claim that such measures hurt everyone, or that it's counterproductive, or that it even hurts our own careers.
It doesn't matter. It doesn't matter. It doesn't matter. Any price will be paid, social justice will fail, and if you don't drop it immediately, you will fail with it.

@python python locked as off topic and limited conversation to collaborators Sep 12, 2018

@serhiy-storchaka

LGTM. Just few side comments.

@@ -72,7 +72,7 @@ class Verbose(Exception):
pass
class Pattern:
# master pattern object. keeps track of global attributes
# main pattern object. keeps track of global attributes

This comment has been minimized.

@serhiy-storchaka

serhiy-storchaka Sep 14, 2018

Member

Actually both wordings are wrong. This class doesn't represent a pattern object in any sense. I'll open a separate issue for this.

@serhiy-storchaka

serhiy-storchaka Sep 14, 2018

Member

Actually both wordings are wrong. This class doesn't represent a pattern object in any sense. I'll open a separate issue for this.

@@ -1,7 +1,7 @@
This directory contains a number of Python programs that are useful
while building or extending Python.
buildbot Batchfiles for running on Windows buildslaves.

This comment has been minimized.

@serhiy-storchaka

serhiy-storchaka Sep 14, 2018

Member

Interesting, "buildslave" was a term used in the Buildbot documentation: http://docs.buildbot.net/0.8.5/manual/cfg-buildslaves.html. In recent versions it was replaced with "worker": http://docs.buildbot.net/1.4.0/manual/cfg-workers.html.

@serhiy-storchaka

serhiy-storchaka Sep 14, 2018

Member

Interesting, "buildslave" was a term used in the Buildbot documentation: http://docs.buildbot.net/0.8.5/manual/cfg-buildslaves.html. In recent versions it was replaced with "worker": http://docs.buildbot.net/1.4.0/manual/cfg-workers.html.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.