Skip to content

Instantly share code, notes, and snippets.

@paulyc
Last active July 1, 2020 06:47
Show Gist options
  • Save paulyc/a02ef9c606bb8f7f61a452a9f254b4fc to your computer and use it in GitHub Desktop.
Save paulyc/a02ef9c606bb8f7f61a452a9f254b4fc to your computer and use it in GitHub Desktop.
In Re: Controversial Technical Terminology

My personal opinion on the whole ‘master/X’ terminology in tech is-- good riddance-- and I don’t write master/X because I don’t want to write the word ‘slave’, or that I think the word ‘master’ necessarily refers to slavery--I am using it as a segue to my point, which is that the technical terminology has been abused so badly throughout the years as to be now completely meaningless to the point of being confusing, which is another excellent reason to abandon it.

See: Git. There’s master, and there’s…..???? I don’t see any slave branches. ‘Main’ among pretty much anything else sounds more appropriate. There’s ATA, where ‘master’ and ‘slave’ are the equivalent of ‘#1’ and ‘#2’--the master and slave devices do not communicate at all with each other, only with the controller and it is a completely meaningless designation other than you cannot have a #2 without a #1.

From one-sided to meaningless to BIND: you can lose all the slaves you want but if you lose the master, you’re fucked, and its idea of master-master replication is to simply turn a slave into your new master as if it were at all simple. SQL: at high enough load you’re equally fucked if you lose a slave OR a master without failover, or if you simply point too much traffic at one or the other because someone didn’t tell the junior devs not to do 10 second long queries on the ‘read-write node’. [See? Simply calling one SQL server the 'read-write node' and calling the other the 'read-only node' just saved countless dev hours in trying to un-crash the database after the junior developer ran a bunch of selects on the RW node. I speak from experience! It didn't crash but it came close enough for monitoring to notice!]

[In fact, I don't think relative importance of DNS servers is a feature of the DNS protocol or infrastructure itself at all; it is purely a BIND-ism, so I apologize on behalf of my fellow Cal Bears, but BIND has been a problem for want of a better solution for 25 years or something now and terminology is far from its worst flaw but until someone comes up with something better, there it shall remain on all of our servers, along with Postfix, itself another notorious abuser of 'master/X' terminology. Yes I have tried all the alternatives, in both cases. Don't even get me started on PBX systems, I've also tried all of those and there weren't any that were open-source and actually even compiled last I checked]

Point being, notwithstanding any possibility of it being offensive, and it kinda can be not just to Africans but all humans, who have pretty much all got in groups and enslaved some other group at some point in history, but it is simply archaic not to mention goddamn confusing and opaque terminology that’s long past its due in the dumpster fire of history.

I have unilaterally chosen ‘flockleader’ for my own repos, cause there isn’t necessarily one bird that is better at leading the flock and stronger or more important than the rest, in fact to my knowledge they regularly switch out because leading the flock with nobody to draft off is damn hard work, and they’re all about equally oriented on a consensus as to which way they’re going! Definitely true, or I’d hope it would be, of any git repos I have to work on, not that it always has been... But I ain't picky, I'm good with, whatever else, cause it can't be any more potentially confusing or offensive, so, when there's a nice default consensus I'm down 100. ("Default"?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment