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.
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?
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.
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!
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.
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 www.timhenman.org.
Names are important. Choosing a good name for something is very difficult, and I know from past experience that you don’t usually get a second go. The humorous code name you chose almost certainly won’t get changed later, and you’ll be talking about “using the Linguini server to add the zubins” for ever. Yes, that’s a real example.
One of my favourite cartoons, The Secret Show, is a comedy spy thriller. The agency head takes security very seriously, and so his name is changed daily. He’s constantly undermined by being assigned ridiculous names - Mimzy Woowoo, Pimlico Buttonfluff, Princess Fairycakes, and so on. In one episode his new name is Rock Justice, and his chest swells with pride. Sadly though, it was just a dream.
I’m sure I’m not alone in pronouncing things incorrectly due to many of the things I learn being done so by reading.
C# was one example because for quite a while I pronounced it “see hash” in my head until I descovered it should be “see sharp”. I still occasionally slip out with kay-sh instead of cah-sh for cache.
I didn’t know that # and ♯ were different symbols but now I do I feel less stupid.
(Wikipedia does mention that the language is actually C♯ but the # character is merely used to represent the ♯ for simplicity.)
You’re definitely not alone, Matt. One thing which bugs me is when a name is spelled in a way which makes guessing its pronunciation hard.
The Cuil search engine, for example, which we’re meant to pronounce “cool”.
Much as I like lighttpd, how are you supposed to say it? Lighty, apparently.
And it’s “Val-grinned”, not “Val-grind”. Don’t feed bad, everyone gets it wrong at first.