After three decades, Coq, a theorem-proving programming language developed by researchers in France, is being fitted for a new name because it has become impossible to ignore that it sounds like bawdy English slang.
Once referred to as CoC, short for Calculus of Constructions, the programming language became Coq when work on version 5 began in 1989.
The name – according to software engineer Théo Zimmermann’s initial entry to the Coq GitHub wiki on April 6 – is a reference to the French word for “rooster,” to the Calculus of Constructions, and to the contributions of Thierry Coquand, one of the creators of the language.
Coq also happens to sound like “cock,” which while it means both “a male rooster” and “to tilt,” can be used informally to refer to the male anatomy. And for some people, that deters community participation.
“This similarity has already led to some women turning away from Coq and others getting harassed when they said they were working on Coq,” the project wiki, last updated on Friday, explains. “It also makes some English conversations about Coq with lay persons simply more difficult.”
Tech terminology changes have roiled online communities for the past few years as efforts to make computer science and other fields more welcoming to a more diverse set of people have led to the deprecation and removal of terms that carry cultural baggage like “master,” “slave,” “blacklist,” and “whitelist.”
This has been particularly evident in volunteer-based open source communities, where the need to formalize governance through codes of conduct has met with frequent resistance among people who resent the imposition of rules on a sphere where they previously acted without constraint.
Ribald usage of Coq isn’t exactly new. Members of the community have been aware of the pun potential for years. But with so many projects trying to make themselves more welcoming to new contributors, the programming language has finally taken seriously.
Members of the Coq community have undertaken the thankless job of evaluating the dozens of suggested new names and, after more than two months of discussion and wiki updates, they’ve already rejected many for obvious failings.
For example, “Gallus,” the Latin word for “rooster” has been discarded because, again, it sounds like a word for a part of the male anatomy.
Why not “Cocon,” the French word for “cocoon”? Well, “con” isn’t quite polite in French as it’s slang for a part of the female anatomy. The project wiki notes that this is likely to lead to more jokes, which is the problem that prompted the whole renaming effort.
How about “Bando,” Portuguese for a group of roosters? Er, no. Another male anatomy reference in French slang.
But there are some more promising proposals. One possible solution involves extending “Coq” to “Coquand,” since the language’s name is already derived at least in part from one of its main creators. There’s precedent for homage-based branding with languages like Ada, Pascal, and Haskell. It is unclear how Coq’s other contributors might feel about this.
Naming is hard. No pun intended. ®