chocolate Next post: Ten facts about the word 'chocolate'

Jane or Jones  OxfordWords blog - Google Chrome_2012-09-10_13-57-55 Previous Post: Jane or Jones?

Java, C, and Python: the etymology of programming languages

As a software developer for most of my adult life, I have a CV that is covered in acronyms and initialisms representing technologies I have mastered. Well, to be more honest, some technologies I have mastered, others I have used a lot, and a few I’ve had brief exposure to but which look good on my CV. Mine is a typical collection from a veteran of the dotcom era, a mishmash of Web technologies representing most of my industry’s fads from the last couple of decades.

But what do all these terms mean? Visual BASIC, HTML, XML, PHP? Or the intriguingly named Java, C, or Python? Let me shed a little light on the entertaining and sometimes downright weird world of technology industry etymologies.

These names are brought to you by the letters A, B, C, D. . .

The names divide themselves into two main groups. On one side are those derived from initialisms and acronyms such as the once ubiquitous BASIC (Beginners All-purpose Symbolic Instruction Code), while on the other side are those derived from their originators’ influences or imagination such as Python (named after the Monty Python comedians, the idea being that Python programming should be a fun occupation).

Of the former category the simplest are the single letter programming languages, most famously the hugely influential C language (so named because it was derived from an earlier language called B) whose syntax underpins so many more recent languages and which is probably somewhere behind most of the software we take for granted in the Internet age. There seem to be very few letters of the alphabet that do not form the name of a programming language. A current favourite of mine is a language for manipulating and displaying statistical data, R, so named because it is derived from a language called S. Computer science: it’s a logical discipline.

Sometimes programming initialisms start life in an informal manner and later try to rebrand themselves as something with a bit more gravitas. The massively popular PHP web scripting language (which uses a C-derived syntax) for example was originally derived from Personal Home Page but later rebranded as Practical Hypertext Preprocessor, presumably to make it sound a bit more professional.

Most coding initialisms though are fairly straightforward descriptions of the function they encapsulate. Where would we be without HTML (HyperText Markup Language) for instance, or XML (eXtensible Markup Language), the underpinning of all our dictionaries?

The interesting and the influential

The more interesting etymologies in this field are probably those derived from their originators’ imagination or influences. We’ve mentioned Python, but how about Ada (named for Ada, Countess Lovelace, collaborator with Charles Babbage and widely recognized as the first programmer), or Pascal (named after Blaise Pascal, the famous French mathematician)? A more famous computing word derived from a name is Linux, named after its creator, Linus Torvalds. For true pedants the word Linux refers only to the kernel of the operating system; the full distribution is properly termed GNU/Linux, after the GNU free software project. (GNU is an interesting case in itself, as a recursive acronym: ‘GNU’s Not UNIX’)

A favourite etymology of mine is the language behind the Oxford Dictionaries word game features, Javascript. At the time in the mid-1990s when Netscape Corporation needed a name for their in-browser scripting language, the coolest thing on the web was Sun Microsystems’ Java language, itself a name alluding to coffee drinking.  So although there was no link between the two languages, they called their language Javascript in the hope that some of Java’s coolness would rub off on their product.

It would be difficult to enumerate all the strange and beautiful etymologies from the technology industry in a just a single blog post. But let me leave you with a language created just for fun, a so-called esoteric language. LOLCODE is a real language that is capable of producing functional programs, but I doubt many programmers have used it commercially. Why? It uses a syntax derived from the LOLCats Internet meme; programs start with HAI, end with KTHXBYE, and variables are defined by typing CAN I HAZ.

So if you’ve never considered the world of computing to be a place in which the fun or the unexpected can find a home, then I hope this piece has made you think again. And if my CV ever lands on your desk, I hope you’ll forget the bit about brief exposure to languages that look good in print.


Image: Alfred Edward Chalon [Public domain], via Wikimedia Commons