Lolwut is the perfect break from madness.
Master/replica makes sense to me in the context of copies that all perform the same function, including the master.
I feel like there is probably an exact term for this arrangement, from another discipline. Maybe choreography?
• There are principal dancers and back-up dancers. People performing the same action are dancing in unison.
• There are cheerleading captains and their squads, which consist of the roles of base, flyer, and spotter. Interestingly, being captain (giving orders) is disjoint from a member's performative role within the squad; a member of any role could also be the captain.
• There are operatic prima donnas (or primo uomos)—the lead singers—and a chorus, though these are not mirrored.
• Orchestral organization has tons of different roles: the orchestral ensemble composed of players; their conductor; the principal of each section; the concertmaster (the principal of the section leading the melody of the piece, usually the first violin section.) You can also speak of accompaniment.
Interestingly, most of these disciplines lack a term for "everyone of a group being led, besides the leader." I would assume that this is because the leader is taking part in the group, and so there is no explicit action taken by the group-minus-the-lead, only actions taken by the lead or taken by the group as a whole. (On the other hand, for machines, it is useful to talk about the process of following the lead's... lead. Humans generally do this implicitly, and don't really refer to it as an explicit action they're undertaking, separately from the actions that they're mirroring.)
I miss the days when politics and political correctness didn't directly affect software projects. What do these political police stand to gain from all of this?
The only thing that has changed is that social media and the Internet in general have made it much easier to organize.
Software projects have always been plagued by humans arguing with each other.
In essence, they get to tell themselves (mostly convincingly so) that they have contributed to reduce inequality and discrimination, and are helping right a historical wrong.
In the end, I dont think it changes things one wit - but it makes people feel better, so I guess its a net good over time - albeit an unconscionably silly one.
They've always affected software projects, they just haven't affected you.
> What do these political police stand to gain from all of this?
Making other people feel as welcome in software as you've already been by default.
Perhaps it's a "good" thing I haven't created any major OSS projects...
Not OP but it's extremely pretentious to assume that.
More generally, assuming that "people against changes (that you personally think are positive towards minorities)" are not part of said minorities tends to be as incorrect as assuming that the people in favor of those changes are part of them.
Furthermore, just because the term "minority" implies that there is a minority of people in that group, there are many minorities which together form far larger groups. So "encountering a minority" isn't uncommon. And I've seen on multiple occasions horribly-arrogant people addressing some of my white male friends, claiming they're oblivious to "the plight of minorities", all because said friends didn't come forward to explain they're gay.
So all that to say, don't assume the person you're replying to hasn't been affected by those things. Even if you're correct, it's not a correct nor even safe thing to assume.
> Making other people feel as welcome in software as you've already been by default.
If you're only superficially aware of the issues involved, it's easy to think that superficial changes will suddenly improve things. It's also all too easy to ignore the fallout of those changes.
Reminds me of PETA's philosophy towards animals: If they can't be free, then they're better off dead. Ignoring that PETA:
1. Isn't objectively correct / morally right
2. Harms the greater cause with their methods (by harming public perception)
In general, not being tactful is a terrible idea. Forcing changes through is a terrible idea. Bullying people is a terrible idea. And if you think these tactics are worth it to "make people feel more welcome", I don't know you.
Apart from that, I'm not suggesting that people should ignore normal contribution procedures and conventions when making such contributions. Nothing in my comment is endorsing ever single person who has ever made such a contribution, regardless of the approach they took. I am, however, suggesting that maintainers who refuse such contributions (for reasons like "I don't want to do this" rather than "this change has issues, please address them") are part of the problem.
A warm fuzzy feeling of seemingly contributing to the Forces of Good and fighting the Forces of Evil. Some launch rockets to the Moon, some create beautiful art, some create awesome software. Some instead bully people to not use certain words. The consider it their contribution to the society. Unfortunately, as more and more people fold to their pressure, this serves as confirmation that this contribution is worthwhile and there's more to come. If you write a symphony and it is applauded, you want to write another one. If you speech-police one project and it works, you want to speech-police another one.
It's not bullying. In fact, I'd say active code maintainers who receive these requests and don't _reasonably_ accommodate them are the real bullies.
If you don't like the code, fork it if you must but don't harass the creator of the thing you get to use for free.
Somehow I feel less welcome in a culture where there are lots of people vigilantly seeking offense where none ever was and waiting to pounce on the use of every word they can find any reason, real or imaginary, to feel slighted with. In fact, I feel a strong desire to not touch such a culture with a ten foot pole. I am glad to contribute my time and my effort to open source (and I regularly do), but I would not want to be a target of hate mob trying to ruin my life or argue with concern trolls, that's just not how I want to spend my life.
> It's not bullying
You do what they want, or they'll hurt you and your project. How it's not bullying?
> In fact, I'd say active code maintainers who receive these requests and don't _reasonably_ accommodate them are the real bullies.
You may say whatever you want, but you will be wrong. Actual bullies are those who try to force people to behave to their liking with threats and hurt. No amount of redefining terms will change that. If you threaten to hurt someone in any way - virtually or physically - over some words that they say or don't say to your liking - you are a bully. It's not hard to see.
That's a lot different than simply submitting a PR to change "man" to "person" -- If there's actual physical threats occurring on a regular basis within our communities I'm severely uninformed. No argument, it's bullying and it's wrong.
I suppose in that case, I advocate the underlying message but not its conveyance.
There are a few hundred other examples to pull from, these are just a few I chose at random while trying to select ones that are more about the code, or terms used in the code, than contributors or maintainers of the code.
[0] https://github.com/WICG/feature-policy/issues/150
[1] https://github.com/NARKOZ/hacker-scripts/pull/152
[2] https://github.com/Droogans/unmaintainable-code/pull/20
[3] https://github.com/braydie/HowToBeAProgrammer/issues/68
[4] https://github.com/spencermountain/compromise/issues/117
[5] https://github.com/syl20bnr/spacemacs/pull/3484
[6] https://github.com/nodejs/node/issues/3721
[7] https://github.com/twolfson/sexy-bash-prompt/issues/56
[8] https://github.com/infinitest/infinitest/issues/149
[9] https://github.com/edankwan/penis.js/issues/7
[10] https://github.com/Colorsublime/Colorsublime-Themes/issues/8...
I found some of the requests to be pretty reasonable. Some were reasonable, but not very pragmatic. Some just kinda elicited an "eh, come on?" sort of response.
I then started browsing through my own code to see if anything seemed offensive. One thing that caught my eye: in SPI communications, there is very clearly a "master" and a "slave". I have programmed many SPI-related code... So now I wonder, what was the original complaint in calling Redis servers "master" and "slave"? That terminology is very, very common in computers.
EDIT: I guess this is the original complaint?: https://github.com/antirez/redis/issues/3185
EDIT #2: I guess I'm late to this conversation: http://antirez.com/news/122
With that said, changing terminology is more than just a code change, there's a bunch of documentation, as well as possible downstream effects that would need to be clearly communicated without causing breaking changes. I still think it's worth being conscious of the words we use, and rather than looking at it as a "us vs them" political game, as a way to introspect and reflect on how we use words, and what they communicate. Falling back on "it's how we always did it" is a cop out, but if you're the maintainer of a project, it's up to you if you want to do that or not, and I don't think it's worthwhile for a community to harass someone for their decision, antirez was pretty open about this all.
Seemed to me like it was a subtle middle finger to the complainers.
If it is such a big issue, then those who had the problem can fork the repo and change the terminology in their fork. Legacy code that wants to use updated redis won't be affected.
Since people don't like discomfort, squeaky wheel gets the grease, even if the squeaky wheel represents only a tiny minority of the community, because other people are not interested in wasting time and emotional energy on arguing and being target of the outrage-of-the-day mobs.
If you think it's that easy, you personally should be the one to do the work to change it.
Now that sounds incredibly snarky, for that I apologise. But it does sum up a lot of people's thoughts towards it, and it's no more snarky that the typical twitter driveby of 'it's just a find/replace'
Anyone who has actually read the author's explanation (not saying you haven't), knows that he would choose different terminology in hindsight, but the work involved in updating documentation, and maintaining protocol compatibility that allows redis to keep its backwards compatibility features it aims for is non-trivial.
Not to mention all the documentation, and also the ongoing responsibility to third party code and infrastructure which relies on the ecosystem, that has to update along with this.
That's all work, constant, ongoing work.
Should they still make this change? Maybe, master/slave isn't exactly accurate.
But my point is that talk is cheap, and the loudest voices seem to be the folks with no willingness to put skin in the game to change it.
If you truly believe it's so trivial, why won't you help with the labour, both initial and ongoing?
EDIT: Actually, I take that back, sorry. If we both have different estimations of what the community discomfort actually is (both the discomfort currently and the discomfort that will be caused technically), then I can't make that call and say you were trivialising it.
My point is that a lot of the more vocal elements were definitely trivialising the work involved, going as far as suggesting that the maintainer is an asshole for not just doing a find/replace.
It's hard to take that in good faith, as if it were just a find/replace, why don't they offer to take care of it along with any ongoing technical consequences?
The answer is that they're both ignorant of the technical implications, and ultimately, more comfortable shouting from the sidelines than rolling up their sleeves, preferring instead to make innate character judgements about the maintainer.
It's very easy to assume that things that impact oneself negatively were done out of malice. Most of the time, these are innocent or naive, not malicious. However, as humans, we tend to jump to the worst possible case and _act on that assumption_. That's the real problem here.
It might become more subtle in scenarios where the two are disjoint groups, raising the question of how to compare them. I don't see an easy way of quantifying each that allows for such, but I'm sure that's just my own failures of imagination. Can you help me?
It's pretty obvious terminology for systems that don't support dynamic hierarchy changes.
EDIT: Consulting some docs from the time ( http://www.eugeneleeslover.com/USNAVY/CHAPTER-10-D.html ), this may not be the case. I'm genuinely curious now.
And I'm pretty sure it originates in slavery. (Glad to be wrong on that if there's any experts around)
A lot of times it's use similarly like "Master Clock". The term in technology is strongly connected to that root; the master in a protocol is the leading participant.
I think simply not using "slave" for the passive or accepting device would be sufficient to reduce the problem since that is the word that has even in the deeper roots of it's origin the same meaning as today. (Slave comes from Slav, a group of people enslaved in the medieval ages and later expanded to cover all "slavs")
For a current project I'm using master/client as terminology.
This is the future we chose. :(
On the other hand, personally I would have just said: "deal with it".
The fact of the matter is, virtually no one has been or is a slave, no one is being mocked, no one is being belittled, it's a term used to describe a system. Sure, it could be more "politically correct" (I use master and worker, personally) - however, if I inherited or was working on a code base. I would not have been as open to changing terminology as this guy.
As he put it, we are there to program.
If it doesn't enhance readability, speed, etc. it's not changing - stop wasting my time. As a "computer scientist" we should try to be objective about terms, and build forward. That means, potentially changing that terminology for the future, but also not being emotionally attached to the terms which are not intended to be subversive, subjective, etc.
We live in a society, people are going to use the term "slave" to describe things, people are going to say things you don't like, use terms you don't enjoy. I hate acronyms, I find that it is a way to segment a society or group into those who know them and those who don't. Even the term "LOLWUT", means you need to understand the term "LOL" and where "WUT" comes from.
... And that's my point, as a society, I shouldn't be pushing my preferences onto you. I should be learning to deal with my own emotions and understanding. If it's something that impacts my freedom, then maybe I should bring it up. Calling something a "slave" doesn't mean it impacts your freedom.
I disagree. Having terminology that is clear (which master/slave is not) decreases the time needed to spend to get an understanding of whatever it is you're working on.
Also related, if someone is offended by terminology then that will slow down their progress in understanding because they first have to process those feelings in order to continue.
https://en.wikipedia.org/wiki/Master/slave_(technology)
Don't give me that - also as a maintainer, I wouldn't want to work with people who slow me down on terminology issues (when they feel offended, for industry standard terms).
why do you believe that?
One source puts the number of humans alive in 2016 that have been or are currently slaves by some definition at 40.3 million.
https://www.globalslaveryindex.org/2018/findings/global-find...