[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[OT] master/slave debate in Python

On Thu, Sep 27, 2018 at 1:28 AM Ian Kelly <ian.g.kelly at gmail.com> wrote:
> On Wed, Sep 26, 2018 at 7:49 AM Chris Angelico <rosuav at gmail.com> wrote:
> >
> > On Wed, Sep 26, 2018 at 11:33 PM Ian Kelly <ian.g.kelly at gmail.com> wrote:
> > >
> > > Care to give an example? The distinctive part of the definition of
> > > "slave" is that it refers to someone who is owned and/or held captive,
> > > and forced to work against their will. I can think of no situation in
> > > programming in which the word is particularly apt, because the trait
> > > of "lack of freedom" is just not something that comes up. There is
> > > always a word choice available that is not only more sensitive, but
> > > more accurate as well.
> >
> > Lack of freedom? That's exactly what happens *frequently* in any
> > job-farming situation. For instance, suppose you have an
> > embarrassingly parallel task to perform - let's say it's some kind of
> > search for correctness, where as soon as you attempt something, you
> > know whether it's correct or not. (Examples include crypto, searching
> > for prime numbers, finding patterns, etc, etc.) A master process hands
> > out tasks to slave processes; the slaves have no freedom, but must
> > simply do as they're told.
> The master also must do what it's told. This isn't a characterization
> of the relationship between processes; it's just the nature of
> programming.
> I see you addressed that point below, but note that subordinate
> processes *can* often reject tasks. It might be because "I ran out of
> memory", or it might be because "I'm already doing something", or even
> because "I hadn't heard from you in a while so I assumed there was a
> connectivity problem or that your process died, and I correspondingly
> initiated an election among my peers and now I'm the master node".

Yes, I do address the point, and what you've said here is proof that
"master" and "slave" indicate a relationship, not a permanent
situation. Computers and software can adopt an Elbonian approach to


> > Or you can slave a number of backup
> > database servers to a master, where the master is in charge of
> > everything, and the slaves simply follow orders, thus creating perfect
> > replicas. While it's sometimes correct to talk about "primary" and
> > "replica", it's also accurate to describe *all* the nodes as replicas
> > (since they're all identical); and it's entirely possible to have more
> > than one master, so there isn't really a "primary". So there certainly
> > are situations in which "slave" is absolutely precisely correct.
> Your conclusion does not follow. Just because "primary" is not always
> the best term does not mean that "slave" automatically fills the role.

No, it doesn't follow. I described some situations where it IS
correct, but there are of course times when it isn't. That's simply
the nature of technical terminology.

> "Servant" and "slave" do not have the same connotation. While it's
> generally rude or offensive to refer to an individual as a servant,
> the use of the word is not seen as a slight to an entire subculture.

And "server" doesn't have the same connotation either, yet they all
ultimately mean the same thing.

> > So rather than removing every trace of the word "slave", how about
> > instead we go the other way: use it in so many contexts that it loses
> > its sting everywhere except when referring to humans. In fact, make it
> > such that a human slave is "a person being treated like a computer",
> > and thus obviously lacking in basic human rights.
> How about we also plaster the swastika (another symbol that carries
> "another meaning") all over everything, all while insisting that it's
> just a good luck symbol and that it shouldn't be associated with Nazis
> forever, and force anybody who finds it offensive to "get over it" or
> suffer in silence. I don't mean to Godwin the thread, but this is no
> different than what you're proposing.

Only if you can demonstrate that you're using it in a technically-accurate way.

> Also: a human slave is not "a person being treated like a computer"
> and I find it highly disrespectful that you would move to trivialize
> slavery like that.

Actually, if a human slave is being treated as someone who has no
will, no autonomy, no power to choose anything, s/he IS being treated
as a computer, and my point is to highlight that. Think about how you
treat your computers - you have the power to discard them if they do
not work correctly, or even if you just want to get a newer one. You
have the power to kick them across the room and nobody will arrest
you. Maybe you don't do those things (I would hope you don't kick
computers around), but the computer has no say in that. Am I
trivializing slavery? Or am I using a descriptive term that is
actually more accurate than you dare acknowledge?