On banning racial terms in programming
Update June 7, 2020: The recent events in the US and around the world with the BLM movement made me realize a few things. Racism is real and way worse than I ever imagined and experienced myself. It’s pointless to ignore it, we need to redesign our society by starting with the outdated concepts that have been introduced a long time ago. I am sad that we have to fight for something I was hoping would be natural for everyone but I am also convinced that together we can make it right.
There’s a trend lately with people banning words for their racial connotation in programming. A few examples are master/slave, blacklist and whitelist. I can’t help but believe that this is wrong and counter-effective. You can’t fix racism by overreacting and introducing it everywhere.
I was born and raised in La Réunion, a little french Island near Madagascar. La Réunion is well known for its diversity. People of all origins are mixed together. It’s not unusual to cross a mosque, a church, a Tamil and a Buddhist temple a few streets apart. Like many other islands, it has a strong past of slavery. Many places are named after famous slaves that successfully fleed their master. It’s so important for us that we even have a bank-holiday day to commemorate, on December 20th. It’s specific to La Réunion, for the rest of France it’s a day like any other.
My mother and her ancestors are from La Réunion. My father is from Metropolitan France. We’re kinda white. Yet, I feel definitely closer to the people that should be offended by words such as “master/slave”. Truth is, I have never been. The reason is that I never thought of it as “master” referring to a person ruling other persons (aka “slaves”). To me, it’s a technical term with a clear definition, as nicely put by Sachit Gupta in his answer on Quora:
The word MASTER actually refers to the ability of a part (in any context, not just computing) to control the working of the rest of the system. Whereas the word SLAVE suggests the characteristic feature of a part to be dependent on other part to carry out the function that it is meant to perform.
By banning those words, you’re giving them the meaning you don’t want them to have. You are turning a technical term into a racial debate. If you’re not racist, then you should be smart enough to make the distinction. I’m not saying that we shouldn’t be careful about the words we use but master/slave are facts at worst. It’s part of our history and everyone should know about it. If the terms were to be used in a racist way then fine, it would help us spot racists earlier and ban them from the programming community. In the end, what’s wrong is not the words themselves but the way they’re used.
In La Réunion, I wouldn’t be afraid of asking a friend if their parents are black. In Metropolitan France, and elsewhere, I would be more cautious. The thing is that I know this question wouldn’t have a second meaning in La Réunion. When I’m asking if your parents are black, I’m just curious to know where your nice skin color comes from. I didn’t mean to suggest anything. It never crosses our mind that people could be offended by it. I don’t mind being called white, grey, black or whatever if that’s what your eyes are telling you.
I believe racism should be fought by banning racists and making the whole thing non-existent. We don’t have to agree but we need to find a consensus. If people feel unwelcome in programming because of its terminology then let’s discuss it. We can probably find better alternatives but let’s just not rush it.