Google has undertaken a substantial program to ensure its code adheres to standards of political correctness. The “respectful code” policy, a copy of which was obtained by the Daily Caller, applies both to new code, and also includes an initiative to go back and edit old code that may include phrasing or words deemed problematic by Google’s diversity and inclusion team.
This is a matter of utmost importance, according to one of the documents obtained by The Daily Caller, because, “The cost of not doing this is the harm done to other Googlers every time they encounter these terms.”
“At Google, inclusivity is central to our mission and our culture, and our values include treating each other with dignity,” the policy rationale for new code reads. “As such, it’s important that everyone can do their work without facing the harmful effects of bias and discrimination. However, terms in our codebase, Uls, and documentation can perpetuate that discrimination. This documentation sets forth guidance which aims to address disrespectful terminology in code and documentation before they go into production.” (EXCLUSIVE: Documents Detailing Google’s ‘News Blacklist’ Show Manual Manipulation Of Special Search Results)
The respectful terminology for new code policy was written by Senior Fellow Sanjay Ghemawat and VP of Engineering Suzanne Frey in April 2017. It was modified in late July 2018. The latter date coincides roughly with a campaign at Python to remove master/slave terminology from that programming language.
The FAQ of the document also clarifies that this does not seem to be a program with well-defined procedures:
Who decides which items in this document are approved (anointed as “disrespected”) What procedure is followed to make this decision? Which senior executive established that procedure? Can you inserted a link to that procedure? [sic]
There is no official procedure right now. The baseline is that “master”/“slave” should definitely change (it is explicitly called out in the policy doc), but other terms in “ongoing cleanup” have enough people in agreement they should be changed that cleanup work is actively happening. The guidance from the policy doc is to use your judgement, and ask your project/organization’s D&I [diversity and inclusion] team.
“We ask that people use their judgement about what terms might be inappropriate,” the document reads. “If you have any questions, you can ask your D&I [diversity and inclusion] product team at app-product-inclusion@. If you think that some people could be offended by a term, avoid that term. One clear example to avoid is the use of the term ‘slave’ which is often used in a ‘master/slave’ association. Teams renaming these terms should decide what best replacement terms fit their product.”
Engineers are exhorted to avoid “problematic terms” in: “Names of variables, types, functions, build rules, binaries, exported variables”; “Test data”; “System output and displays”; “Documentation”; and “Comments.”
“If the term is referenced in the context of a certain team’s codebase, work with that team to identify a clear descriptive alternate term,” the document reads. “Your team can enable a presubmit check in your codebase to help catch terms automatically.”
The second document obtained by the Daily Caller is titled “Cleaning up disrespectful terms in existing systems,” and contains a list of terms that the company is working to phase out of its existing code.
The terms “master” and “slave” have long been used in technology to refer to a relationship between devices. Google is working to phase it out. Among the “suggested alternatives” are, “primary/replica,” “master/replica,” “elder/follower” or, somewhat more creatively, “master/minion.”
The FAQ for the policy suggests that there are “>100k instances of ‘slave’ in the non-silos part of g3.”
The document states that “Invoking slavery as a metaphor is insensitive, given both the historical brutality of slavery and the fact that this type of human rights violation still happens today.”
Another suggestion is to “rename ‘redline’ to ‘priority line'” because “Redlining also refers to a racist practice of denying various services to specific, often racially associated, neighborhoods.”
A third suggestion pertains to the terms “whitelist” and “blacklist,” with a comment that “This is not about the past usage or origins, but the connotations these terms have today. Terminology equating black to negative and white to positive troubles me, and I’d like to make sure we can write inclusively.”
Anticipating the objection that the usages of redlining and master and slave in computing have little to do with the history of American race relations, the FAQ of the document says, “Words can have multiple meanings and origins, and while one person might not think about the sensitive non-technical meaning of a world, another person might, depending on their background. The argument ‘I don’t think of this word as a problem’ should not exclude it from critiquing. Terms on this list should have explanation for why they’re on the list, and what other meanings or connotations they might have.”
“The list won’t be thousands of words ling [sic],” the document continues, “or include every possible monosyllabic word. It should only contain terminology that is actively causing harm and disrespect to coworkers.” (RELATED: Applause At Google’s All-Hands Meeting As Company Drops Heritage Foundation President)
“There may be a last few % that can’t be changed within our own codebase because of, for example, external dependencies, but we haven’t reached that point,” the FAQ reads. “If a team does not reach that point, those reasons should be documented, ideally with an explanation of how much time it would take and who ultimately decided it wouldn’t be done. For example, trumpssh could improve its explanation for why it wasn’t renamed by doing those things.”
One of the FAQs asks, “Are we banning ‘witchcraft’ and ‘wizardry’?” To which the answer is, “No.”
A spokesperson for Google declined to comment on the respectful code policy as of press time.