Technical review of NIST’s inclusive language
NIST stands for National Institute of Standards and Technology. It is an organization within the United States Government, but since it is run by the USA government, it is safe to assume that other countries (and private organizations) play “follow the leader”.
Is that good? Is that bad? What are the pros? What are the cons?
Will it affect your company? Let’s say that you are a small company that has a webpage, Everygame casino login, should you be concerned? Should you even bother reading the document?
The example I gave above is an online-only company that has visitors from around the world, but what about a small company that is a brick-and-mortar store (physical entity) that is physically located in Africa, across the Ocean from the United States.
Well … education is power, so it is always good to know what is going on in other parts of the world. Then make a decision on the “cost of implementation” vs “problems if not followed”.
Where can I find the original source document?
Source: NIST.IR.8366.pdf (https://nvlpubs.nist.gov/nistpubs/ir/2021/NIST.IR.8366.pdf)
The first edition of this document was published in August 2012. Last updated in April 2021. This document is free worldwide.
Whitelists and Blackslists
- Instead of whitelist, use allowlist
- Instead of blacklist, use denylist
The new options make sense, and it is just a variable name (and GUI interface). But is the change really needed? I have been programming since the 1980s, and I have never in my life made the connection between whitelist and white-skin people and blacklist with black-skinned people. I was always under the assumption that if you have a white piece of paper and you use a black marker over text that it makes it impossible to read (you are blacking it out; you are denying someone the ability to read it). Hence the name “blacklist”, and the color opposite of black is white (color theory).
(1913 Webster) Definition of blacklist: To put in a black list as deserving of suspicion, censure, or punishment; esp. to put in a list of persons stigmatized as insolvent or untrustworthy, -- as tradesmen and employers do for mutual protection; as, to blacklist a workman who has been discharged.
Other suggestions:
- blocklist/passlist
- denylist/allowlist
- permitted/refused
The problem is that the government should have just picked on one set of vocabulary words: denylist/allowlist. By giving options, you are just causing confusion and frustration for developers (the ones who write the scripts to make massive changes).
Blackmail
- Instead of blackmail, use extortion.
This is another one that the change makes sense. Although I highly doubt that black people were blackmailing anybody.
On the other hand, James Armistead, a black slave, volunteered to be a spy for George Washington in the American Revolution, because as James Armistead described the way things were at that time, slaves were viewed as “not being there”, so people said and did things in front of them that they would never have said or done in front of other people. I personally consider James Armistead to be an American Hero. Without his help, the American Revolution might have turned out differently.
(1913 Webster) Definition of Blackmail: To extort money from by exciting fears of injury other than bodily harm, as injury to reputation, distress of mind, etc.; as, to blackmail a merchant by threatening to expose an alleged fraud.
According to Wikipedia, the origin has to do with raiders in England (aka, protection money) (1829). The slave trade act was established in 1807 and the Slavery Abolition Act was in 1833.
Given the history of slavery in England and the history of the word, it is very unlikely that blackmail has anything to do with black-skinned people.
From a technical perspective, it is just a simple text replacement.
Master and Slave in data nodes
MySQL, is a major opensource database that is used by WordPress, MediaWiki, and almost every other opensource project on the internet. It was first released with replication in May 2000. At that time, MySQL used the words “MASTER” and “SLAVE”. MASTER was the main database and SLAVE was the replicated database.
Most people would agree that they were not the best words to use.
- Old: Master, New: Source
- Old: Slave, New: Replica
- Old: Blacklist, New: Blocklist
- Old: Whitelist, New: Allowlist
The problem is not the word. A word is a word is a word. The problem is that everybody else uses different words.
For example, Mediawiki uses DB_PRIMARY (for “master” or “write actions”) and DB_REPLICA (for “slave” or “read actions”).
MySQL does not use PRIMARY, because it does not imply a role. “Each replication configuration has a source and does not imply what role a server should have in the overall database architecture. Therefore, the use of e.g. “primary” does not fit, especially when replication is used to build database architecture topologies including bi-directional replication, multi-tiered replication, or even circular replication.” (from https://dev.mysql.com/blog-archive/mysql-terminology-updates/)
Also, the government document gives suggestions for replacement:
- main/secondary
- primary/secondary
- primary/replica
- host/target
- leader/follower
- orchestrator/worker
- initiator/responder
This also includes source control systems. For example, GitHub used to use “master” branch to indicate their main branch. Now they use “main” branch to indicate the main branch. GitLab is the same. Originally, the main branch was called “master” and new branches are called “main”.
- MySQL 5.7 used MASTER/SLAVE (21 October 2015)
- MySQL 8.0 uses REPLICATION SOURCE/SOURCE (19 April 2018)
My problem is not with the words. It is with the fact that the standard does not just “pick one”. You have GitHub using “MAIN”. You have MySQL using “SOURCE”. You have MediaWiki using “PRIMARY”. Originally everybody used MASTER. Maybe MASTER/SLAVE was not the best choice of words, but every implementation using something different causes its own set of problems.
For me as a programmer, I never thought about MASTER/SLAVE in terms of people being enslaved. Even in terms of programming, the code that actually interacted with the database was buried in libraries that I never directly accessed.
But the situation now is that every company (situation) is using a different set of words and nobody is providing any tools to help clean up the mess that was created. Am I “accepting the new naming”? No! But, certainly not because “I believe slavery should still exist”, but because things that were never broken, now do not work.
So do I waste my time, money, and energy “fixing bugs” that only exist because some person who is never going to read the source code deep in the bowels of a library is “bothered” or do I stick with the old versions that use the old vocabulary that I know works as it supposed to work?
Well, considering I just wasted a day of labor uninstalling MediaWiki 1.39 and installing MediaWiki 1.35, you can figure out the answer to that question.
Summary
There are even more recommendations, and you can look at the original source document to learn about them.
Some are simple (not tech heavy), so they are no big deal to implement.
- Low on the totem pole, use low priority.
- Instead of he/she, use they (as a single form of unknown gender).
- Manmade hazards, use “hazards caused by humans” (do not agree with this one).
- Instead of handicapped, use impeded (seems the same to me).
- Instead of “the needy”, use “persons experiencing material poverty” (the layperson is NEVER going to change to that option, it is too wordy).
- Instead of “out in left field”, use “missed the target”.
But when we are talking about technical stuff, the point of “standards” is that they are supposed to create … well, standards. When you say “don’t use WORD_A”, but instead “use either WORD_B, WORD_C, WORD_D, or WORD_F”. That is no longer a standard. That is a mess, and it does not make people feel positive about the change. It just makes people angry.
Not angry because “We want to use WORD_A and you can’t stop us”, but angry because nobody knows what is going on, product A can no longer talk to product B, and most of all, things that used to work, no longer work.
It is easy for someone in some government agency to write a document. But if it is not a well-thought-out document, it is going to cause more problems than it is going to solve.