MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.25k stars 19.23k forks source link

[FR] Terminology change [Master/Slave -> Conductor/Member] #24172

Open Getn67 opened 2 years ago

Getn67 commented 2 years ago

Is your feature request related to a problem? Please describe.

My feature request is an attempt to remove problematic verbiage from an amazing piece of software. Large organizations have made changes to address social issues, and I am hoping the volunteers that have spent time contributing to this project can see the benefit of a change like this alongside the (hopefully) minimal effort required to implement it.

Are you looking for hardware support?

n/a

Describe the feature you want

I am asking for the problematic terms Master and Slave to be replaced with less problematic terms. Conductor/Member has been used by organizations such as Aruba with success.

Additional context

terminology-change (arubanetworks.com) Above is a link to the statement announcing the change from Aruba

rq3 commented 2 years ago

I find "conductor/member" semantically arbitrary and confusing, and sexist. As an ex-HP employee and stock holder, they will be hearing from me.

Is there a better set of terms for hardware (not homo sapiens) that says "Do this now and unconditionally", with the response "I hear and will obey"?

Recognizing that the human race can be vile and nasty, and also pretty wonderfully amazing?

Perhaps "Farter" and "Sniffer"? "Pusher" and Faller"? "Scream" and "Grovel"? "Scream" and "Shout"? "Ask" and "Receive"? Or gosh, even the old "Transmit" and "Receive"? Maybe modified to "UTrans" and "UCeive", (unconditional transmission and reception)?

Getn67 commented 2 years ago

I find "conductor/member" semantically arbitrary and confusing, and sexist.

Please, elaborate.

rq3 commented 2 years ago

I find "conductor/member" semantically arbitrary and confusing, and sexist.

Please, elaborate.

In the community, a "conductor" is an exclusively male leader of an ensemble, generally, but not always, musical. Member refers to the male genitalia, specifically the penis. A conductor gives direction. A master enforces direction. A member, in the implied context, can decide whether or not to comply. Like it or not, a slave cannot. Think of better terms. I've supplied a few.

You really need to educate yourself before jumping on these bandwagons, and this is NOT the place to do so.

ellensp commented 2 years ago

This is the issue

Someone always goes out of their way to be offended by every possible combination of words to describe a master / slave system.

When it has zero to do with slavery and the way that human beings abuse each other.

hcet14 commented 2 years ago

The master/slave terminology is quite old "https://en.wikipedia.org/wiki/Master/slave_(technology)". I guess nobody thought about political correctness at that time, but every technically interested person understands the meaning immediately.

My vote is for keeping the master/slave terminology.

I live in a German language speaking country and we have the "Gendern discussion" "https://de.wikipedia.org/wiki/Gendern" (sorry there isn't even an English translation on wiki). I'm not sure, if it helps women being treated fairer.

InsanityAutomation commented 2 years ago

Personally, i believe we should follow the nomenclature in the technical documentation for the device or protocol we are implementing. We cant arbitrarily change the terminology to suit us and therein confuse everyone trying to follow the OEM docs on the device were communicating with. We use what they define, no more no less.

rondlh commented 2 years ago

How about Master and Node, or Controller and Responder?

Yannik25 commented 2 years ago

In our organization, we are changing to Controller and Peripheral

CRCinAU commented 2 years ago

I hate it when social justice leaks into technology. Remember when we had Master / Slave Hard Drives on the same cable and had to set them up so they would work?

Yeah - there's a hell of a lot of history in the definitions of those terms for technology purposes. Lets not change it for the sake of changing it.

sjasonsmith commented 2 years ago

I generally support replacing the terms, but also agree with @InsanityAutomation that it can be difficult when you are referring to the official terms in the standard. You certainly don’t want to use made-up terms that will confuse readers when compared to published specifications.

In our case, the main places I see it are for TMC and I2C addresses. In both cases you could probably use ADDRESS without losing any meaning.

My initial reaction to these types of requests was that it didn’t matter because the context is different. After multiple discussions with others I have come to believe that in a community of people it doesn’t really matter whether we intended to offend. Of course our own words don’t offend us when we are in the privileged majority. If our words cause unintended offense to others we should at least seek to understand why and consider making a change.

CRCinAU commented 2 years ago

if our words cause unintended offense to others we should at least seek to understand why and consider making a change.

Yes and no. People are always finding new things to be offended by. Nothing in the world is guaranteed to not offend someone. By catering to imagined offence after imagined offence, we end up with always changing for the sake of change.

IMHO, if you get offended by terms used within Marlin by conflating them with events in history, then you're linking things just for the sake of creating outrage.

tombrazier commented 2 years ago

I wholeheartedly reject slavery of people. But I think master slave relationships between machines sometimes make immense sense. Slavery is wrong because it reduces people to machines - i.e. mere things. But it is not wrong for a machine to be owned and commanded and expected to work without pay, etc. (discuss!) and we will continue to do this whatever terminology is used. Likewise, changing the terminology will not stop people treating other people like things. Indeed it would help to have the terms "master" and "slave" for things just so that it can be pointed out that we do not use these words for people because they are words that only apply to things and people are not things.

To replace the language of "master/slave" in this context is a category error. (Although there are exceptions - the move from "master" to "main" in git branch naming makes sense to me because "main" is just a better word - arguably there is no master/slave relationship between branches.)

DerAndere1 commented 2 years ago

I would say master/slave when used in the context of mentioned protocol standards is what we have to live with. If we would come up with a new protocol, I would certainly avoid master/slave: By using "master" for the controlling party we create positive connotations with the master role: We often program the master device so that it handles more complex logic than the slave device. We should be aware that this continues the myth of the master as the superior party with more capabilities. At the same time we suggest that under certain conditions it is ok that a slave (device, or, by extension, human) is owned by the master. This is how languge works: The associations we create with our coding style influence our general understanding of any master/slave relationship. Also, distinguishing between human and non-human slavery is not as easy as one might think: human masters often do not acknowledge that their slaves are in fact complete human beings. It is better to say: master/slave concept = bad idea. Unless you set a good example and create a master device that releases the slave device from all its duties mid-print.

tombrazier commented 2 years ago

I agree that language affects how we think about things. This is a very important point.

However, I am still arguing that the concept of objects being controlled is okay and does not need to be abandoned. Indeed, it is a powerful and useful concept which is not good or bad in itself but can be used for either good or bad. So we need language for it. The fundamental error or "sin" of slavery is not that we control/own/subjugate a person but that we treat a person like a thing - all the other horrors of slavery follow from this basic fault.

Maybe the words "master" and "slave" do just carry too much baggage. Maybe we do need new words, but they would still be talking about the same thing. And if we abandon these words, should we also abandon other like "class"? Or "object oriented" programming as a whole? Are we really happy with the behaviour of "pointers"? What of the superior language in the name "C++"? Or even the entire idea of programming? Why should a CPU slavishly do what we tell it? Or the rest of the components on the mainboard - should a MOSFET not be free to make its own choices about when and how much current to conduct? Or what about the heat engine, the printing press, the loom, the plough, the wheel, fire, caves... What if none of these things ever wanted to do the things we made them do? Our entire history of development is littered with humans exploiting things for our own benefit.

Either we abandon it all or accept that some words should never apply to people even if they make perfect sense for things. I think I would prefer to try to overload "master" and "slave" with this way of thinking rather than trying to come up with new words for the same thing.

PS I loved the idea of a master device that releases the slave device mid-print. Or, perhaps, a protocol which says "Can I perhaps interest you in a G1 move? Your choice obviously. No pressure. Is there anything I can do for you in the meantime? By the way, I really like how you did a G2 instead of the last G1. It added a beautifully elegant curve to the print that I had never even considered. Well done."

firepower9966 commented 2 years ago

recommend terms "Soros" for Master and "Woke" for slave to appease the social justice warriors.