Like many software developers, I think it’s interesting to know at least something of the history of computer science. Programming languages, for one, offer up genuinely intriguing tales when the history of their making is told. But there are programming languages and there is the language with which we talk about programming—the jargon of our trade. Computer science jargon has origins that are storied, just like other aspects of the trade possess. For those who are interested in the history of the words we use, here is a brief look at one of them—algorithm.
Despite an algorithm’s propensity towards a precise set of steps, the word’s origins are fuzzy and the path to its current form twisted. The noun algorithm is what the Oxford English Dictionary (OED) connotes as one of many “psuedo-etymological perversions” that transformed the surname of a 9th century mathematician into a mainstay of modern computer science jargon. An Arabic mathematician named Abu Ja’far Mohammed Ben Musa wrote a text on Algebra which was subsequently translated from Arabic to Old French. The surname of the text’s author, al-Khowārazmī, was later translated to the word algorisme in Old French. Another form, algorism, has since been the basis for all sorts of mangling of a word that originally was just a name for the Arabic/Indian numeral system, better known as the Decimal system.
So given that, it makes perfect sense that the true origin of algorithm is actually Greek, right? The Greek language actually does enter our story here, though it’s not the true origin of the word. The Greek word for “number”, arithmos, and algorithm have been “learnedly confused” in the past to be the same word. The correct lineage though is that algorithm is just a form of algorism that has crept up in the late 19th century to mid 20th century.
From Arabic surname, to Old French, to being confused with a Greek word with a similar meaning, you can see that even the history of word can be interesting. You won’t get better at coding from reading this but you might better appreciate the river of change in which your computer science lexicon exists. If nothing else, now you’ve got some new knowledge to flaunt around at your next code review.