Thread of 6 posts

As of today I am supporting `main` as a git branch on all projects I touch.
Wherever possible I'll also disable `master`, but when it's not, `main` will be... the *main* branch.

Turns out that using non-historically loaded language is actually easier to understand than the current mainstream.

White/black list? Awkard, not obvious if you don't have "white: OK, black: KO" internalised.

Master/[slave|servant]? Awkward, not obvious if you aren't used to absolute, totalitarian and static power dynamics.

OTOH:

allow/deny list is simple, direct, descriptive.

[main|primary]/secondary is simple, direct, descriptive; and is more dynamic.
It's easy to imagine things that are "primary" in certain contexts and "secondary" in others, while "master/slave" has a hint of... immutability to it.

And this is not crazy talk, things like the amazingly good Knot DNS server struggle to explain this in their documentation:
https://www.knot-dns.cz/docs/2.9/html/configuration.html#slave-zone

If you replace "master" with "primary" and "slave" with "secondary", suddenly the fact that this authority is relative to each zone becomes much easier to explain (and understand).