Unlike other U.S. businesses, the tech industry has a “master” and “slave” problem.
That’s what many tech companies call software components — “master” and “slave” is written into the computer code — wherein one process controls another. Not “controller” and “follower,” say, or “manager” and “worker.” Should an African American software developer be required to write code wherein a master process commands slaves?
Concern about the tech industry’s use of master/slave terminology has been simmering for years. In 2003, Los Angeles County asked vendors to stop using it. Some companies made changes; others did not. So why shouldn’t the focus stay on the companies that refuse?
Because of software integration. Today no single company makes every software component. Companies work together. No matter how much one participant in a software project might wish to avoid using the master/slave construction, working with another participant often means resorting to the common coding language. That means there is no real distinction between “non-slave code” and “slave code.”
Consider the popular open-source software project Kubernetes, which allows applications to run easily and securely in the cloud. Kubernetes gets it: Instead of referring to “slaves,” Kubernetes uses “replicas” and “workers” and even “minions.” But its code repository still contains more than 200 lines that use “slave.” Because its code must talk to others, even Kubernetes can’t completely avoid the terminology.
Python, the de facto language for artificial intelligence and machine learning, moved to eliminate the language in 2018. Not without controversy. Open-source software groups often make decisions quasi-democratically. In late 2018, the founder of Python had to intervene because some developers supported continuing to use master/slave terminology. Others wanted to jettison “slave” but debated the acceptability of “master.”
By itself, “master” has many connotations. “Master,” from the Latin “magister,” can mean someone skilled in a certain field, like a master plumber. But the word is also of course associated with slavery. (It was for this reason that Yale University changed the title of the administrators of its residential colleges from “master” to “head of college” in 2016.) Given the various meanings of “master,” some software developers still employ the word, and it is used with Kubernetes as well.
For that reason, the tech industry needs to act collectively to abandon master/slave terminology. If enough major players agree to make the move, outliers would need to follow suit or risk limiting their products’ compatibility with the industry standard.
The first step would be for the industry to reach a widespread consensus to excise master/slave descriptions from the entire body of source code and substitute agreed-upon words to take their place. Yes, some code might break: Sometimes you have to move fast and break things. Mark Zuckerberg made that phrase famous — he could give a tremendous boost to ridding the tech industry of master/slave terminology if he publicly announced that Facebook was replacing master/slave in its public and private source code.
The tech industry should also commit to barring master/slave terminology in all future software — and hardware. The outdated convention is not just a software problem. Hard drives, depending on how they are used, are often categorized into masters and slaves. The large data storage company Seagate offers online help on how to “troubleshoot master/slave problems.” If they haven’t already done it, U.S. companies should start such troubleshooting now.
Many tech companies publicize their interest in hiring from underrepresented groups, but what signal do they send by using “master” and “slave” in their source code? The companies should redouble efforts to recruit black employees, set up tech training centers and offer free coding programs in black communities — and get rid of repellent terminology.
Watch a recent Opinions video: