Here is the pull request in question, and here is the issue that was filed that prompted the pull request. I'm interested to hear what you all think about this. The Reddit and GitHub discussions...
I'm interested to hear what you all think about this. The Reddit and GitHub discussions I've seen have been strongly against this change and against any push to deprecate the terms "master" and "slave" in these contexts, with many people accusing others of being SJWs or easily offended or infantile - one comment I saw went as far as to call people mentally ill for advocating this change, and another stated that now people will use master/slave out of spite and that that's the author's fault. I wonder if we can't have a more civilized discussion here on Tildes.
Personally, I think deprecating the master/slave terminology is a positive move without much in the way of downsides so long as it's done carefully and in a consistent way. These terms when used to describe relationships can reasonably remind Americans of the legal, systematic oppression of black Americans perpetuated from before our country's founding through even very recently. The Civil Rights Act was passed just 54 years ago in 1964 - the vast majority of living Americans were adults or had parents who were adults when it was passed. This isn't distant history.
There are many other ways of describing the relationships that master/slave is used to describe. In fact, most of the relationships we create in software mirror relationships we also create in the real world, but outside of literal slavery, we never use the terms master and slave to describe these relationships. Why do we need to perpetuate their use in software? Some of these are even more descriptive and intuitive than "master/slave" were to begin with. To provide some examples:
parent/child for certain hierarchical relationships where a moderate amount of control, inheritance, or ownership is implied:
class inheritance
specialization
tree-like relationships such as DOMs or visual hierarchies
thread and process hierarchies
supervisor/worker for relationships where one party is delegating work to another:
Background threads or processes launched and monitored by another thread or process.
primary/secondary/tertiary or 1st/2nd/3rd level for certain tiered relationships:
DNS or routing servers
leader/follower for relationships where one or more parties perform actions that other parties copy:
a group of robots where one robot directs the motion of the others
controller/subordinate for relationships where a large amount of control is implied:
A microcontroller controlling an actuator (i.e. motor controller)
requester/supplier or client/server for relationships where one party needs information that another party owns:
a sensor on a robot or machine
a database and an application that requires its data
more obviously, a remote machine providing services to another machine.
master1/clone or authority/(?) for single-tier relationships where a party maintains a clone (modified or otherwise) of a single centralized source of information for purposes of convenience or efficiency.
remote and local copies of a database for an application
version control branches
server-based multiplayer games where significant processing is done on the client side - i.e. Minecraft, where the server has the authoritative version of the world and clients maintain a separate local copy for their users
audio/video editing
Another thing you might notice in these examples is that some of these terms are not exclusive - that's not necessarily a bad thing. A pair of machines in a client/server relationship may also have a master/clone relationship; one describes the dynamics of their communication and interactions, while the other describes the relationship between their data. Together they can more accurately and intuitively describe their overall relationship.
Many of the objections to the change I've seen seem to be different forms of one of the following arguments:
Only a small amount of people are offended by this, and they should get over themselves rather than requiring the rest of us to make changes to coddle them.
These kinds of changes ignore the feelings and opinions of the majority of our profession.
People's feelings about word usage are irrelevant because the words are descriptive and have been in use for a long time.
This is a slippery slope to removing other trivially problematic words just to appease emotionally weak/easily offended people.
Master doesn't always have negative connotations - we shouldn't outlaw it!
This is ideology/politics and we should keep that out of programming.
Master/slave is more accurate, concise, and widely used than any of the alternatives.
The alternatives don't match all the uses of master/slave.
Master/slave is used in many textbooks, manuals, and older hardware and software, so trying to change it is pointless.
This terminology is used in other professions as well, and changing it here means we'll have to change it elsewhere, which is ridiculous.
We haven't come up with a standard set of terminology to replace master/slave, and we shouldn't push these changes until we've defined one.
This specific change breaks backwards compatibility and will cause headaches for everyone.
This specific change was pushed into the repository quickly without any review or discussion, and that's alarming.
I'd like to break most of these down:
I shouldn't have to point out that the first three are simply devoid of empathy for others who think and feel differently than them. Users of these arguments also tend to invoke the "intolerance of intolerance is just as bad as the original intolerance" fallacy to rebuke criticism.
The fourth argument (slippery slope) is exaggerated; as I described earlier, master and slave, when used together to describe a relationship, are incredibly charged words that detrimentally affect large numbers of people. It also perpetuates the ignorant idea that people who object to problematic uses of words are just hyper sensitive and should be ignored.
The fifth argument is true: master is used in unoffensive and uncontroversial ways in many places, such as in the phrases "mastering a skill" or a "master <profession/skill>". It is also used to describe an authoritative source of some information, as in an audio or video master tape. However, it does have negative uses that we should strive to abandon - its non-negative uses don't negate or excuse its negative uses.
The sixth argument equates empathy and consideration for minority users and stakeholders to radical ideology in order to justify its dismissal.
I hope I've sufficiently debunked most of argument seven with the list of alternatives I provided above. Lack of wide use doesn't necessarily mean we shouldn't try to spread the use of these alternatives either, especially when the benefits outweight the costs.
While eight is technically true, all that really means is that the alternatives are more specific or that master/slave is overly generic. In any case, one word not fitting all uses of another word isn't an argument against trying to use the first word when appropriate.
The ninth and tenth arguments seem to be wordy ways of saying "we can't change it everywhere, so we might as well not change it anywhere." I don't think I need to point out the fallacy here.
Argument eleven is tempting to accept, but the problem here is that standards come about through use and proliferation. There isn't a central authority on software terminology; it's fairly ad hoc and democratized. If we try to wait for a standard set of terminology to be developed, we'll never change anything. With that said, consistency is an important goal to strive for, and we should try to keep terminology consistent within reason at least at the per-library/framework/application level.
I agree with arguments twelve and thirteen, and I'll elaborate more on that next.
The problem I have with this specific change is that it seems to have broken backwards compatibility in command-line options - rather than deprecating their use, the author immediately removed them, which will absolutely cause headaches and problems. The normal strategy to employ when renaming an option or function is to deprecate the old name and implement the new name side-by-side with the old name. This gives users a chance to find and update their use of the deprecated name before breaking changes are introduced.
Another issue is that the change was developed and introduced over the course of a few hours, seemingly without review or discussion. The complaints raised were never published, either, so reviewers can't be certain of the validity and severity of the reports. This is poor form regardless of the context - reviews and discussion are important for any large change to a piece of software in order to maintain consistency and avoid exactly the kind of source-control flailing that happened here when legitimate suggestions for minor improvements were made post-publishing, generating further commits and pull-requests. The pull-request author should be disciplined for this mistake.
I hope this is a good start to a constructive discussion on this topic. What are y'all's thoughts on this topic? Any significant downsides to or legitimate arguments against this change or the general movement away from master/slave that I missed? Anything I failed to elaborate on or that you wish to, or points I made that you disagree with?
1 Master here has heritage in audio and video editing, where a single original source (the master) is cloned in order to edit and distribute copies. It has no implications of control in this use case, which seems to be where much of the objections to the term's use come from.
This is a very American issue imho. I’m not African American, but I am an immigrant, and so I ended up in “outsider” social groups which often included black folks. So while I cannot speak for...
I don't get why the master/slave terminology is offensive. Maybe that is because I am not American. (Edit: i.e. the terms in question aren't "white/n*gger" or "egyptian/jew", master and slave are names of certain concepts and I think are neutral, compared to say the first set of examples.) But then, this is a problem because sth. that offends a minority within a minority breaks the APIs worldwide. Also, I wonder, are there anybody with a recent or distant relation to slavery (e.g. an African American) who is actually offended by this?
This is a very American issue imho. I’m not African American, but I am an immigrant, and so I ended up in “outsider” social groups which often included black folks. So while I cannot speak for that group in any way, I can relay my impressions.
There was never a Truth and Reconciliation Commission in the United States about slavery. The history is much, much fresher than Jew/Egyptian, and in very recent times there are actual anti-Black Nazis walking the streets with pride in the USA. The President says “there are good people on both sides.”
In this environment, if I was a young African American dev, and I saw the words Master/Slave used in a programming language, knowing that literally any other strings of chars could have been used, I might take some offense, or more likely just shake my head. Mind you, black folks in the USA face much tougher issues, but given the relative ease of this terminology change, I feel that it worth doing even if it only leads to one more African American dev not getting turned off by this terminology.
And then again, should we go on to remove master/slave terminology from other fields? Say in history?
No, this is an entirely different situation. Words have specific meaning in the context of history. In the context of programming languages, they can often be interchanged with zero loss of utility when alternatives are available.
So I just looked at Twitter and I see a couple non-white sounding people sharing that story, but in 5 mins no black folks popped up. Although, it made me realize, why does it even have to be a...
So I just looked at Twitter and I see a couple non-white sounding people sharing that story, but in 5 mins no black folks popped up.
Although, it made me realize, why does it even have to be a black person that gets offended? Is white offense at the unnecessary use of the terminology of master/slave relationships worth less than other peoples’ offense?
Would just like to also point out that Russia Today is really pushing how “ridiculous” this “political correctness” is as well. That’s interesting, divide and conquer I guess.
My question is, why are some people so triggered by this change? Given the actual internal nature of the python changes, how will this change your daily life?
That I can understand, I guess I fell into that trap a bit in my original reply. After realizing that offense to the terminology is not exclusive to any skin color, I feel like my original reply...
It's not unlike a bunch of men deciding on women's problems.
That I can understand, I guess I fell into that trap a bit in my original reply. After realizing that offense to the terminology is not exclusive to any skin color, I feel like my original reply was a bit unnecessary. It’s potentially a universal issue.
Welp, I can try. It shouldn’t be that hard, Black Twitter is a thing. Would a non-dev black friend of mine count if I describe the circumstances to him? To me, it’s just unnecessary use of...
Welp, I can try. It shouldn’t be that hard, Black Twitter is a thing. Would a non-dev black friend of mine count if I describe the circumstances to him?
To me, it’s just unnecessary use of polarizing words when alternatives readily exist. The thing is, it takes a lot to “offend” a black American, they are used to much greater slights than thoughtless programming terminology. I would imagine it’s much more of a resigned “yup, of course” type situation.
But sure, I’ll search Twitter, look for retweets with a black profile picture?
Your ignorance on the issue of slavery in the Americas is not helping your case. The indigenous populations in the Caribbean and in what is now the southeastern US were taken as slaves, especially...
Your ignorance on the issue of slavery in the Americas is not helping your case. The indigenous populations in the Caribbean and in what is now the southeastern US were taken as slaves, especially before the African slave trade really got going in the 17th century. Tens of thousands (at least) were shipped from the mainland to islands in the Caribbean to work the sugar plantations after the local natives who were being used as slaves died of illness and poor living conditions imposed by their European masters.
Native Americans (along with Africans) were legally allowed to be slaves in British, French and Spanish colonial areas. White people generally were not. Slavery of Native Americans, though rarer once African slaves were abundant, continued for as long as slavery was legal in the US.
I promise with all my sincerity that I will change my view on all non-breaking, non-anachronistic changes of the sort we are discussing here if you can point me to a single black programmer that has declared being offended by this terminology; and I promise that there isn't a single drop of passive agression in this comment.
I will change my mind if I see a real person who has, directly or indirectly, been a victim of slavery declares this terminology offensive.
I'm not black, but my ethnic heritage is almost entirely native north american. I've always thought the master/slave terminology was mildly offensive, a needless reference to an institution that represents racism and human suffering.
Promise delivered. But not with a smile, I must add. I don't have to know every bit of US history (especially because what you say seems to be a new historical discovery. There are around 200...
Promise delivered. But not with a smile, I must add. I don't have to know every bit of US history (especially because what you say seems to be a new historical discovery. There are around 200 other countries in the world, including mine. Americans forget this often.
We were talking about Noth American slavery after the Colombian discovery. I cringe when saying this but I do know that slavery is world-wide phenomenon. I regret every second of this interaction...
We were talking about Noth American slavery after the Colombian discovery. I cringe when saying this but I do know that slavery is world-wide phenomenon. I regret every second of this interaction here. This has been quite redditesque and I don't want to participate in this thread anymore. I will delete all my comments except the last two.
I guess thanks for this bitter experience. This was the least tildes-like things I engaged in here. @Deimos was right, there's no chance of decent discussion in this sort of topic.
I guess you can't give deltas here but you changed my view on this. I still don't think changing the terminology for the sake of pleasing the SJW hivemind is a good idea but if there's better...
I guess you can't give deltas here but you changed my view on this. I still don't think changing the terminology for the sake of pleasing the SJW hivemind is a good idea but if there's better terminology like you suggested then I don't see a problem.
Edit: though I still think it shouldn't be applied willy-nilly and done using normal deprecation procedures.
Thank you for the compliment. :) These examples seem like they fall into objection argument 9. There are definitely certain places where it is difficult or impossible to replace the master/slave...
Thank you for the compliment. :)
These examples seem like they fall into objection argument 9. There are definitely certain places where it is difficult or impossible to replace the master/slave terminology, but I still believe we should strive to replace it where we can.
I think it's a bit of both, to be honest. #9 in that we can't reasonably change it, but that shouldn't hold us back from changing it elsewhere, but #12 in that if we changed it it would cause...
I think it's a bit of both, to be honest. #9 in that we can't reasonably change it, but that shouldn't hold us back from changing it elsewhere, but #12 in that if we changed it it would cause backwards incompatibility hell.
Up front I am going to admit I've pulled a classic Reddit move. I've read through most of the comments here and not the actual article itself. However, since I doubt I am alone in this, I think...
Up front I am going to admit I've pulled a classic Reddit move. I've read through most of the comments here and not the actual article itself. However, since I doubt I am alone in this, I think that the views of a passerby is still relevant.
This is an extremely hard conversation to have. It's easy to talk past instead of talk to, and there are no concrete answers. For the conflict to be resolved, someone has to change, and it doesn't always make sense to say both sides should change.
My problem with these sorts of situations is that I think intent and context matters. Naturally not everyone is going to have the same perspective or be aware of the immediate context. Someone causing offense doesn't necessarily intend to, and to place all responsibility on them, I think, is unreasonable.
As was said elsewhere in this thread, communication is a two way street. The person taking offense needs to understand where the other person is coming from, and vice versa. They need to have a genuine conversation. In the very least this isn't what appears to be happening in many cases. With political correctness the person taking offense is unconditionally favored.
With that being said, I think that good points are brought up on alternative words being available, and on having an inclusive environment. However, I still fall on the side of keeping the old verbiage. The words are descriptive, and I doubt any harm was ever meant by them. I don't think it's too much to ask to accept their usage. My own personal example is accepting the usage of the word cis. It bothers me for more than one reason. However, I know that many genuinely use it as a descriptive term, and I'm not going to fight to take that from them.
But again, I am simply an observer here. If those close to the situation are able to come to an agreement, and if the situation wasn't made without thought, then I can only agree with the outcome.
I understand where you're coming from, and I appreciate the time you took to express your thoughts respectfully. I'm more of the opinion that master/slave is rather on-the-nose, but you've...
I understand where you're coming from, and I appreciate the time you took to express your thoughts respectfully. I'm more of the opinion that master/slave is rather on-the-nose, but you've probably read my opinions elsewhere in the thread. ;)
I do want to address this, though:
My own personal example is accepting the usage of the word cis. It bothers me for more than one reason. However, I know that many genuinely use it as a descriptive term, and I'm not going to fight to take that from them.
While it might sound unpleasant, there's nothing wrong with "cis" - it's an inoffensive word or prefix that quite literally just means the opposite of "trans." It's used in organic chemistry all over, for example, and that was my first exposure to it. There's no history with offensive concepts, no associations with severe human suffering - it couldn't be a more neutral descriptor.
What do you find offensive about it? Is it that suddenly you're not "normal," you're "cis?" This happens all the time with other classifications for people: right-handed, not "normal;" white, not "normal;" straight, not "normal." Cis is no different in this regard. Is it that it sounds harsh?
I also think the comparison between "cis" and "master/slave" is a stretch; one is an inoffensive word used to classify people in a non judgemental way, and the other is quite literally (or at least arguably) a direct reference to slavery.
These are all abstract concepts & human value judgments you are making. So in order to make these statements you are claiming authority to decide what is and isn't reasonable offense. CIS maybe...
I also think the comparison between "cis" and "master/slave" is a stretch; one is an inoffensive word used to classify people in a non judgemental way, and the other is quite literally (or at least arguably) a direct reference to slavery.
These are all abstract concepts & human value judgments you are making. So in order to make these statements you are claiming authority to decide what is and isn't reasonable offense. CIS maybe used in that way, it is also certainly used as a slur by some unpleasant people. This is I think the general argument against this style of activism.
The activist claims other peoples language is offensive to the point it must be policed on pain of career damage and online harassment. Even if the activists are correct in this instance since there is no methodology to determine levels of offense that require policing it looks a lot like an unlimited power grab.
I don't particularly care one way or another if Python changes internal naming conventions. It seems like a waste, it seems like a large waste of time to care so much about it. But it's not my place to decide what other people want to waste their time on. In my experience people with the desire and aptitude to do programming will do programming despite high barriers. But these people are an astonishingly small percentage of the population in any demographic.
Are you seriously calling slavery an abstract concept of ambiguous offense? Come on. The goal here isn't to outlaw the words master and slave or to call them slurs or to fire people who have ever...
I also think the comparison between "cis" and "master/slave" is a stretch; one is an inoffensive word used to classify people in a non judgemental way, and the other is quite literally (or at least arguably) a direct reference to slavery.
These are all abstract concepts & human value judgments you are making.
Are you seriously calling slavery an abstract concept of ambiguous offense? Come on. The goal here isn't to outlaw the words master and slave or to call them slurs or to fire people who have ever used them. The goal is to find and use alternatives so that we can stop using master and slave in a way that trivializes slavery and the human suffering it causes.
These aren't abstract concepts. They're real, concrete, and have human emotion and experience attached to them.
As I stated, I was commenting on the fact that in saying CIS ( & Male / Female sockets) aren't offensive you're setting yourself up as an arbiter of what does and doesn't need modifying without...
As I stated, I was commenting on the fact that in saying CIS ( & Male / Female sockets) aren't offensive you're setting yourself up as an arbiter of what does and doesn't need modifying without any methodology to your decisions.
Sure there are victims of human trafficking there are Filipino maids being traded by their Saudi 'employers'... Are the sensibilities of these few people more relevant than the people offended by male / female plug sockets? Why do you get to pick?
In what way does it trivialize slavery? This issue seems to be more of people trying to infer their own interpretation of the word. Master and slave has a specific definition that indicates its...
The goal is to find and use alternatives so that we can stop using master and slave in a way that trivializes slavery and the human suffering it causes.
In what way does it trivialize slavery? This issue seems to be more of people trying to infer their own interpretation of the word. Master and slave has a specific definition that indicates its use within an engineering context. To refer this as downplaying those affected by slavery within history and current day, I believe is very pedantic use of resource allocation. A better attempt should be made by others to actually address slavery that is still ongoing this very day and not a 'pat-on-your-back-we-did-it' approach.
A couple of years ago I took a chemistry class, and it was interesting to accidentally find the origin of the word. Up until that point I simply hadn't thought about it, but chemistry certainly...
A couple of years ago I took a chemistry class, and it was interesting to accidentally find the origin of the word. Up until that point I simply hadn't thought about it, but chemistry certainly wasn't the first thing that came to mind.
Honestly part of it is being placed into a group. It's almost like a group was invented and then I was involuntarily placed into it. However, I know that isn't the case. It's taking a group that existed and didn't have a convenient name, and then giving them one. It's an innate feeling and not a logical one.
The term "leftist" falls roughly into the same category as "cis" for me. Theoretically it's just a neutral term. Yet I've seen and heard discussions where if you replaced every "leftist" with "idiot" the conversation would essentially be unchanged. People are being grouped together, that group is being discussed in a negative light, and that group happens to include me whether I agree or not. At worst the word is being used as a specific insult, and at best it's an extremely poor use of words.
I chose to bring up "cis" because I have my own personal hangups over it. It's not a perfect comparison, but I think the underlying question is the same. Do we decide that it is a neutral term or a negative one? As you've shown there are alternatives to "master/slave," but not so mush for "cis." For that reason I see that it is better for me to change.
With "master/slave" there are those of us that never even considered the term themselves to be negative. Sure they have been used within a negative context, but the words themselves are neutral. I'm sure those using "cis" feel the same. Because of that, my gut feeling is to keep it neutral. Whichever side we go with I see as equally valid, even if that gut feeling is at odds with it.
One thing I think you've missed is cognitive load. The master/slave relationship is universal throughout engineering, and the proposed alternatives don't all cover the same things, they...
One thing I think you've missed is cognitive load.
The master/slave relationship is universal throughout engineering, and the proposed alternatives don't all cover the same things, they replacements are more concise, and less general.
We're replacing one terminology to know and understand, with half a dozen.
That's one argument.
My own thoughts on this have lead me to avoid this topic for some time, especially as you have aggressively pushed that the words master and slave are vitriolic to you and your culture, in this thread.
Unfortunately, I can't come up with a super-nice way of putting this. So I'm going to need you to bear a couple things in mind.
I come from a culture generally considered by Americans to be aggressive, and impolite. (For example, few people from my culture consider Linus' rants to be insulting or unnecessarily aggressive.)
This is how people from the NT decided to advertise themselves internationally, and it was backed by the community. (Incidentally, that word is generally reserved for friends, or idiots, not for enemies, within that culture.)
That being said...
I don't see a reason to change engineering terminology. You're never going to approach this terminology without context. An understanding that it defines behaviour. The same as your behaviour is defined by those same words in a BDSM relationship, and the same as you don't expect to hear a software engineer giggle every time he connects a male and female socket. The same way I could walk up to a friend and say, "How ya goin', cunt?" and not have my lights knocked out.
What I can see, is yet another push from an oversensitive and rather thin-skinned culture to force the rest of the world to conform to their standards.
America does have a problem with slavery they need to deal with. They have a history, and have hurt a lot of people... This is taking something that doesn't apply to that situation, spinning it so they can make it fit, and pretending they are helping their issue by hiding a reference to their past.
Perhaps time would be better spent, not trying to screw around with engineering semantics, and actually apologising for the condition they have left generations of people in.
I think I disagree with the cognitive load argument. Personally, it's more cognitive load to have to fill in details when using a generic term than it is to remember a few more concise terms which...
I think I disagree with the cognitive load argument. Personally, it's more cognitive load to have to fill in details when using a generic term than it is to remember a few more concise terms which fill in the details for me. And like I said in my original comment, the fact that they don't necessarily cover all the same uses that master/slave has found doesn't mean we shouldn't try to use them where appropriate.
What I've tried to explain elsewhere (though I think it got caught in a deleted thread) is that it's difficult to drop societal context when going into a group. Someone for whom master/slave has never been used outside the context of slavery may well be highly uncomfortable to learn how we use it in our professions, and that's reasonable. Sure, we never meant offense, but the terminology does in fact take its etymological roots and its meaning from the act of slavery.
We're not doing this to make reparations for slavery - this would be a pretty useless way to do that. We're doing it to try to make our professions more inclusive of and welcoming to others, particularly people of color. Maybe you could argue that they need to learn to ignore their outside context and get along, as one might if they moved to Australia from a society where cunt was an insult, but we have a pretty big problem with diversity in engineering due to our culture and I think that trying to change it to become more inclusive is reasonable.
Finally, this isn't something we can't do at the same time we as a society make reparations for centuries of oppression. They can be done in parallel by different people. We're engineers - we build vehicles and software, not societal reparation plans. There are other people better suited to be planning and implementing reparations, just as we're better suited to changing engineering terminology. :P
I don't think I can have a productive conversation with someone who doesn't see the dichotomy of this. Being more inclusive is attempting to make up for being exclusive in the past, and causing a...
We're not doing this to make reparations for slavery - this would be a pretty useless way to do that. We're doing it to try to make our professions more inclusive of and welcoming to others, particularly people of color.
I don't think I can have a productive conversation with someone who doesn't see the dichotomy of this. Being more inclusive is attempting to make up for being exclusive in the past, and causing a rift. If you need to be welcoming to others... You haven't in the past.
And as I said... I don't think changing terminology does it make it more welcoming. You appear to just be trying to not encounter something you find shameful. Avoidance.
We're engineers - we build vehicles and software, not societal reparation plans. There are other people better suited to be planning and implementing reparations
I agree. None of this bluster is helpful to anyone. It'll help some people forget, and won't really change diversity, because that tends more to be a hiring and training problem.
I know I'm pretty late to this already, but thought I would add one quick thing (I don't believe I've seen anyone mention here, but could be wrong) - localization. The company I work for has made...
I know I'm pretty late to this already, but thought I would add one quick thing (I don't believe I've seen anyone mention here, but could be wrong) - localization.
The company I work for has made this change over ten years ago (the driving reason from what I can tell from style docs, is that a client complained master/slave wasn't descriptive/accurate). After that, there was a bit of a discussion on how far to make this change and the ability to translate it to other languages came up a lot. Ultimately it wasn't the only reason, but "someone being offended" never even came up.
Random side note: I worked for another company that pulled out a demo board, and our client literally laughed thinking we were showing him something "super old from 15 years ago" because someone forgot to update the MAS/SLA connector markings. Honestly, I'm a little surprise to even see a debate about this still.
I think given current trends of political correctness it was bound to happen. I personally do not have any hard feelings one way or the other, albeit I'm opposed to change just because it will...
I think given current trends of political correctness it was bound to happen. I personally do not have any hard feelings one way or the other, albeit I'm opposed to change just because it will involve work. However I'm in awe at the amount of noise and annoyance by the original few that were on GitHub that started this trend as if it was something incredibly immoral and disturbing to allow to continue, mainly jamiebuilds on GitHub. A lot of vocal outlash not in regards to this terminology but more political drama that involved companies and how they used licensing -- it really politicized the open-source community.
Current trend in over political correctness. Slave/Master is terminology used in all of the engineering world, not just programming. It's commonly accepted and used in countless different...
I think given current trends of political correctness it was bound to happen.
Current trend in over political correctness.
Slave/Master is terminology used in all of the engineering world, not just programming.
It's commonly accepted and used in countless different disciplines. Both word's legal definitions include a definition that is separate and unrelated to human slavery. It is just silly to change long standing and easy to understand terminology because of people searching for things to get upset about.
Plugs and sockets are male/female, we going to attack that next?
God forbid anyone that gets annoyed by the term drive a car with a manual transmission, their head would explode every time the pressed the clutch.
I'm trying to avoid removing too much from this thread and hoping I won't have to lock it (even though I'm almost certain I'm going to end up needing to, since it seems like people aren't able to...
I'm trying to avoid removing too much from this thread and hoping I won't have to lock it (even though I'm almost certain I'm going to end up needing to, since it seems like people aren't able to discuss this topic calmly), but you're making it harder than it needs to be by working in these little digs calling people "children" and such. It really isn't necessary, doesn't help your arguments at all, and makes it much more difficult for the discussion to stay reasonable.
Edit: actually, after thinking about this more, I've changed my mind and am going to remove more than I did initially. I shouldn't be catering to people that can't disagree about something without jumping to insults and denigrating others. That's not the kind of behavior we're trying to foster here.
I don't think that's remotely comparable to terms explicitly associated with slavery. As a trans person myself, I can tell you that lots of us joke about "gender changers" for cables, and I'm not...
Plugs are male/female, we going to attack that next?
I don't think that's remotely comparable to terms explicitly associated with slavery. As a trans person myself, I can tell you that lots of us joke about "gender changers" for cables, and I'm not remotely concerned about calling plugs or genitals male or female. There's nothing wrong with calling the different genitals male or female as long as you recognize that genitals are not the sole arbiter of a person's sex. Since that's where the terminology for plugs evolved from, I'm not concerned about that, either.
because of people searching for things to get upset about.
It's not unreasonable to be upset about the trivialization of slavery that this terminology encourages. It's also not unreasonable to consider how the terminology we use affects how comfortable others will feel working in our industry. I don't see any need to be upset when people propose these changes as though they were a direct affront on the dignity of the industry.
I've provided reasons why changing this terminology is good or not a big deal in my summary comment. If I may ask, beyond the terminology being in use for so long, why do you feel like changing it where possible or reasonable is such a bad idea?
Ugh, I want to argue that it won't, that we will reach a point where it levels off and things normalize. But I think you are right. I am almost 30 and I can already tell I am going to be the...
Ugh, I want to argue that it won't, that we will reach a point where it levels off and things normalize. But I think you are right.
I am almost 30 and I can already tell I am going to be the grumpiest of old men because of stuff like this.
I'm not sure I understand. Where is the noise and annoyance coming from, in your opinion: the people trying to deprecate master/slave, or the people opposed to said change? I'd also like to point...
I'm not sure I understand. Where is the noise and annoyance coming from, in your opinion: the people trying to deprecate master/slave, or the people opposed to said change?
I'd also like to point out that this kind of outrage against "political correctness" goes further back than the blacklisting license debacle. Back in February this year (was it really so recent?) when FreeBSD adopted a new Code of Conduct involving reasonable requests to respect others, hordes of people got very angry about "white knighting" and "political correctness" and "SJWs" and claimed this was proof that FreeBSD was dieing or caving to angry activists not part of their community. This seemingly happens every time someone makes a change to make things more comfortable for anyone not white, cis, heterosexual, and male.
I'd like to think it would be based more on the nature and accuracy of the criticism than on the critic's and critiqued's demographics, but I understand where that interpretation could come from...
I'd like to think it would be based more on the nature and accuracy of the criticism than on the critic's and critiqued's demographics, but I understand where that interpretation could come from and the concern that would develop from that. Perhaps it could have been revised to make the intent more clear.
To those who wish for change in a manner where it disrupts the normal pull-request process. If you've been aware of the recent spectacle on GitHub, I'm not referring to normal reasonable...
I'm not sure I understand. Where is the noise and annoyance coming from, in your opinion: the people trying to deprecate master/slave, or the people opposed to said change?
I get why people believe that the practice of 'master-slave' may no longer be fit. It's just the way people go out of their way and the lengths they do to do it is so lame and annoying is what I'm referring to.
I'm not certain I see a large difference between the two pull requests you linked. I'll admit I didn't scroll very far down the comments (I've read enough of those comments tonight, thanks) or...
I'm not certain I see a large difference between the two pull requests you linked. I'll admit I didn't scroll very far down the comments (I've read enough of those comments tonight, thanks) or analyze their commits, but they both propose changes to reduce or remove the use of master/slave terminology explicitly for the reason that they're directly linked to slavery and that makes a lot of people very understandably uncomfortable. What do you see as the difference between them, beyond one of the authors being a little more brash about it?
It's just the way people go out of their way and the lengths they do to do it is so lame and annoying
How else do you propose we do it, beyond incrementally, project by project? Must we leave all existing projects untouched, and if so, why can't we deprecate the use of this terminology in those projects to encourage the adoption of newer terminology? This kind of deprecation happens all the time for changes with significantly less political charge to them.
I appreciate your level-headed deconstruction and rejection of bad-faith arguments. Even when we disagree, it's important that we argue in good faith using reasonable arguments rather than devolve...
I appreciate your level-headed deconstruction and rejection of bad-faith arguments. Even when we disagree, it's important that we argue in good faith using reasonable arguments rather than devolve into name-calling and absurdism.
I suspect many people feeling really strongly about this (in either direction) haven't taken a look at just how tiny this change is. Python already used the words "master" and "slave" extremely...
I suspect many people feeling really strongly about this (in either direction) haven't taken a look at just how tiny this change is. Python already used the words "master" and "slave" extremely rarely, so this touches only a few parts in the code.
The openpty function is probably the most contentious of all of them. openpty splits a pseudoterminal into a pseudoterminal pair, such that one is marked as the "master" pty and the other as the "slave" pty. Python chose the terminology of "master" and "slave" simply because BSD (and thus glibc) used the same terminology in their documentation way back when.
My personal opinion is that describing a pty-pair as a master-slave relationship isn't quite the right fit anyway. Regardless of whether anyone took offence to the terminology, I think parent-child more accurately describes a pty-pair relationship.
I think the change is small enough and clear enough to understand that it's okay breaking "documentation compatibility" (I don't know exactly the right term to use) with BSD's man pages.
Honestly, many of the changes were just using the word "master" bizarrely to begin with. Who ever says "client" and "master" in networking connections? I've only ever heard "client" and "server".
I've never heard client/master, but master/slave is very common and used to refer to authority of some kind (this computer has the master version of this object, other connected computers have the...
I've never heard client/master, but master/slave is very common and used to refer to authority of some kind (this computer has the master version of this object, other connected computers have the slave version) which fits appropriately with those terms.
Why not? It makes some people more comfortable, we aren't really losing clarity, and changing it where we can is pretty minimal effort all things considered. Why do you so fully disagree with trying?
Why not? It makes some people more comfortable, we aren't really losing clarity, and changing it where we can is pretty minimal effort all things considered. Why do you so fully disagree with trying?
I'm fine with the change, but I think it probably should have gone into Python 4 instead of Python 3.8. Under semantic versioning, minor versions within a major version are supposed to be backward...
I'm fine with the change, but I think it probably should have gone into Python 4 instead of Python 3.8. Under semantic versioning, minor versions within a major version are supposed to be backward compatible, and code using the keywords in question might be invalid in 3.8 even though it was valid in 3.7.
No, I don't think this is a good idea as this kind of change has no ending whatsoever. As mentioned above, at some point "male/female connectors" are going to be a problem as well. Everyone is...
No, I don't think this is a good idea as this kind of change has no ending whatsoever.
As mentioned above, at some point "male/female connectors" are going to be a problem as well.
Everyone is offended by something these days, should we change our vocabulary for each of these situations? I firmly believe we shouldn't.
To illustrate my point, as a catholic & devout christian, I'm offended/feel unsafe around the words 'hang', 'kill' & 'daemon'. Will everyone who is for removing or replacing 'master/slave' from Python stand by me in getting these words, which hurt me, removed from Python and computer science in general as well?
Here is the pull request in question, and here is the issue that was filed that prompted the pull request.
I'm interested to hear what you all think about this. The Reddit and GitHub discussions I've seen have been strongly against this change and against any push to deprecate the terms "master" and "slave" in these contexts, with many people accusing others of being SJWs or easily offended or infantile - one comment I saw went as far as to call people mentally ill for advocating this change, and another stated that now people will use master/slave out of spite and that that's the author's fault. I wonder if we can't have a more civilized discussion here on Tildes.
Personally, I think deprecating the master/slave terminology is a positive move without much in the way of downsides so long as it's done carefully and in a consistent way. These terms when used to describe relationships can reasonably remind Americans of the legal, systematic oppression of black Americans perpetuated from before our country's founding through even very recently. The Civil Rights Act was passed just 54 years ago in 1964 - the vast majority of living Americans were adults or had parents who were adults when it was passed. This isn't distant history.
There are many other ways of describing the relationships that master/slave is used to describe. In fact, most of the relationships we create in software mirror relationships we also create in the real world, but outside of literal slavery, we never use the terms master and slave to describe these relationships. Why do we need to perpetuate their use in software? Some of these are even more descriptive and intuitive than "master/slave" were to begin with. To provide some examples:
Another thing you might notice in these examples is that some of these terms are not exclusive - that's not necessarily a bad thing. A pair of machines in a client/server relationship may also have a master/clone relationship; one describes the dynamics of their communication and interactions, while the other describes the relationship between their data. Together they can more accurately and intuitively describe their overall relationship.
Many of the objections to the change I've seen seem to be different forms of one of the following arguments:
I'd like to break most of these down:
The problem I have with this specific change is that it seems to have broken backwards compatibility in command-line options - rather than deprecating their use, the author immediately removed them, which will absolutely cause headaches and problems. The normal strategy to employ when renaming an option or function is to deprecate the old name and implement the new name side-by-side with the old name. This gives users a chance to find and update their use of the deprecated name before breaking changes are introduced.
Another issue is that the change was developed and introduced over the course of a few hours, seemingly without review or discussion. The complaints raised were never published, either, so reviewers can't be certain of the validity and severity of the reports. This is poor form regardless of the context - reviews and discussion are important for any large change to a piece of software in order to maintain consistency and avoid exactly the kind of source-control flailing that happened here when legitimate suggestions for minor improvements were made post-publishing, generating further commits and pull-requests. The pull-request author should be disciplined for this mistake.
I hope this is a good start to a constructive discussion on this topic. What are y'all's thoughts on this topic? Any significant downsides to or legitimate arguments against this change or the general movement away from master/slave that I missed? Anything I failed to elaborate on or that you wish to, or points I made that you disagree with?
1 Master here has heritage in audio and video editing, where a single original source (the master) is cloned in order to edit and distribute copies. It has no implications of control in this use case, which seems to be where much of the objections to the term's use come from.
This is a very American issue imho. I’m not African American, but I am an immigrant, and so I ended up in “outsider” social groups which often included black folks. So while I cannot speak for that group in any way, I can relay my impressions.
There was never a Truth and Reconciliation Commission in the United States about slavery. The history is much, much fresher than Jew/Egyptian, and in very recent times there are actual anti-Black Nazis walking the streets with pride in the USA. The President says “there are good people on both sides.”
In this environment, if I was a young African American dev, and I saw the words Master/Slave used in a programming language, knowing that literally any other strings of chars could have been used, I might take some offense, or more likely just shake my head. Mind you, black folks in the USA face much tougher issues, but given the relative ease of this terminology change, I feel that it worth doing even if it only leads to one more African American dev not getting turned off by this terminology.
No, this is an entirely different situation. Words have specific meaning in the context of history. In the context of programming languages, they can often be interchanged with zero loss of utility when alternatives are available.
edit: spelling, phrasing
So I just looked at Twitter and I see a couple non-white sounding people sharing that story, but in 5 mins no black folks popped up.
Although, it made me realize, why does it even have to be a black person that gets offended? Is white offense at the unnecessary use of the terminology of master/slave relationships worth less than other peoples’ offense?
Would just like to also point out that Russia Today is really pushing how “ridiculous” this “political correctness” is as well. That’s interesting, divide and conquer I guess.
My question is, why are some people so triggered by this change? Given the actual internal nature of the python changes, how will this change your daily life?
That I can understand, I guess I fell into that trap a bit in my original reply. After realizing that offense to the terminology is not exclusive to any skin color, I feel like my original reply was a bit unnecessary. It’s potentially a universal issue.
Welp, I can try. It shouldn’t be that hard, Black Twitter is a thing. Would a non-dev black friend of mine count if I describe the circumstances to him?
To me, it’s just unnecessary use of polarizing words when alternatives readily exist. The thing is, it takes a lot to “offend” a black American, they are used to much greater slights than thoughtless programming terminology. I would imagine it’s much more of a resigned “yup, of course” type situation.
But sure, I’ll search Twitter, look for retweets with a black profile picture?
Your ignorance on the issue of slavery in the Americas is not helping your case. The indigenous populations in the Caribbean and in what is now the southeastern US were taken as slaves, especially before the African slave trade really got going in the 17th century. Tens of thousands (at least) were shipped from the mainland to islands in the Caribbean to work the sugar plantations after the local natives who were being used as slaves died of illness and poor living conditions imposed by their European masters.
Native Americans (along with Africans) were legally allowed to be slaves in British, French and Spanish colonial areas. White people generally were not. Slavery of Native Americans, though rarer once African slaves were abundant, continued for as long as slavery was legal in the US.
I'm not black, but my ethnic heritage is almost entirely native north american. I've always thought the master/slave terminology was mildly offensive, a needless reference to an institution that represents racism and human suffering.
Promise delivered. But not with a smile, I must add. I don't have to know every bit of US history (especially because what you say seems to be a new historical discovery. There are around 200 other countries in the world, including mine. Americans forget this often.
We were talking about Noth American slavery after the Colombian discovery. I cringe when saying this but I do know that slavery is world-wide phenomenon. I regret every second of this interaction here. This has been quite redditesque and I don't want to participate in this thread anymore. I will delete all my comments except the last two.
I guess thanks for this bitter experience. This was the least tildes-like things I engaged in here. @Deimos was right, there's no chance of decent discussion in this sort of topic.
I guess you can't give deltas here but you changed my view on this. I still don't think changing the terminology for the sake of pleasing the SJW hivemind is a good idea but if there's better terminology like you suggested then I don't see a problem.
Edit: though I still think it shouldn't be applied willy-nilly and done using normal deprecation procedures.
I'm glad I could bring you around! :)
You and I agree on this. ;)
I am not against the change. I am against the reason for the change.
Thank you for the compliment. :)
These examples seem like they fall into objection argument 9. There are definitely certain places where it is difficult or impossible to replace the master/slave terminology, but I still believe we should strive to replace it where we can.
I think it's a bit of both, to be honest. #9 in that we can't reasonably change it, but that shouldn't hold us back from changing it elsewhere, but #12 in that if we changed it it would cause backwards incompatibility hell.
Up front I am going to admit I've pulled a classic Reddit move. I've read through most of the comments here and not the actual article itself. However, since I doubt I am alone in this, I think that the views of a passerby is still relevant.
This is an extremely hard conversation to have. It's easy to talk past instead of talk to, and there are no concrete answers. For the conflict to be resolved, someone has to change, and it doesn't always make sense to say both sides should change.
My problem with these sorts of situations is that I think intent and context matters. Naturally not everyone is going to have the same perspective or be aware of the immediate context. Someone causing offense doesn't necessarily intend to, and to place all responsibility on them, I think, is unreasonable.
As was said elsewhere in this thread, communication is a two way street. The person taking offense needs to understand where the other person is coming from, and vice versa. They need to have a genuine conversation. In the very least this isn't what appears to be happening in many cases. With political correctness the person taking offense is unconditionally favored.
With that being said, I think that good points are brought up on alternative words being available, and on having an inclusive environment. However, I still fall on the side of keeping the old verbiage. The words are descriptive, and I doubt any harm was ever meant by them. I don't think it's too much to ask to accept their usage. My own personal example is accepting the usage of the word cis. It bothers me for more than one reason. However, I know that many genuinely use it as a descriptive term, and I'm not going to fight to take that from them.
But again, I am simply an observer here. If those close to the situation are able to come to an agreement, and if the situation wasn't made without thought, then I can only agree with the outcome.
I understand where you're coming from, and I appreciate the time you took to express your thoughts respectfully. I'm more of the opinion that master/slave is rather on-the-nose, but you've probably read my opinions elsewhere in the thread. ;)
I do want to address this, though:
While it might sound unpleasant, there's nothing wrong with "cis" - it's an inoffensive word or prefix that quite literally just means the opposite of "trans." It's used in organic chemistry all over, for example, and that was my first exposure to it. There's no history with offensive concepts, no associations with severe human suffering - it couldn't be a more neutral descriptor.
What do you find offensive about it? Is it that suddenly you're not "normal," you're "cis?" This happens all the time with other classifications for people: right-handed, not "normal;" white, not "normal;" straight, not "normal." Cis is no different in this regard. Is it that it sounds harsh?
I also think the comparison between "cis" and "master/slave" is a stretch; one is an inoffensive word used to classify people in a non judgemental way, and the other is quite literally (or at least arguably) a direct reference to slavery.
These are all abstract concepts & human value judgments you are making. So in order to make these statements you are claiming authority to decide what is and isn't reasonable offense. CIS maybe used in that way, it is also certainly used as a slur by some unpleasant people. This is I think the general argument against this style of activism.
The activist claims other peoples language is offensive to the point it must be policed on pain of career damage and online harassment. Even if the activists are correct in this instance since there is no methodology to determine levels of offense that require policing it looks a lot like an unlimited power grab.
I don't particularly care one way or another if Python changes internal naming conventions. It seems like a waste, it seems like a large waste of time to care so much about it. But it's not my place to decide what other people want to waste their time on. In my experience people with the desire and aptitude to do programming will do programming despite high barriers. But these people are an astonishingly small percentage of the population in any demographic.
Are you seriously calling slavery an abstract concept of ambiguous offense? Come on. The goal here isn't to outlaw the words master and slave or to call them slurs or to fire people who have ever used them. The goal is to find and use alternatives so that we can stop using master and slave in a way that trivializes slavery and the human suffering it causes.
These aren't abstract concepts. They're real, concrete, and have human emotion and experience attached to them.
As I stated, I was commenting on the fact that in saying CIS ( & Male / Female sockets) aren't offensive you're setting yourself up as an arbiter of what does and doesn't need modifying without any methodology to your decisions.
Sure there are victims of human trafficking there are Filipino maids being traded by their Saudi 'employers'... Are the sensibilities of these few people more relevant than the people offended by male / female plug sockets? Why do you get to pick?
In what way does it trivialize slavery? This issue seems to be more of people trying to infer their own interpretation of the word. Master and slave has a specific definition that indicates its use within an engineering context. To refer this as downplaying those affected by slavery within history and current day, I believe is very pedantic use of resource allocation. A better attempt should be made by others to actually address slavery that is still ongoing this very day and not a 'pat-on-your-back-we-did-it' approach.
A couple of years ago I took a chemistry class, and it was interesting to accidentally find the origin of the word. Up until that point I simply hadn't thought about it, but chemistry certainly wasn't the first thing that came to mind.
Honestly part of it is being placed into a group. It's almost like a group was invented and then I was involuntarily placed into it. However, I know that isn't the case. It's taking a group that existed and didn't have a convenient name, and then giving them one. It's an innate feeling and not a logical one.
The term "leftist" falls roughly into the same category as "cis" for me. Theoretically it's just a neutral term. Yet I've seen and heard discussions where if you replaced every "leftist" with "idiot" the conversation would essentially be unchanged. People are being grouped together, that group is being discussed in a negative light, and that group happens to include me whether I agree or not. At worst the word is being used as a specific insult, and at best it's an extremely poor use of words.
I chose to bring up "cis" because I have my own personal hangups over it. It's not a perfect comparison, but I think the underlying question is the same. Do we decide that it is a neutral term or a negative one? As you've shown there are alternatives to "master/slave," but not so mush for "cis." For that reason I see that it is better for me to change.
With "master/slave" there are those of us that never even considered the term themselves to be negative. Sure they have been used within a negative context, but the words themselves are neutral. I'm sure those using "cis" feel the same. Because of that, my gut feeling is to keep it neutral. Whichever side we go with I see as equally valid, even if that gut feeling is at odds with it.
One thing I think you've missed is cognitive load.
The master/slave relationship is universal throughout engineering, and the proposed alternatives don't all cover the same things, they replacements are more concise, and less general.
We're replacing one terminology to know and understand, with half a dozen.
That's one argument.
My own thoughts on this have lead me to avoid this topic for some time, especially as you have aggressively pushed that the words master and slave are vitriolic to you and your culture, in this thread.
Unfortunately, I can't come up with a super-nice way of putting this. So I'm going to need you to bear a couple things in mind.
I come from a culture generally considered by Americans to be aggressive, and impolite. (For example, few people from my culture consider Linus' rants to be insulting or unnecessarily aggressive.)
This is how people from the NT decided to advertise themselves internationally, and it was backed by the community. (Incidentally, that word is generally reserved for friends, or idiots, not for enemies, within that culture.)
That being said...
I don't see a reason to change engineering terminology. You're never going to approach this terminology without context. An understanding that it defines behaviour. The same as your behaviour is defined by those same words in a BDSM relationship, and the same as you don't expect to hear a software engineer giggle every time he connects a male and female socket. The same way I could walk up to a friend and say, "How ya goin', cunt?" and not have my lights knocked out.
What I can see, is yet another push from an oversensitive and rather thin-skinned culture to force the rest of the world to conform to their standards.
America does have a problem with slavery they need to deal with. They have a history, and have hurt a lot of people... This is taking something that doesn't apply to that situation, spinning it so they can make it fit, and pretending they are helping their issue by hiding a reference to their past.
Perhaps time would be better spent, not trying to screw around with engineering semantics, and actually apologising for the condition they have left generations of people in.
I think I disagree with the cognitive load argument. Personally, it's more cognitive load to have to fill in details when using a generic term than it is to remember a few more concise terms which fill in the details for me. And like I said in my original comment, the fact that they don't necessarily cover all the same uses that master/slave has found doesn't mean we shouldn't try to use them where appropriate.
What I've tried to explain elsewhere (though I think it got caught in a deleted thread) is that it's difficult to drop societal context when going into a group. Someone for whom master/slave has never been used outside the context of slavery may well be highly uncomfortable to learn how we use it in our professions, and that's reasonable. Sure, we never meant offense, but the terminology does in fact take its etymological roots and its meaning from the act of slavery.
We're not doing this to make reparations for slavery - this would be a pretty useless way to do that. We're doing it to try to make our professions more inclusive of and welcoming to others, particularly people of color. Maybe you could argue that they need to learn to ignore their outside context and get along, as one might if they moved to Australia from a society where cunt was an insult, but we have a pretty big problem with diversity in engineering due to our culture and I think that trying to change it to become more inclusive is reasonable.
Finally, this isn't something we can't do at the same time we as a society make reparations for centuries of oppression. They can be done in parallel by different people. We're engineers - we build vehicles and software, not societal reparation plans. There are other people better suited to be planning and implementing reparations, just as we're better suited to changing engineering terminology. :P
I don't think I can have a productive conversation with someone who doesn't see the dichotomy of this. Being more inclusive is attempting to make up for being exclusive in the past, and causing a rift. If you need to be welcoming to others... You haven't in the past.
And as I said... I don't think changing terminology does it make it more welcoming. You appear to just be trying to not encounter something you find shameful. Avoidance.
I agree. None of this bluster is helpful to anyone. It'll help some people forget, and won't really change diversity, because that tends more to be a hiring and training problem.
I know I'm pretty late to this already, but thought I would add one quick thing (I don't believe I've seen anyone mention here, but could be wrong) - localization.
The company I work for has made this change over ten years ago (the driving reason from what I can tell from style docs, is that a client complained master/slave wasn't descriptive/accurate). After that, there was a bit of a discussion on how far to make this change and the ability to translate it to other languages came up a lot. Ultimately it wasn't the only reason, but "someone being offended" never even came up.
Random side note: I worked for another company that pulled out a demo board, and our client literally laughed thinking we were showing him something "super old from 15 years ago" because someone forgot to update the MAS/SLA connector markings. Honestly, I'm a little surprise to even see a debate about this still.
I think given current trends of political correctness it was bound to happen. I personally do not have any hard feelings one way or the other, albeit I'm opposed to change just because it will involve work. However I'm in awe at the amount of noise and annoyance by the original few that were on GitHub that started this trend as if it was something incredibly immoral and disturbing to allow to continue, mainly jamiebuilds on GitHub. A lot of vocal outlash not in regards to this terminology but more political drama that involved companies and how they used licensing -- it really politicized the open-source community.
Current trend in over political correctness.
Slave/Master is terminology used in all of the engineering world, not just programming.
It's commonly accepted and used in countless different disciplines. Both word's legal definitions include a definition that is separate and unrelated to human slavery. It is just silly to change long standing and easy to understand terminology because of people searching for things to get upset about.
Plugs and sockets are male/female, we going to attack that next?
God forbid anyone that gets annoyed by the term drive a car with a manual transmission, their head would explode every time the pressed the clutch.
I'm trying to avoid removing too much from this thread and hoping I won't have to lock it (even though I'm almost certain I'm going to end up needing to, since it seems like people aren't able to discuss this topic calmly), but you're making it harder than it needs to be by working in these little digs calling people "children" and such. It really isn't necessary, doesn't help your arguments at all, and makes it much more difficult for the discussion to stay reasonable.
Edit: actually, after thinking about this more, I've changed my mind and am going to remove more than I did initially. I shouldn't be catering to people that can't disagree about something without jumping to insults and denigrating others. That's not the kind of behavior we're trying to foster here.
I don't think that's remotely comparable to terms explicitly associated with slavery. As a trans person myself, I can tell you that lots of us joke about "gender changers" for cables, and I'm not remotely concerned about calling plugs or genitals male or female. There's nothing wrong with calling the different genitals male or female as long as you recognize that genitals are not the sole arbiter of a person's sex. Since that's where the terminology for plugs evolved from, I'm not concerned about that, either.
It's not unreasonable to be upset about the trivialization of slavery that this terminology encourages. It's also not unreasonable to consider how the terminology we use affects how comfortable others will feel working in our industry. I don't see any need to be upset when people propose these changes as though they were a direct affront on the dignity of the industry.
I've provided reasons why changing this terminology is good or not a big deal in my summary comment. If I may ask, beyond the terminology being in use for so long, why do you feel like changing it where possible or reasonable is such a bad idea?
I bet this will literally happen.
I want to believe we wouldn't, because it is something so extraordinarily trivial, but unfortunately I do think you are right.
If it's so trivial wouldn't that mean changing it is actually the easier solution?
A case of logical fallacy. Just because it's of minimal effort does not mean it is necessary.
But that's not what I said, just that if the change is trivial then it might be easier to simply go along as to not make it an item.
I agree with you and it more than likely won't stop.
Ugh, I want to argue that it won't, that we will reach a point where it levels off and things normalize. But I think you are right.
I am almost 30 and I can already tell I am going to be the grumpiest of old men because of stuff like this.
It's not changing in the BDSM community at least. Master/slave is a very specific, established dynamic.
If it changes in the BDSM community, I would have surely thought we were all losing our minds.
I'm not sure I understand. Where is the noise and annoyance coming from, in your opinion: the people trying to deprecate master/slave, or the people opposed to said change?
I'd also like to point out that this kind of outrage against "political correctness" goes further back than the blacklisting license debacle. Back in February this year (was it really so recent?) when FreeBSD adopted a new Code of Conduct involving reasonable requests to respect others, hordes of people got very angry about "white knighting" and "political correctness" and "SJWs" and claimed this was proof that FreeBSD was dieing or caving to angry activists not part of their community. This seemingly happens every time someone makes a change to make things more comfortable for anyone not white, cis, heterosexual, and male.
I'd like to think it would be based more on the nature and accuracy of the criticism than on the critic's and critiqued's demographics, but I understand where that interpretation could come from and the concern that would develop from that. Perhaps it could have been revised to make the intent more clear.
To those who wish for change in a manner where it disrupts the normal pull-request process. If you've been aware of the recent spectacle on GitHub, I'm not referring to normal reasonable pull-requests with no political agenda, but I'm referring to the likes of these that were recently made.
I get why people believe that the practice of 'master-slave' may no longer be fit. It's just the way people go out of their way and the lengths they do to do it is so lame and annoying is what I'm referring to.
I'm not certain I see a large difference between the two pull requests you linked. I'll admit I didn't scroll very far down the comments (I've read enough of those comments tonight, thanks) or analyze their commits, but they both propose changes to reduce or remove the use of master/slave terminology explicitly for the reason that they're directly linked to slavery and that makes a lot of people very understandably uncomfortable. What do you see as the difference between them, beyond one of the authors being a little more brash about it?
How else do you propose we do it, beyond incrementally, project by project? Must we leave all existing projects untouched, and if so, why can't we deprecate the use of this terminology in those projects to encourage the adoption of newer terminology? This kind of deprecation happens all the time for changes with significantly less political charge to them.
I appreciate your level-headed deconstruction and rejection of bad-faith arguments. Even when we disagree, it's important that we argue in good faith using reasonable arguments rather than devolve into name-calling and absurdism.
Could be both. Sometimes I look at the stuff I used to post 5+ years ago, and some of it makes me cringe.
7 years is actually quite a bit of time to change your mind, maybe it's anecdotal but I for sure am not the same person I was 7 years ago.
I suspect many people feeling really strongly about this (in either direction) haven't taken a look at just how tiny this change is. Python already used the words "master" and "slave" extremely rarely, so this touches only a few parts in the code.
The
openpty
function is probably the most contentious of all of them.openpty
splits a pseudoterminal into a pseudoterminal pair, such that one is marked as the "master" pty and the other as the "slave" pty. Python chose the terminology of "master" and "slave" simply because BSD (and thus glibc) used the same terminology in their documentation way back when.My personal opinion is that describing a pty-pair as a master-slave relationship isn't quite the right fit anyway. Regardless of whether anyone took offence to the terminology, I think parent-child more accurately describes a pty-pair relationship.
I think the change is small enough and clear enough to understand that it's okay breaking "documentation compatibility" (I don't know exactly the right term to use) with BSD's man pages.
Honestly, many of the changes were just using the word "master" bizarrely to begin with. Who ever says "client" and "master" in networking connections? I've only ever heard "client" and "server".
I've never heard client/master, but master/slave is very common and used to refer to authority of some kind (this computer has the master version of this object, other connected computers have the slave version) which fits appropriately with those terms.
Are you looking for the word "consistent" or "standard?" ;)
Small though these changes are I do not agree with them at all.
Why not? It makes some people more comfortable, we aren't really losing clarity, and changing it where we can is pretty minimal effort all things considered. Why do you so fully disagree with trying?
I don't accept that these terms are racist or endorse human slavery in this context.
I'm a little disappointed they didn't go with Dom(inant) and Sub(servient), personally. Ah well.
Maybe they were trying to keep it work appropriate. ;)
I'm fine with the change, but I think it probably should have gone into Python 4 instead of Python 3.8. Under semantic versioning, minor versions within a major version are supposed to be backward compatible, and code using the keywords in question might be invalid in 3.8 even though it was valid in 3.7.
Won't be long before old computer technical manuals and training books are banned because their IDE documentation is offensive...
Please try to argue in good faith. It doesn't take much to understand that we're not banning books for using the terminology.
It's a slippery slope and at some point you will start demanding that.
No, I don't think this is a good idea as this kind of change has no ending whatsoever.
As mentioned above, at some point "male/female connectors" are going to be a problem as well.
Everyone is offended by something these days, should we change our vocabulary for each of these situations? I firmly believe we shouldn't.
To illustrate my point, as a catholic & devout christian, I'm offended/feel unsafe around the words 'hang', 'kill' & 'daemon'. Will everyone who is for removing or replacing 'master/slave' from Python stand by me in getting these words, which hurt me, removed from Python and computer science in general as well?