Skip to content
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

master/slave GDScript keyword name choice might be unfortunate #7986

Closed
hikari-no-yume opened this issue Mar 8, 2017 · 17 comments
Closed

master/slave GDScript keyword name choice might be unfortunate #7986

hikari-no-yume opened this issue Mar 8, 2017 · 17 comments

Comments

@hikari-no-yume
Copy link
Contributor

@hikari-no-yume hikari-no-yume commented Mar 8, 2017

There's been something of a trend towards moving away from “master” and “slave” terminology, because of its associations with, well, slavery: https://en.wikipedia.org/wiki/Master-slave_%28technology%29#Appropriateness_of_usage

Besides that issue, sometimes alternative naming choices are clearer anyway (e.g. “leader/follower”), especially to people from a non-technical background. It's not entirely clear to me from the names what they mean. My first guess was it means an authoritative server (“master”) and replicating client (“slave”) relationship, but I'm not quite sure.

At the risk of starting a flame war, it might be worth changing them. If they were to be changed, better to do it now while they're not in a stable release.

@eon-s
Copy link
Contributor

@eon-s eon-s commented Mar 8, 2017

I guess it could be a chance to step away from that old nomenclature.

It could be something clear like host-guest, server-client.

@RandomShaper
Copy link
Member

@RandomShaper RandomShaper commented Mar 9, 2017

I think people is too sensitive.

But anyway if the industry is going towards changing the naming, I think Godot should follow.

Do you know any relevant project that has donde the switch? What words have they chosen?

@hikari-no-yume
Copy link
Contributor Author

@hikari-no-yume hikari-no-yume commented Mar 9, 2017

The Wikipedia article I linked to cites a few projects using “primary/replica”.

@RandomShaper
Copy link
Member

@RandomShaper RandomShaper commented Mar 9, 2017

@reduz
Copy link
Member

@reduz reduz commented Mar 9, 2017

@freemanfromgodotengine
Copy link

@freemanfromgodotengine freemanfromgodotengine commented Mar 9, 2017

Imho if terms master/slave accurately describe exact relation of dependency between two things in Godot, the terms should be used, because they are proper. If that relation between two Godot components is different than master/slave relation, then lets describe it more accurately by using different, proper words.

In the past, terms like master/slave were used on purpose and not because tech people supported slavery, nor forgot that "host", "guest", "server", "client", "leader", follower", or "replica" words existed. For example, in the context of different audio devices and their synchronization, master/slave relation is really the most accurate term describing how the process works, even to people from a non-music-technical background.

I am against usage of inaccurate Wikipedia entries as a proof of supposed trends or issues, because they may be exaggerated or not true at all.

I checked. Original text by Global Language Monitor says clearly, that it's all about Political (in)Correctness. So, imho, if we are not making politics here with Godot - and we are clearly not, because it's a game engine for all - we should stay with the most logical terms and meanings of words, unless we really want to start creating semantic mess, that we all can observe in the world of contemporary politics - field very often politically correct, but logically deceived.

My $0.02.

@akien-mga
Copy link
Member

@akien-mga akien-mga commented Mar 9, 2017

Sorry, I think this is stupid, slavery has been erradicated centuries ago
and there is no one alive that could be offended or discriminated by such
condition.

Though that's not fully accurate outside of the occidental world, I agree that this is a non-issue. The usage of the terms master and slave in networking APIs are an industry standard, just like male and female are standard when talking about electrical sockets (in a pretty graphic way, but at least that's easy to understand).

The terms master and slave are used to describe the relation between methods and objects in the networking API. There is no personification made at any stage, and it is crystal clear that those concepts have no relation to human slavery. Of course we could find other terms for this, like capitalist shareholder/wage-worker, but unless there is a clear trend in the industry to move to more politically correct terms, I don't see any gain for Godot Engine to diverge from the standards. It would just make those concepts harder to understand and to link to the wealth of documentation about master/slave networking paradigms.

@hubbyist
Copy link

@hubbyist hubbyist commented Mar 9, 2017

I try to be politically correct while talking to students but not with adults and even words are forgotten history do not change. So inventing terminology for political reasons will just cause useless debates IMO.

But it is fun, can we call them narrator/dreamer for making concept more matrix like. 😄

@RandomShaper
Copy link
Member

@RandomShaper RandomShaper commented Mar 9, 2017

If only a subset of the industry has changed the terms, the standard is still master-slave. In that case, Godot should keep away from the infection.

@RandomShaper
Copy link
Member

@RandomShaper RandomShaper commented Mar 9, 2017

Sorry for the double comment, but I've just come with the idea that given the fast growth of Godot, soon will come the time when the industry standard will be set by it. :)

@akien-mga
Copy link
Member

@akien-mga akien-mga commented Mar 13, 2017

So, case closed I guess.

@Grass-H0PEr
Copy link

@Grass-H0PEr Grass-H0PEr commented Sep 24, 2017

But here's the thing to think about :

Children will use this program.

If it seems harmless to you,
understand that the more exposure a brain has to a phrase,
the more it's repeated internally & propagated & reused.

It's not about liberals or political correctness.

It's about what ideas you want bouncing around in the minds of your children.

@Grass-H0PEr
Copy link

@Grass-H0PEr Grass-H0PEr commented Sep 24, 2017

Progress only happens
when enough people do the right thing.

@akien-mga
Copy link
Member

@akien-mga akien-mga commented Sep 24, 2017

Thanks for your input, but the case is closed already.

@godotengine godotengine locked and limited conversation to collaborators Sep 24, 2017
@reduz
Copy link
Member

@reduz reduz commented Sep 13, 2018

I'm just letting know, almost a year after this issue was closed, and after this was discussed by most of the core contributors, it was decided that an alternative will be added to the keyword "slave" for those who do not wish to be forced use it.

I hope you understand that, even though the majority was in favor of this change, most of Godot contributors are not from regions where the "slave" word (still) has a strong negative connotation (case in point, most contributors are not from the US). The world is more complex than many believe it to be.

This cause took a significant effort to empathize with for many (which originally considered it a waste of time to discuss), and yet they now decided to push for it.. so I hope this effort can be respected and understood.

While an alternative will be introduced ASAP, the "slave" keyword will not be removed for now for compatibility reasons, but the idea is to eventually deprecate it and effectively remove it next time there is a major (compatibility breaking) release. This issue will not be reopened either.

@reduz
Copy link
Member

@reduz reduz commented Sep 14, 2018

As for the words used, we had a long discussion about words to replace it. The main problem is that the traditional words used for this, which are primary/replica, controller/controlled, leader/follower do not really make much sense in the context of how networking in Godot works (because the controlled peer still has to do logic of it's own) so they can be confusing to users (this matters too).

Some discarded proposals included brainslug/human or gru/minion (seriously). We actually did consider keeping the word master as by itself has more positive than negative connotations. We tried master/minion, master/lackey or master/worker but that still would not have cleared up enough the reference to slavery, which is what can be considered offensive.

Instead, we settled for the term master/puppet, which references to the act of puppetmastering.. which is an activity mainly aimed at entertaining children, with no relation to slavery (or any other relation of power between humans).

This works better in the Godot context, as the master node will tell the puppet nodes (in different peers) how to appear and act to other players.

@akien-mga akien-mga added this to the 3.1 milestone Sep 15, 2018
@akien-mga
Copy link
Member

@akien-mga akien-mga commented Sep 15, 2018

Fixed by #22087.

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

No branches or pull requests

8 participants