Naming and Programming Languages
When one continuously works with two topics that are so different, at one point the question arises whether there might be a connection between them. So we asked ourselves: what unusual characteristics come about when giving names to programming languages?
In our four-part special on giving names to programming languages, we take a look at the partly strange names that computer scientists and mathematicians have given their formal languages.
Creativity in Naming
Usually, programmers and computer scientists are not considered to be too creative. Hence, one could think that programming languages don't have any interesting names. However, regarding the naming of formal languages, the cliché does not match reality: The names of programming languages are in fact not at all as boring as one might have suspected.
Names for programming languages far exceed unimaginative letter combinations and are full of references to pop-culture, homages to famous role models and insider jokes. A fascinating variety of names awaits the connoisseur!
However, even in the jungle of names for programming languages, query languages and script languages, one can find some categories into which most names can be classified. Some languages do not follow any specific naming convention - here developers have absolute freedom of choice regarding the name of their baby.
Popular naming method: acronyms
Acronyms belong to the most popular naming methods. They are made-up words that are put together by taking the first letters or syllables of a combination of words describing the features of the programming language which is to be named.
Examples of programming languages that carry an acronym as their name are FORTRAN (Formula Translator) or LISP (List Processor). Relatives of these languages, however, do not always adhere to the acronym convention. So, a language inspired by FORTRAN is named "Fortress" to underline the increased focus on security.
Clever abbreviations: apronyms
Especially popular with the use of abbreviations is the subclass of apronyms, i.e. acronyms that form an already existing word. Examples of this are classics such as BASIC (Beginner's All-purpose Symbolic Instruction Code) or SEQUEL (Structured English Query Language), a predecessor of SQL.
Programming concept included in a name: recursive acronyms
When dealing with programming languages one can often find recursive acronyms, a naming technique seldom found in other areas. Recursion is a concept that one often comes across in information technology, in which the definition of a function contains the function itself. Using recursion mostly leads to elegant solutions for problems. So it is no wonder that recursive acronyms are a popular naming method for programming languages. The name of the query language SPARQL is, for example, a recursive acronym for SPARQL Protocol And RDF Query Language.
The language PHP is a nice example of a recursive acronym: PHP stands for "PHP: Hypertext Preprocessor". How did this name come to pass? At first, the name stood for "Personal Home Page", but as time went by, the use of PHP changed so the meaning of the initials had to be redefined.
This new interpretation of an acronym is named backronym, which is a portmanteau word of "back" and "acronym". The new meaning of PHP is recursive since a part of the name defines itself. A doubly clever name for a scripting language!
In the next part of our special on the naming of programming languages we are going to deal with a method that is especially popular in the IT sector: the use of single letters and other graphemes for naming products.
The programming language family C and its names
The most well-known representatives of this naming method would have to be the language C and its relatives. The name of the programming language logically results from the predecessor of C, which not surprisingly is called B. The successors and varieties of C are, however, much too numerous to simply continue counting down the alphabet, partly because quite a lot of letters are already taken by other languages.
Even though a not so well-known successor of C is simply known as D, the names of most C-dialects are a modified spelling of their forefather. To keep the numerous dialects under control, regular standardizations of the language are set and named by their respective dates:
So we have C89, C95, C99 and also the somewhat uncommonly named ISO-C. Objective-C on the other hand simply got its name because it incorporates the concept of object-orientation.
Even more C-descendants, even more names
A well-known relative of C carries the tongue-in-cheek name C++: In C-syntax it signifies the increment (in other words, the increase) of C. C-- on the other hand is the name of a language that merely contains a subset of the C-syntax. In C-syntax the name stands for the decrement, the decrease of C.
Likewise, the language C# (read: C-sharp) is widespread. It got its name from music: a sharp (or dlèse) indicates that a note is increased by a semitone. So, C# stands for an increased version of C. Other sources assume that the sharp symbol is to denote a double increment of C.
The alphabet has 25 more letters...
Not only the big family of the C-dialects and its successors reliy heavily on graphemes for their names. Most of the letters of our alphabet have been used to name a programming language. For example, A+, E, F#, J, K, M, Q, R, S, T, V, X, and Z have already been taken.
To which writing system do you suppose one will switch when all 26 graphemes of our alphabet are used up? Chinese would be a good candidate: it has more than ten thousand graphemes...
In the next part of our special on the naming of programming languages we will show that many computer scientists are actually fans who idolize their stars and the things they hold dear. We will look into the procedure of naming programming languages after famous people (and objects from the world).
Programming languages and mathematicians
A long list of famous persons inspired the naming of programming languages. Of course, most of them came from the fields of mathematics or computer science. However, other experts of different subjects also had their influence on the naming of formal languages.
The most well-known example of this practice of naming in the honor of famous personalities probably is the French scholar Blaise Pascal. A whole family of programming languages inherits his last name. This leads to peculiar names such as TurboPascal or ObjectPascal.
Further prominent people whose names were given to programming languages are Haskell Curry, Kurt Gödel, and Alan Turing. In these cases, however, the languages did not make it to such world fame as the Pascal dialects.
Namesake Lovelace: programmer or porn star?
A very remarkable person is the namesake a variety of the Pascal language: Ada Lovelace. The British countess, daughter of the famous poet Lord Byron, had an extensive mathematical education. To this day, she is still remembered, thanks to her written commentaries on the first (theoretical) computer in the world. Her thoughts on the so-called difference engine contained so much expertise that she is considered the first programmer in the world. No wonder she was honored by having a language named after her.
The background of another lady named Lovelace, who also lent her name to a programming language, is less glorious: the language "Linda" has the dubious honor of being an homage to the porn actress Linda Lovelace. Which Lovelace do you prefer?
Even more indecent names...
A likewise indecent name was given to the esoteric programming language "brainfuck". It is also written as brainf*ck, brainf**k, or BF. "Nomen est omen" is true in this case because the language is not particularly easy to handle. It was developed to allow for implementation with a minimal compiler. The reason for the peculiar name? BF intends to challenge the programmer and drive him mad with its syntax.
Much more harmless than the past examples are the names of languages that refer to simple objects and concepts from our world: trees (Oak, Maple, Cedar), precious stones (Ruby, Perl) or emotions (Bliss, Joy, Hope) are categories that are happily used for the naming of formal languages. With these languages, images of nature and open landscapes come to mind, while the programmer is developing in a dusty cellar room...
A name for a programming language? Everything's allowed!
Anything is possible when naming to a formal language: You do not even have to refrain from using pop culture references. A famous example would be the well-known script language Python. It refers to the British comedic group Monthy Python.
A programming language that goes by the name Nemerle refers to an archimage from the Earthsea-series of books by Ursula K. LeGuin. The magician's name is spelled with -mm- in the original. However, to better be able to distinguish magician and language, the spelling was changed for the programming language.
Java is not only an island...
One of the most widely used languages at the moment is Java. Contrary to popular belief, it was not named after the Indonesian island. In fact, it got its name from a coffee brand. Allegedly, Java Coffee was being consumed regularly by the developers of the programming language.
Java should not be confused with JavaScript. The latter is a scripting language that used to be called LiveScript. Its name was changed solely for marketing purposes. Apart from the name, it does not have much in common with Java.
How would the Klingons program?
Last but not least, around the turn of the millennium, the strange language of var'a'q was being developed: It was a thought experiment that explored what a programming language of the fictional race of the Klingons from Star Trek would look like. To this end, var'a'q was developed.
However, its name has no meaning in Klingon, although the fictional language would be sophisticated enough to make up a name. The inventors say one should assume that var'a'q was named after a Klingon mathematician - which would be in tradition with names of languages such as Pascal, Turing or Ada.
Which is your favorite name for a programming language? Do you find an interesting story or concept behind the name more important (like brainf**k), or should naming be purely logical (like with C and its relatives)?
Picture credits::
Python-Logo: License: GNU General Public License version 2, Source: Wikipedia
Blaise Pascal: License: Public Domain (Copyright expired), Source: Wikipedia
Ada Lovelace: License: Public Domain, Urheber: www.fathom.com, Source: Wikipedia
Ruby-Logo: License: Creative Commons Attribution-Share Alike 2.5 Generic, Author: Yukihiro Matsumoto, Ruby Visual Identity Team, Source: Wikipedia
C cover: License: Public Domain, Source: Wikipedia
C#: License: Public Domain, Author: Allmightyduck, Source: Wikipedia
Fortran: License: Public Domain, Author: Muhandis, Source: Wikipedia
PHP: License: Public Domain, Author: Mysid, Source: Wikipedia
Ada Lovelace: License: Public Domain, Photographer: www.fathom.com, Source: Wikipedia