1. 25
  1. 21

    “Moreover I don’t believe in the right to be offended, because it’s a subjective thing. Different groups may feel offended by different things. To save the right of not being offended it becomes basically impossible to say or do anything in the long run. Is this the evolution of our society? A few days ago on Hacker News I discovered I can no longer say “fake news” for instance.”

    Everyone should have a right to be offended, because that’s a continuous empathy machanism.

    In society, as we interact with each other, there may be situations where someone may feel offended, and that’s okay. We could even offend someone accidentally, and that’s okay too. The adult life is complex. Life is complex. We get feedback, learn, and iterate. It’s been like that since ever.

    What isn’t okay is to think that other people shouldn’t be offended with something, because “It isn’t a big deal”. They may be offended, and that’s something you’ll have to deal with. We should be ready, and conscious, that our acts, even when we think are harmless, could be affecting other people’s emotions, they have the right to do so.

    That’s, basically, empathy. And without empathy, we won’t go anywhere.

    Overall, I would agree with the author, but I deeply disagree in that statement. It’s not “everyone is offended” or “no one should be offended”, it’s way more complex than that.

    ¿Is it okay to have “Master-Slave” in Redis, as it may offend (or just feel unwelcome) to some people? Just measure the possibilities, and based on this, on feedback, and on empathy, decide what’s the best decission to make here. But don’t take away the right to be offended to the people.

    1. 2

      I fully agree that we should be sensitive to others perspectives and situations and try to always have an open mind.

      But I strongly disagree that there exists any right to not be offended.

      The problem with such a premise is that anyone can choose to be offended by literally anything. Or they can say they are offended by something when really they just want a soapbox to stand on. Or you might offend someone and not even know it. The bottom line is that if you try to go out of your way to offend no one, you will quickly find that you have nothing left that you can safely say.

      1. 8

        Note that they are talking about the right to be offended, not a right to not be offended. That is quite different.

        1. 2

          It’s the same thing once they take action. They’re offended. They want the thing changed so theyre not offended. Equivalent in practice.

        2. 3

          Having a right to be offended doesn’t mean to be, automatically, offended for everything.

          There’s a sweet spot, a sane spot, which is: Be offended whenever you feel like that, and just use that card when you feel that offense.

          But, already having the right, you still need some social skills to interact with each other. Someone that gets offended for too many things will interact with a society that will reply with feedback. That ends up shaping you.

          The point is: No 100% offense. No 0% offense. There’s a sweet spot. And the sweet spot requires the right to be offended.

        3. 2

          You are taking what antirez said literally, but I don’t think that is charitable. Most people agree that emotions/feelings usually precede notions of right and wrong. I doubt antirez wants to deny people their feelings.

          What I think he means by having “a right to be offended” is “being entitled to having your way based on the fact that you feel offended”. Using master-slave terminology offends some people and their basic argument is that that alone is sufficient reason that it should be changed.

          Antirez sees that as a bad argument and feels that people do not have a right to have their way based on the fact that they feel offended. And honestly, they probably wouldn’t want that right either, because those making these arguments are usually people with opinions that deeply offend their more conservative countrymen. Who would then also be entitled to getting their way, based on their feelings of being offended.

          If we’re using empathy as a measuring stick, we should apply it equally and also require empathy of those that feel offended. When you feel offended, understand that someone does not intend to offend you. Understand that they may simply not understand why something is offensive to you. Recognize that feelings are regularly used coercively and your feelings thus have very little weight. Recognize patience and persistence are needed to achieve change.

          1. 5

            What I think he means by having “a right to be offended” is “being entitled to having your way based on the fact that you feel offended”

            If that’s what he meant, I agree (And would sugest to write that, instead). You have the right to be offended, and your feelings should be taken in count, but being offended doesn’t empower you with the absolute truth.

            If we’re using empathy as a measuring stick, we should apply it equally and also require empathy of those that feel offended.

            Totally agree. Empathy is a two-way road.

            1. 1

              (And would sugest to write that, instead).

              Some of the modes of failing to communicate I regularly see in issue reports written by colleagues:

              • not realizing that what they wrote doesn’t mean what they intend it to mean (especially non-native English speakers)
              • not realizing they are leaving out knowledge or intermediate reasoning steps that make the report confusing and easy to misunderstand
              • misunderstanding the issue and writing things that don’t make much sense given a correct understanding of the issue (but are completely sensible assuming their understanding of the issue)
              • misunderstanding or failing to make explicit their own arguments/reasoning (related to the second, but concerning non-factual or very indirect matters, such as reasons for having a hunch about a cause)
              • probably various other failure modes that I haven’t clearly distinguished yet.

              Whenever I find someone seems to be saying something weird or ridiculous, I start by assuming there is a communication problem. After fleshing out the issues I may still disagree, but at least the thing I’m disagreeing with is an actual opinion held by the other. So in this case, I’m much inclined to not take what antirez wrote very literally.

              (And I would even go as far as to say that even if antirez would chime in to say he did mean it literally, then I would have some serious questions before I would actually believe that to be the case. Thinking you believe something while not actually believing something is a very real thing)

              1. 2

                It totally happens, but trying to guess what the author was trying to say while failing on communication seems like too much guessing for me, not optimal.

                I prefer to understand exactly what the author says, and, if there’re misunderstandings, a quick discussion will clear everything. (And maybe the next time, the author is able to communicate better).

        4. 10

          antirez highlights a lot of the reasons I just can’t get behind the recent spate of almost militant political correctness going around. It’s all empty politics. It’s shouting on the internet without actually getting anything meaningful done.

          Towards the end, he touches on something that I’ve thought about often:

          Moreover I don’t believe in the right to be offended, because it’s a subjective thing. Different groups may feel offended by different things. To save the right of not being offended it becomes basically impossible to say or do anything in the long run.

          Exactly. Offense is taken, not given. We choose what to be angered by, what we laugh at, or what we find beautiful. Because it is a subjective choice, I can choose to be offended by literally anything. Nazi’s used the color red in much their symbolism, so I can choose to be offended by all use of the color red. Does that give me the right to demand that Lobsters stop using the color red in their logo?

          Nobody has the right to not be offended by other people’s words or actions. There never was any such right and there never should be. The freedom for an individual to say what they want, regardless of what literally anyone else thinks of it is literally the basic fundamental human right and trumps all else. We curtail that at our own peril.

          Just because you were somehow offended by something, does not automatically grant you the power to make the person who said it stop saying it or apologize for saying it. For sure, you can criticize someone’s words or opinions and that is exactly what you should do when you disagree with them. But this latest movement has much darker tone to it in that anything that doesn’t align precisely with their ideals is automatically and subjectively labeled “hate speech” and is thus fit for deletion right off the Internet according to most companies’ terms of service.

          Finally, although I firmly believe slavery is a horrible evil, most people who talk about it seem to believe it’s a thing that only happened to African Americans in the US and that use of slavery terminology is primarily offensive to descendants of this group. In fact slavery has been practiced around the world since the beginning of time and is still alive and well in certain parts of the world. If you truly care about the issue of slavery and want to do something about it, complaining about the use of commonplace terminology by an open source software project is just about the least effective use of your time and energy as is theoretically possible.

          1. 17

            We choose what to be angered by, what we laugh at, or what we find beautiful.

            We literally do not.

            1. 7

              We literally do given our rational and emotional brains interact with one able to override the other to varying degrees. You cant help having an initial, emotional reaction. Your beliefs and effort can train that part of your brain to weaken the response, pause it to distract from it, ignore it entirely, and so on.

              I learned the techniques from being raised on that mindset in the South (“have thick skin”), stress management books, those on meditation, and cognitive therapy in Learned Optimism. Using those techniques dramatically reduced the amount of stuff that pissed me off, time I stayed mad, and severity. That’s despite having severe PTSD. Others dont even notice I have it in a stressful work environment because they’re reacting worse than me. They’re letting their emotions control them instead of attempting more self-control.

              And I could probably do even better if I didnt procrastinate on learning and practicing more of it. Im the lower bound, not upper, to what can be achieved by putting effort into getting emotions under control. Most people dont care to try. Uncommon few might be genuinely unable, too.

              1. 1

                You cant help having an initial, emotional reaction. But given our rational and emotional brains interact with one able to override the other to varying degrees, we also literally have the ability to choose what emotions we allow to persist.

                Inverting these two sentences and slightly tweaking the second one makes this response seem immensely more constructive, instead of making it seem like it is just disagreeing and dismissing the parent.

                1. 3

                  It was intentional. I said I’d do it a while back, too, when I was writing careful, thorough counterpoints with opponents doing dismissive one-liners or personal attacks. It was a time-consuming, draining process. My comments were also taking 10-30 min on an audience for which they were a waste. I decided I’d put less effort into responses to people doing that with good ones save for more reasonable folks. Still mostly civil and with info but less effort.

                  Also, it’s a little weird you snipped two lines out of my comment saying I shouldn’t sound dismissive when the parent’s comment was four, dismissive words with no further evidence of position. Why did you admonish me instead of them about being dismissive? Some kind of bias there.

                  1. 2

                    My consideration was: “that’s a good response, it would be a shame if it went to waste over the start”. My comment was as much for other readers and lambdax as it was aimed at you.

                    1. 2

                      I wasn’t sure if you did it for positive or negative reasons. That’s why I just said bias. Thanks for clarifying. I’m still committed to putting less energy into responding to those kind of comments. Maybe can still drop some snark from them as you suggested. Hard for me given I call out bad logic and roast jerks in real life encounters. :)

              2. 6

                Talking about choice is often a way to disguise simple hatred. I’ve noticed that for example, Christians being against homosexuality would say it’s wrong to choose to be gay. They would then fight both homosexuality and anyone trying to say it’s not a choice. After all, how much can circumstance be hated?

                1. 1

                  I thought someone might be triggered by the use of the word “choice” and try to conflate it with the conservative argument against homosexuality. Let me assure you that I personally believe any and all conservative arguments against homosexuality are complete and utter nonsense. I stand with the LGBT community because I believe everyone has the right to choose who they want to make a life with regardless of what anyone else says, period. Whether or not their actual feelings for others are a choice of their own is, and always was, a silly thing to argue about. Because it’s completely irrelevant to the larger point that freedom of speech and action trumps virtually all other considerations.

                  As you can tell, first and foremost, I am pro-freedom. The only way to have a free society is to allow people to make choices for themselves. Choice is good, choice is freedom. Removing or discouraging choice is slavery and I have many wonderful examples of how western society is quite effectively enslaved by those in positions of great power not through force but through the reduction of choices or the presentation of false choices and I would love to discuss them all with you but lobsters is probably not the place for it. :)

            2. 15

              As further rationale for avoiding master / slave, it’s not even a clear conceptual metaphor. Primary and secondary nodes flip roles all the time, but a human slave never becomes the master. Also there is/was routine and severe distrust, misunderstanding, abuse, and deceipt from a master to a slave, whereas in a database a better metaphor would be pilot/copilot. The pilot is by default in charge but through explicit protocols the copilot will “take the airplane” during flight.

              1. 12

                Isn’t the right answer here simply: “Send a pull a request?”

                Seems like something that can be made to work with backwards compatibility, and clearly primary / secondary terminology is the way forward for databases in general. Even if some external articles and documents still refer to the old terminology, I doubt that’d cause much confusion? Searches may be temporarily impacted, I guess.

                1. 11

                  I agree. The most troubling part for me is “forcing maintainers to do work” aspect. If you judge some task to be higher priority than maintainers do, you should do the work yourself.

                  Also, even if you do all the work, you shouldn’t complain if your work doesn’t receive expedited review. Be patient and wait.

                  1. 8

                    I think primary / replica is a more meaningful term. Secondary implies order and that a second non-primary is “tertiary”.

                    Nitpicking I know but if you want to change a term because of people’s feelings at least change to terms that aren’t confusing.

                    1. 3

                      Also, we should use intuitive names for things. Master/slave isnt intuitive since there’s no telling what that really means without prior exposure.

                      I always labled stuff Main/Backup System since that’s what people called them down here. Primary/Secondary or Replica are fine, too.

                      1. 3

                        All words are meaningless until defined.

                        Master is regularly used in English to mean main. Master bedroom or master record for example.

                        Backup isn’t intuitive because a slave database can be actively used for reads but the master database is the authoritive source. If the 2 databases are out of sync then then master is always right.

                        1. 5

                          What does slave usually mean in English?

                          People aren’t objecting to the word master…

                          1. 0

                            Under control/direction of the master. Which is how it works in computer science. The terminology has been around for long enough that it is its own definition.

                          2. 1

                            I forgot about master bedroom and record. I don’t know about regularly, though. Most of the time I hear the word master is in a movie where someone is the boss issuing orders. A slave usually follows orders with no thoughts of their own. A Master/Slave system would intuitively be one where Master gave orders or requests to Slave which undconditionally followed them. The meaning of Slave makes it seem that it’s doing all the work. Whereas, saying something is main system and another is backup tells you immediately they’re similar systems, the first is doing the work, and other is ready to take over if Main fails.

                            Now, if they’re both in use, I’d have to uses different terms. I’m open to suggestions on that since I think it could get more confusing. Maybe just call it a server group with numbers or letters for individual servers. The wording is that the “group” does the (service here) together. Extra sentence says 1 has last word in disputes or “is in charge.”

                      2. 2

                        Is a pull request for a change of this magnitude sufficient? If it breaks the API, for example, you have to go through a long and drawn-out deprecation process, or maintain multiple APIs, and so on.

                        1. 3

                          I think nobody (nobody sane, anyway) is proposing to remove SLAVEOF command outright for example, since it will instantly break systems. That will need new major Redis version.

                          Pull request certainly can introduce, say, REPLICAOF as an alias and update all the documentation.

                          1. 1

                            Redis’ API is a fairly simple text-based protocol. I’m making the assumption here that it’s just a case of extending some checks to allow both terms. Could be a bad assumption of course.

                        2. 4

                          It seems that antirez decided to revise his decision, in the name of doing what’s best for the redis community: https://twitter.com/antirez/status/1038330162822238208

                          Edit: ongoing discussion on github, detailing the decisions so far: https://github.com/antirez/redis/issues/5335

                          1. 9

                            This isn’t a real debate.

                            Louder, for those in the back: This is not a real debate.

                            This is trolling. This is the equivalent of pretending to be unable to see a difference between gay sex and bestiality, or gay sex and pedophilia.

                            This is done by someone trying to make the other side look bad.

                            The only way to respond to this is by ignoring the people trying to do it.

                            Anything else legitimizes it.

                            1. 10

                              What is ‘this’: the arguments antirez is making or the arguments ‘Mark’ is making? Who of the two is trolling according to you?

                              I think the fact that this is honestly unclear to me suggests it isn’t obviously trolling and it isn’t obviously a non-debate.

                              1. 1

                                What is ‘this’: the arguments antirez is making or the arguments ‘Mark’ is making? Who of the two is trolling according to you?

                                Mark, the one making an issue out of ‘master/slave’ as if it had any relevance to human slavery.

                                Mark is the one making an argument which causes reasonable people to laugh.

                                1. 1

                                  Well, to first set up some of my assumptions: after first learning that mentioning rape can cause rape survivors to experience memories related to their rape, we quickly understand how this can be the case. Words also trigger memories for us, sometimes of sad or traumatic experiences, so we can relate. We hadn’t ever realized that before though and we don’t want to be (seen as) people that hurt others by just using words, so we may react defensively and try to deny this. However, after some time most people will acknowledge how it may be helpful to avoid certain topics, though that is hard to do in general, is a lot of work (maybe more than we are prepared to expend) and some ways of doing so seem to have negative side effects that need to be taken into account.

                                  So given that, is it reasonable for someone to trigger on the word ‘slave’, because it reminds them of the slavery their ancestors experienced? I find that a very difficult question, because I can’t directly relate to it. There are simply no words that will trigger memories of something sad or traumatic based on something in my past or that of my ancestors.

                                  However, I know that some people whose parents consciously suffered during WWII or whose parents were strongly influenced by their grandparents’ suffering during WWII, tend to react negatively to things reminding them of WWII. The trauma of their parents, sometimes only via their grandparents’ experiences, seem to have affected them to the point where WWII is a mild trigger.

                                  I can imagine this is more often the case for jews where it concerns the holocaust or the black community where it concerns slavery.

                                  So no, it is not an argument that makes me laugh and that I think I can dismiss out of hand. Even though my gut reaction is definitely to do so, as it would make my life simpler. The extreme consequence is having to watch my words all the time because a few people could be triggered by them and having to conform to their wishes as a result and I don’t think that is acceptable. But that doesn’t mean I need to fall back to the other extreme and deny the argument outright. There are middle ways.

                                  For instance, I can fully acknowledge that Mark feels this way, while simultaneously acknowledging that Mark is a single person, that there is an opportunity cost to assuaging those feelings and I feel that the trade off, the best way to spend my time, is not to make the requested change, but to spend my time differently.

                                  Bugs and missing features have costs in the world; costs that may ultimately cause grief. If the Red Cross uses Redis and could be 0.0001% more effective because of a feature antirez could build in the time it takes to make Mark’s change, how much grief does that prevent? Who is to judge that the aggregate of all the ripple effects of any choice here are in favor of making Mark’s change or antirez spending his time differently?

                                  So ultimately, I think antirez’s decision not to make the requested change and Mark’s request to make the change are both reasonable. Though I find the arguments on both sides of the debate severely lacking.

                              2. 2

                                I disagree. If (and only if) ready-to-be-merged quality PR was submitted for the change, I would consider (not accept) it.

                              3. 10

                                In the comment section:

                                But Redis has a ton of references inside the source code, API, and is a mess at this point.

                                On this date, there are 61 matches for “slave” and 66 for “master” on the source-code of Redis. That’s definitely not a ton.

                                Other projects, arguably bigger than Redis, did the change long ago. Django, CouchDB, Drupal. I don’t see how this is a issue particular of backward compatibility either, as dealing with backward compatibility is something that every user of open-source software deals with since software is software.

                                1. 9

                                  GitHub search result is misleading because it doesn’t match substrings. If you look at the search result, GitHub is not matching SLAVEOF for example, which is a Redis command so it must be maintained for backward compatibility.

                                  1. 9

                                    Can’t count how many times I’ve cursed at how bad the github search is. Stop developing new useless features, fixing search should be priority #1.

                                    1. [Comment removed by author]

                                      1. 4

                                        If you look carefully, putSlaveOnline and slave_host is highlighted but SLAVEOF is not. My working hypothesis is that change of case and underline act as token break but token needs to match exactly.

                                    2. 2

                                      61 matches for “slave”

                                      antirez did better count and came up with 1500. 60 is a garbage number.

                                      1. 1

                                        I’d search and replace it, then duplicate the tests refering to PRIMARY and and reintroduce all or at least enough tests for master/slave API so it is not a breaking change. That way the project basically has shown good intentions and is on the right track. The deprecated API can stay for a few years, I don’t think many will be offended by that.

                                        1. 1

                                          A lot of open source software around us has been working really hard to stay backwards compatible, like most libc implementations, many kernels within reason, etc.

                                          this is common for things for which an incompatible change will cause a cascade of everything else on your system becoming incompatible too.

                                          recently libstdc++ was forced to make a backwards incompatible change by a C++ language standard change, and they attempted the insane move of shipping two major versions in one .so file and trying to match symbols.

                                          1. 1

                                            It’s not just the source. It’s also the documentation, both official and blog posts and articles already published that now use outdated terminology that may confuse others reading them, internal documentation of users, perhaps config files in millions of installs, etc. A change such as this one has a pretty large aggregate cost.

                                            That’s not a terminal argument: it should be weighed against the harm caused by not making the change. But it should also be weighed against the harm prevented by not making the change, because people spent their time to prevent different harms. And neither are simple, because there is no method to value harms, no calculus to sum them and no way to predict the future. But anyone who denies all of those would be necessary for a clear cut judgment in this case is viewing the world as simpler than it is and can be called out for doing so.

                                          2. 7

                                            What a hill to die on.

                                            1. 2

                                              Who is dying? Certainly not Redis.

                                              1. 3

                                                It’s a metaphor.

                                            2. 3

                                              In case anyone is unaware, Salvatore rejected any terminology change in response to an issue raised 2+ years ago.


                                              1. 3

                                                On the one hand I get wanting to change the terminology, but in antirez’s defense, imagine having to live with the fact that you expended effort on something that you knew would have at most zero impact and you did it at the behest of a mob who unironically invoked godwin’s law as a counter-argument.

                                                1. 3

                                                  Suggesting people stop using certain words because they may offend is not sustainable, the meaning of words is fluid as is their connotation. By the end there would be no safe words left.

                                                  But on a lighter note perhaps the whole thing is a misunderstanding, after all he’s Italian and they are famous for saying Ciao! Which means I am your slave

                                                  1. 6

                                                    By the end there would be no safe words left.

                                                    This argument doesn’t even survive the simplest inspection, most terminology in IT is unchallenged and there’s plenty of words left.

                                                    1. 1

                                                      ‘Unchallenged’ for now perhaps. But setting a precedent for this sort of safe spaces thinking doesn’t bode well for the future.

                                                      Lost for words.

                                                  2. 3

                                                    Prediction: there will be movement to rename POSIX function kill to send_signal or something like that and eventually deprecate and remove kill. After all, as raised in this thread, it is an unintuitive name for the functionality and backward compatibility and tradition don’t really matter.

                                                    1. 2

                                                      I am a fan of master/slave terminology when it makes sense as an abstraction.

                                                      1. 2

                                                        These debates always seem to include an enormous amount of bikeshedding. Often by people who have never used or contributed to the project.

                                                        1. 3

                                                          The meta threads here are the same. A number of the people showing up pushing for community norms, language policing and so on are people who rarely contribute anything. There’s regulars in those threads, too. I’m just highlighting the former group as they seem to be a general pattern in all kinds of projects and places. I say ignore them by default just to save headaches.

                                                        2. 1

                                                          Everyone has a right to be offended by whatever they want, but they don’t have a right for other people to give a damn.

                                                          This is a case where people give a damn.

                                                          Just making the change and moving on with our lives seems like the obvious solution, and should have been done from the get-go. No need to over-complicate things.

                                                          1. 1

                                                            What I’m curious to know is if “Mark” is a contributor or just someone use uses Redis (or doesn’t even do that). I my eyes this changes the debate from a discussion about the project and it’s values to a random interjection from outside.

                                                            1. 4

                                                              “Mark” is a pretty well known person in the database world and a quite prolific FOSS contributor that has been raising this concern multiple times.

                                                              1. 3

                                                                apparently it will be decided by a twitter poll which is an absurd place to settle this as people completely unrelated to redis (not even in the IT field) can manipulate the result. This is farce.