2009-01-21, , , , , Comments

How the Python became

Guido van Rossum had a problem: what to call his new language? Computer language names often tip a hat to their predecessors, as Ruby does to Perl, for example. In this case the immediate predecessor, ABC, had itself changed from B because it got mistaken for B, and the suggestion ABC “made programming easy as ABC” failed to convince Guido. So he dropped the alphabetic sequencing. Rather than tip a hat he picked a name from one.

I picked the first thing that came to mind, which happened to be Monty Python’s Flying Circus, one of my favorite comedy troupes. The reference felt suitably irreverent for what was essentially a “skunkworks project”. The word “Python” was also catchy, a bit edgy, and at the same time, it fit in the tradition of naming languages after famous people, like Pascal, Ada, and Eiffel.


yacc caml awk

Although Guido van Rossum held out for some time against Python being associated with snakes, he eventually capitulated. Blame the animal cover lovers at O’Reilly! As it happens, I rate the reptile as highly as the comedians. I also like languages with animal names. Perhaps Yacc, Awk and Caml also started life as skunkworks?

Naming words

Apollo slaying Python

Python is a noun — what we called a “naming word” at junior school. Python is also a proper noun: in Greek Mythology, she was the earth-dragon of Delphi. It’s hardly surprising when language creators opt for nouns, often proper, frequently female: Ada, Miranda, Ruby, for example. Also, Java, Pascal, Haskell — oh, yes, and Delphi.

Single characters

We’ve already mentioned B, which I guess is a (homophone of a) girl’s name. It’s also a well rounded character found near the front of the alphabet. Alphabetically, B comes before C, and the language B features amongst C’s predecessors. When Bjarne Stroustrup built object-oriented features on top of C, his new language became known as “new C” and “C with classes”. The former was disrespectful to C, which risked becoming “old C”, and the latter failed to excite. The final name, C++, was an inspired choice, even if some have pointed out ++C would be more correct.

C# squeezes more juice from the pun. Pronounced “See Sharp!”, the name has a commanding ring to it, and if you look within the hash symbol, #, you can make out redoubled ++ signs. Shouldn’t it be written C♯ though, or should we really pronounce it “See Hash”?

Both the + and the # characters have special semantics within URLs. How many C++ and C# blog posts end up being tagged “C”, I wonder? For similar reasons I guess it’s still impractical to name a language λ or μ, unless you’re prepared to accept that name being spelled lambda or mu, that is.

D really does look like a great language in the C and C++ tradition, but its name lacks imagination. Enough alphabet already!

Doing words

B and C are both strong, active verbs. Nothing beats being and seeing. Writers like verbs. Verbs make things happen, just like programming languages. Maybe Lisp and Scheme sound a bit geeky, sleazy even, but I like them. They’re great names. Ever wonder how Bash bludgeoned its way to shell domination? Squeak is a great play on Smalltalk. Knitters perl.


Lance Armstrong, champion cyclist

Adjectives and adverbs are poorly represented. Groovy comes to mind, but not a lot else. Plenty of language names are (or once were) acronyms and abbreviations: as names, I prefer the ones you can read over the mouthfuls of consonants. On this basis, Fortran pips PL/I, and Sequel beats Ess Queue El.

We’ve listed some great computer languages with great names. Can a good name shape a language’s success? Well, certainly it can’t hurt. Names matter. Lance Armstrong is surely the name of a champion, the kind of guy who can beat testicular cancer and win the world’s toughest endurance event 7 times in a row. Check out his flash heavy website. Whereas the more gently named Tim Henman never quite fulfilled his tennis potential, and I can’t even connect to

Conversely, can a poor name stand in the way of success? ABC has become (part of Python’s) history. I think it’s fair to say that, at this point, the weakly-named D has gained respect rather than presence. On the other hand, JavaScript is a poor name too, and ECMAScript is worse, but it’s a fine language which can claim to be more widely deployed than any other.