Lol, at $work there is a big list of forbidden words, I was not aware of it until I created a pull request containing the phrase "bad packet". Turns out "bad" is in the list, along with stuff like "workaround", "hard-coded", and also a huge list of every slur and vaguely sexual term known to man, some of them oddly specific like "son of a motherless goat". Learned a few new words myself that day...
I remember reading a great story about someone doing embedded development who was doing something like download firmware onto a device and being told "Checksum is bad"...
After much checking it was realised that this was because the checksum literally was 0xBAD....
Why is "bad", "workaround" and "hard-coded" are on the list of blacklisted words? Sounds kind of dystopian; just because you forbid a word from the dictionary or remove it, it does not solve the underlying issue.
My guess is it's about client perception (and perhaps even admission of guilt).
My first encounter with this was as a young developer at an electronics manufacturing company. When discussing a request from a customer to change a particular undesirable behavior of the device, I referred to this as a "bug" in an e-mail to them.
I was quickly reprimanded / corrected, with the explanation that -- while "bug" is a somewhat innocuous term to engineers, to non-engineer types it brings to mind a whole host of bad images, fears, and can lead to canceled contracts under the premise that we've delivered bad-faith product. I was initially very resistant to this idea, but I've seen the wisdom in this as I've matured as an engineer over the past 20 years since this run-in.
For a related example, it reminds me of this issue that was opened on llama.cpp by a user who was concerned that the software had been "hacked":
> Hey, I was reading your Readme.md and I saw that your repo was hacked. I want to ask what this means and wanted to check if the users like me also get the impact of hacking. Or, this is not the thing I should worry about?
Of course, the repo was not hacked -- but the founder of the project mentioned that it had been "hacked together" (as a term of humility / self-deprecation) and some users got the wrong idea of what he meant by that.
So I don't think this is about censorship, so much as good public relations. "Don't spook the horses" -- not all words mean the same things to engineers as people whose perceptions of technology are shaped more by movies and headlines.
Dystopian for sure: I’d wager that if the code-base lives long enough and the pool of developers is large enough, they will start using Newspeak words such as “ungood” or “doubleplusungood” – or other synonyms for “bad” – to work around the blacklist.
You joke, but the phrase "black list" isn't allowed where I work. It contains "black," which has racial connotations. We use "block list" instead. I didn't realize the connection to Newspeak until now
Yes, a lot of dumb little "American political brainrot" like that has been getting pushed in places.
Another example is GitHub changing the default branch name from master to main due to their perception that the existence of a master implies the existence of slaves.
Electronics protocols are getting a newspeak renaming with sometimes humorous results when you see documentation where mass search-and-replace mangled a substring or they forgot to replace the bad words in all caps.
I'm still peeved about the bot that scolded us for the word "Mastercard," which was not only a household name but also an enum value on the wire that payment processing absolutely had to support.
okay so as much as people like to meme on the whole banning blacklist/whitelist thing, it actually makes things clearer to just say blocklist/allowlist, especially for non-native speakers.
People got grumpy about master/slave being replaced with server/client, superior/subordinate, leader/follower, and similar terms but that actually largely benefits as well in that it makes things clearer. Anyone who has dealt with bus protocols that support the more complex "multi-leader" setups or peer-to-peer setups knows how the master/slave terminology can be confusing and potentially limiting in accurately describing the parts of the system.
And the git master/main thing also is more a matter of just making things easier to pick up. Master can be confusing there for the same reasons it's confusing in bus topologies. Main instead is obvious. It's the main/mainline branch of the project. And that also helps set the divide for main vs feature vs maintenance branches (and release tags).
So yeah some of it was done under the guise of politics but that's generally been more about getting an excuse to make the change without people dismissing it rather than the underlying reason for the change to happen.
I tend to not really notice whtever slight cleanliness/communication improvement any of these changes add (this is probably just a me thing).
So, putting politics aside, I don't really care as long as it isn't breaking existing stuff. My only point of contention has been the politics behind some of the pushes.
Aren't blocklist and allowlist strictly better as terms? Black and white (even ignoring the connotations) require at least one level of indirection compared to explicit terms that describe what they are
I actually agree with some of the other commentators that "blocklist" is probably a better term but it’s not easy to start using a new term instead of one I’ve been used to for decades.
In some places, those lists are even more extensive as they include transliterations of profanities in all the various languages the product is ever localized in.
Sometimes this leads to embarrassing issues. I remember one case where a Chinese guy named Hui was unable to make a blog post on his team's official public blog. Turned out that his name was on the list of banned words because of https://en.wiktionary.org/wiki/%D1%85%D1%83%D0%B9#Russian