Master Language Conventions In Tech
Language matters and metaphors matter. As humans/engineers we need to do everything in our power and beyond to not perpetuate sexist, racist, or ethnocentric language. Here is an RFC document from IETF that argues for and describes alternatives that shift specific language conventions used by RFC Authors and RFC Editors to avoid oppressive terminology in the technical documentation of the RFC series. Specifically, this document details two sets of terms that are normalized on the technical level but oppressive on a societal level.
Instead of Master-Slave use the following:
- Primary-secondary
- Leader-follower
- Active-standby
- Primary-replica
- Writer-reader
- Coordinator-worker
- Parent-helper
Instead of Blacklist-whitelist use the following:
- Blocklist-allowlist
- Block-permit
Diligent care should be taken to not overtly convert all tech naming based of the above said guidelines. A pragmatic approach on why something should be named in a certain way should prevail. As an example, the convention of having GIT branch named as Master is purely from the perspective of having a master copy (as in music) rather than anything else. There is no concept of Master/Slave in the context of version control. You can always choose to rename the Master branch to anything your team chooses (main), but have your priorities and right thoughts behind such decisions.
-Robert C. Martin