Alternatives for Charged Terminology in the Computing Profession
Our words have direct and indirect impacts on the people who hear or read them. As part of ACM’s efforts to combat exclusion in the computing profession, the Diversity and Inclusion Council has launched an effort to replace offensive or exclusionary terminology in the computing field. Our activities here are alongside organizations such as IBM, Apple, Github, Python, Drupal, Twitter, Android, OpenZFS, and Pearson plc. While changing terminology will not of itself repair social injustices or increase diversity in computing, we believe it can be an important step for education and change.
We suggest that the following computing terms be avoided in professional writing and presentations, since they are not strictly needed and are considered offensive or exclusionary by some groups. To encourage this approach, we offer alternative language that in some cases would actually be clearer than the problematic terms. We encourage you to select whatever wording is clearest in your specific situation.
- abort, terminate child process: terms used to describe a process or job that stopped abruptly, either on its own or by user action; also used to describe the action of stopping a subsidiary process, e.g. an operating system process. These terms use generally invoke violent images that some writers may wish to avoid imposing on their readers. We recommend adopting an alternative appropriate to the context; some options include cancel, force quit, stop, end, or finalize.
- average user: when used to describe less experience users of technology this term may come across as pejorative. We recommend an option such as common, standard, or typical user.
- black/white box: terms used to describe algorithms or processes that are decipherable by humans or not. In addition to potentially being perceived as racially charged in today's context, color-based terms are culturally specific, so there is little value in associating permissions with them. We suggest using a self-explanatory term, such as opaque/clear box.
- blackhat/whitehat: terms used to describe the motivations underlying an agent's actions. This term is arbitrary and has no explanatory value, as well as being racially charged and culturally specific. We recommend adopting terms that explicitly define the agent's role, such as ethical attacker/unethical attacker, hostile force/friendly force, etc.
- blacklist/whitelist: terms used to describe whether an agent has access to a resource. In addition to being racially charged, color-based terms are culturally specific, so there is little value in associating permissions with them. We suggest using a self-explanatory term, such as blocklist/allowlist or unapprovedlist/approvedlist.
- blind and double blind: terms used to describe the anonymity of authors and reviewers, also used in describing experiments. These terms are offensive to people who are blind or have other visual impairments. Someone who is blind is not anonymous, yet, these terms are used to suggest anonymity. We recommend terms that are more explanatory, for example anonymous and dual anonymous.
- blind review: term used in publication review processes where the reviewers are unaware of the identity of the authors. This usage equates blindness with ignorance, as it seeks to express the idea that the reviewer and author do not know who each other are. We suggest anonymous review.
- byzantine: used to describe a condition of a (distributed) computer system where components may fail and there is imperfect information on whether a component has failed. The term reflects a prejudice against and erasure of cultures associated with and drawing from Byzantine civilization and endorses an exclusionary and denigrating stereotype against people of such cultural background. Alternatives include interactive consistency failure and source incongruency.
- dark pattern: Used to describe how user interfaces can manipulate/deceive users to take actions that they normally would not take. Dark pattern makes a connection between "dark" = bad/deceptive. Alternatives include deceptive design, manipulative design, or deceptive/manipulative pattern, which are all more descriptive.
- daughter board: a PCB off of the main board, traditionally subcomponent of the main with socket connectors for circuitry. Maybe not in mass produced products, in prototyping. It is called a daughter board because its smaller ("child") than the main ("parent") board and it has "female" connectors. Alternatives include auxiliary / ancillary board or secondary board.
- dummy head: a common linked list technique that typically eliminates the need to create special edge condition logic in order to operate on the head of a linked list. Historically, dumb was used as a reference to a member of the deaf community. It also has negative connotations as a derogatory term for a person's intellect. Alternatives include temp head, temporary head, and mock head.
- female/male connectors: terms used for describing physical connectors in hardware systems. The terms are sexist and normative, and good alternatives such as socket and plug exist and are already common.
- gender bender: refers to adapters that convert plug connectors into sockets and vice versa. We suggest plug-socket adapter.
- gendered pronouns (she/her/hers and he/him/his): historically, “he” was used when referring to an unspecified individual; more recently, “he/she” and “s/he” have come into common use. We suggest that it is better to simply avoid mentioning gender, by using “they” as the neutral singular pronoun.
- master/slave: terms used in technology to describe the relationship between two processes or components. In addition to being a racially charged term, the terms do not necessarily reflect how the two interact. We recommend using something more appropriate to the context, such as primary/secondary, primary/replica, main/secondary, leader/follower, parent/child, coordinator/worker, or host/client.
- orphaned object: When an object in a program is no longer accessible: a = new Widget(A), b = new Widget(B), b = a, Now Widget(B) is a n orphaned object. We recommend using terms such as unreferenced object, de-referenced object, or unlinked object.
- quantum supremacy: in computing this term is used to describe the computational advantage a quantum computer has on classical computer, or one quantum computer over another. The term has long been associated with crimes against humanity and genocide. We suggest using a term that is less politically charged, such as advantage.
- sanity check / test: quick run-through of a program's functionality to see if satisfies the intended purpose, usually done before more exhaustive testing takes place. Implies that there is something wrong with people who have mental health issues. Alternatives include spot check, quick check, confidence check, coherence check, well-formedness check, litmus test, or unit test.
The Diversity and Inclusion Council will expand this list in the future as appropriate, evaluating other terms as they are submitted. We invite you to submit your suggestions for consideration to https://community.acm.org/words.