I'm a developer. I use main/release/dev for new projects, because it just sounds better and is more intuitive to me honestly. "Master" doesn't make much sense. Like what's so "master" about a "master branch"? It's just the main branch everything gets merged into. It doesn't "control" branches. There's no "master/slave" relationship there. So again, "master" was never really intuitive to me.
Old projects don't get relabeled, they stay master, cause relabeling the main branch could cause potential problems. That's my two cents.
I look at “master” in our repo like you would refer to a master recording or a remaster, or similarly the gold master for when you could say a video game has gone gold.
I don't know what a master recording is. Googled it and it seems to be related to vinyl or something. So yeah, kind of hard for me to wrap my head around that, but definitely an interesting outlook.
Same for databases, master / slave does not really describe the relationship anymore. It's a primary, secondary, control node, read only or something else.
That's where you should use something more like top / bottom /s
I think in this sense, master is more akin to the 'recording' master - The best version of the recording to which others are generated, and all parts merged; no 'slaves' necessarily just the 'master'.
I think that's because in computer science most master/slave nomenclature comes from hardware with a command/control structure (still notable in things like Spark where the namenode/master node controls the data nodes).
GIT just took naming conventions from other existing design patterns (although I should probably look up sources to verify that assumption).