How Programming Languages Got Their Names
kylehigginson.medium.comThis list is disappointingly short.
Here's a few more of the top of my head, feel free to expand the list! :
C: a successor to B, itself derived from BCPL.
C++: increments over C.
D: a successor to C.
LISP: LISt Processor.
FORTRAN: FORmula TRANslator.
ALGOL: ALGorithmic Language.
Prolog: PROgrammation LOGique (logic programming in French).
PHP: initially PHP/FI for "Personal Home Page Form Interpreter", later rebranded as "PHP: Hypertext Preprocessor".
JavaScript: named this way to be associated with the popularity of Java.
Ada: in honor of Ada Lovelace.
OCaml: initially Objective Caml, because it added OOP support among other things.
Caml: Categorical Abstract Machine Language.
ML (as in SML): Meta Language.
SQL: Structured Query Language.
There is also C#, where # represents a duplication of "++", on top of each other. Technically, the # is not the sign for the musical sharp key (♯), but "C sharp" sounds better than "C hash", "C pound" or "C octothorp". :)
Edit: On an unrelated note, TIL that the sign used on telephone keys is also not #, but ⌗ -- a.k.a. the "Viewdata square" [0].
[0] https://en.wikipedia.org/wiki/Viewdata#Keypad_symbols:_the_s...
I assumed they just meant to comment out everything that came after C.
Then it would be called C// or C/*
And then there's F#, which _does_ play on musical notation. But I suppose F is also for "functional".
The F there is for System-F! According to Don Syme, although I don’t personally know what System-F is. https://www.theregister.com/2021/11/12/f_6_were_making_f/
Don Syme is a pretty cool guy from what I’ve seen online too. He enjoyed supporting and attending Migrateful (UK charity where refugees/asylum seekers teach cooking classes) which I’m appreciative of in particular.
System F is a polymorphic lambda calculus, it's more theoretical than practical (typing must be explicit or type inference may be impossible) but a restriction of its typing scheme is one you may have heard of, and the Hindley-Milner type inference algorithm works for it.
> Edit: On an unrelated note, TIL that the sign used on telephone keys is also not #, but ⌗ -- a.k.a. the "Viewdata square" [0].
https://en.wikipedia.org/wiki/Telephone_keypad#Layout
"The key labeled was officially named the "star" key. The key labeled # is officially called the "number sign" key, but other names such as "pound", "hash", "hex", "octothorpe", "gate", "lattice", and "square", are common, depending on national or personal preference. The Greek symbols alpha and omega had been planned originally."
I'm now imagining an alternate world where Twitter/X introduced us to alphatags or omegatags.
Twitter borrowed the # convention from IRC channel names, not telephone keypads.
# may not be the same glyph as musical sharp, but the language name was indeed intended to have a musical interpretation, according to the wikipedia.
Lua: Portuguese for "moon", it was developed in Brazil as a successor to SOL (Simple Object Language) which also means "sun" in Portuguese.
Didn't know that, thanks! Makes me like it more, for some reason.
Wolfram: Named after Stephen Wolfram, by Stephen Wolfram
Does anyone else think it's a bit too much to name something after yourself? Even in math and physics, scientists often don't name it after themselves—their colleagues do it to give credit where it's due (e.g., Colomb's law, Planck's constant, etc.)
Wolfram's ego is the size of at least two dozen Carl Sagan egos.
That reminds me of https://en.wikiquote.org/wiki/Talk:Edsger_W._Dijkstra#nano-D...
I suppose it's quite widely known where "JavaScript" comes from, but seeing it next to all the others and how they were named on the list, it seems like the... saddest etymology of them all.
Fitting, in my opinion.
According to Wikipedia:
> The original name SEQUEL, which is widely regarded as a pun on QUEL, the query language of Ingres, was later changed to SQL (dropping the vowels) because "SEQUEL" was a trademark of the UK-based Hawker Siddeley Dynamics Engineering Limited company. The label SQL later became the acronym for Structured Query Language.
I heard that a long time ago as well. It's a successor to QUEL, so obviously the successor to quel is sequel.
> regarded as a pun on QUEL, the query language of Ingres
Indeed Postgres, too, is a pun on Ingres itself (post-Ingres).
Scheme: Gerald J. Sussman and Guy L. Steele were working on a followup to Conniver, which they called Schemer, but but the machine they were working with only allowed 6-character names.
Perl: Pathologically Eclectic Rubbish Lister
(it's actually a reference to the Parable of the Pearl, but that name clashed with PEARL, a real-time programming language from the 70s developed in Germany)
Practical Extraction and Reporting Language
> D: a successor to C
As expressed in Haskell: 'D' == succ 'C'
As another example: "IBM" == map succ "HAL"
"WNT" == map succ "VMS"
The Programming Language With No Pronouncable Acronym. Abreviated as INTERCAL, for obvious reasons.
PLWNPA seems like it could be pronounced "ploompa" or something.
This is also the reason behind the name XKCD
I'm obliged to point out that C has the same value as C++.
There is in fact a higher valued ++C language: https://esolangs.org/wiki/%2B%2BC
Fitting with the whole point of C++ where the original design philosophy was to provide language features that you wouldn't have to pay for (in performance cost) if you didn't use them.
It makes C larger, but returns the same value.
Beginners All-purpose Symbolic Instruction Code
Clojure: closure [0] + Java
[0]: To finally find closure with the old Lisps /jk Closure in Lisp has as different meaning. It's arguments that are waiting for their lambda.
I thought that name for Caml was a backronym. I thought it was for "Cambridge ML".
That would be odd, given that it was developed in France.
Yeah that would be pretty odd, I suppose I was mistaken then.
I think that list is limited to languages whose name comes from real life entities, and optionally with an interesting story behind. Names like "SQL" or "C" are more like pure knowledge rather nice good gossip.
D was originally the 'Digital Mars Compiler'.
Everyone around Walter Bright kept calling it D because it was a modern language with C-like syntax. Thus, D the next letter in the alphabet and eventually Walter gave in. :)
There also is C--. C-- is a reduced kind of C to make implementation of compilers and interpreters for it easier. It is overall meant as a simple generation target for compilers.
Then there's the famous list of joke languages which includes C-, named after the grade its creator got in his compilers class. :-)
> C++: increments over C.
Or, as UNIX haters put it: C++ is to C what lung cancer is to lung.
Common Business Oriented Language = COBOL
Beginners All Purpose Symbolic Instructional Code = BASIC
Swift named after the Swift bird?
no, it's named after Taylor.
Pascal: named after https://en.wikipedia.org/wiki/Blaise_Pascal
Oberon: named after https://en.wikipedia.org/wiki/Oberon_(moon)
Ada: named after https://en.wikipedia.org/wiki/Ada_Lovelace
Eiffel: named after https://en.wikipedia.org/wiki/Gustave_Eiffel
Sather: named afer https://en.wikipedia.org/wiki/Sather_Tower
Nim: named after https://en.wikipedia.org/wiki/Nimrod
Erlang (Ericsson language): named after https://en.wikipedia.org/wiki/Ericsson
Erlang, also: https://en.wikipedia.org/wiki/Agner_Krarup_Erlang
Linda has a particularly unsavory origin story (hint: It has a connection to Ada): https://en.wikipedia.org/wiki/Linda_(coordination_language)
That probably wouldn't fly anymore in today's CS research.
As for Oberon, the moon may have played a role, but according to stories recently told at Niklaus Wirth's memorial service, "A Midsummer Night's Dream" and the mythological character in general https://en.wikipedia.org/wiki/Oberon may have had more to do with it, as Wirth was said to have some flair for the theatrical arts in his private life.
> "A Midsummer Night's Dream" and the mythological character ... may have had more to do with it"
Which contradicts with what he wrote in his "Project Oberon" book: "Although the search for an appropriate name for a project is usually a minor problem and often left to chance and whim of the designers, this may be the place to recount how Oberon entered the picture in our case. It happened that around the time of the beginning of our effort, the space probe Voyager made headlines with a series of spectacular pictures taken of the planet Uranus and of its moons, the largest of which is named Oberon. Since its launch I had considered the Voyager project as a singularly well-planned and successful endeavor, and as a small tribute to it I picked the name of its latest object of investigation." Also the books "Programming in Oberon" (where Wirth was co-author) and "The Oberon System" say the same. If he really did have "some flair" for the arts (besides "the art of simplicity"), he hid it very well.
OK, that would be a pretty conclusive evidence that the moon was the primary consideration. However, it's entirely possible that the name, when it was in the news, caught his attention because of the mythological background. Cf "Lilith", the first workstation he built. "Ceres" again both has astronomical and mythological connotations — I'm not sure whether Voyager encountered Ceres, though.
Wirth's love of the theater (and costume parties) was attested to by his family at the memorial service. It was not something that his students knew about him (maybe grad students did).
It wouldn't fly, but I bet people would just obscure their true intent with a plausible story - "I wanted to make a language more beautiful than Ada, so I called it 'Linda', which means beautiful in Spanish"
I would imagine something like this happened for Linda itself, since I assume the author didn’t namedrop a porn actress in their PhD dissertation.
Your made-up story even wouldn't fly either nowadays.
> Sather: named afer https://en.wikipedia.org/wiki/Sather_Tower
And also because it is a derivative of Eiffel — which I think had been named more after the tower than the man, with the purpose of creating an analogy from software engineering to constructional engineering.
> Erlang (Ericsson language): named after https://en.wikipedia.org/wiki/Ericsson
Officially it is after the Danish mathematician Agner Krarup Erlang but we all know that is not the whole story...
Other languages named after mathematicians (in addition to others already mentioned):
Euclid: https://en.wikipedia.org/wiki/Euclid_(programming_language)
Occam: https://en.wikipedia.org/wiki/Occam_(programming_language)
Gödel: https://en.wikipedia.org/wiki/G%C3%B6del_(programming_langua...
To my knowledge, Oberon was named after Oberon, the king of elfs.
The information provided in the literature on Oberon contradicts this claim. Furthermore, the moon is depicted on the covers of some books about it.
Worth mentioning here that some moons of Uranus are named after Shakespeare characters - the moon is named after Shakespeare's depiction of Oberon in A Midsummer Night's Dream.
For those of us who like the braces:
Lisp comes from List Processor.
Scheme was first called Schemer, which itself evolved out of the Planner language developed by Carl Hewitt at MIT. Schemer was shortened to Scheme to fit the ITS filesystem's six character filename limit (!) on the PDP-10.
Racket is a kind of Scheme. (I like this one)
Guile comes from Guy L. Steele, one of the initial Scheme developers. The other being Gerald Jay Sussman.
Kawa Scheme: From the Polish word for coffee.
Gambit: Another kind of Scheme.
SBCL: Steel Bank Common Lisp, forked from CMU Common Lisp, CMU being the university named after the founder of a steel factory and a pair of bankers.
Maclisp: Created for MIT's project MAC (the Project on Mathematics and Computation).
Franz Lisp: A pun on the composer Franz Liszt.
Haskell Curry has the honor of having two programming languages named after him: Haskell and Curry [1].
[1] https://en.wikipedia.org/wiki/Curry_(programming_language)
There's one for his middle-name too [1].
[1] https://www.computerhope.com/jargon/b/brooks.htm
And while we're at it, another anecdote about naming the language [2]:
> Hudak and Wise were asked to write to Curry’s widow, Virginia Curry, to ask if she would mind our naming the language after her husband. Hudak later visited Mrs. Curry at her home and listened to stories about people who had stayed there (such as Church and Kleene). Mrs. Curry came to his talk (which was about Haskell, of course) at Penn State, and although she didn’t understand a word of what he was saying, she was very gracious. Her parting remark was “You know, Haskell actually never liked the name Haskell.”
It is weird that Haskell (programming language) is named after Curry's first name though. That isn't generally how you name things (other than people). About the only other thing I think of that works that way is America, named after the explorer Amerigo Vespucci. "Vespuccia" would have been a more logical choice.
There was the JOHNNIAC named after John von Neumann. Several things are named after Elvis Presley, e.g. https://en.wikipedia.org/wiki/Elvis_operator
Not an eponym per se, but Guy Fawkes comes to mind.
Edit (no I'm not reading through the Wikipedia list of eponyms why would you think that):
Gerrit for Gerrit Rietveld (though a fork of Rietveld for svn)
Linux for Linus Torvalds, Debian for two people, TOML (all self-named)
Aldus corp for Aldus Manutius
America was very likely not named after Amerigo Vespucci - as you stated correctly, naming something after someone's first name is unlikely. It seems very plausible that it is named after the Amerrique mountains.
> Amerrique mountains
Never heard about it
Well, you're one of today's 10'000 then :)
I guess "currying" is also named after him.
I learned of Haskell (the language) and currying (the technique) before learning of Haskell Curry (the person). So whenever I see the name "Haskell Curry", it looks like a joke name at first glance. Like "wow, someone's parents were _really into_ functional programming", or maybe, he's the counterpart to Janet Javascript and Python Pete?
R: pirates
Actually, there was an earlier language named S, for "statistics". R was intended as a successor to S - I suppose T would have been the natural name, then, or S++ - but also the inventors had first names starting with R.
I've heard people speculate it has something to do with correlation coefficients, which it doesn't, but that r comes from "reversion" or "regression": https://stats.stackexchange.com/questions/368224/why-is-r-us...
In their paper (1), the authors state that R is to relate to S, but also to, in their words, "part to celebrate our own efforts". (Note their first names!). It's a great paper, by the way.
1. Ihaka, Ross, and Robert Gentleman. “R: A Language for Data Analysis and Graphics.” Journal of Computational & Graphical Statistics 5, no. 3 (1996): 299–314.
I haven’t actually read it! I had assumed that they named it R and just left other people to notice that their names started with R, but no such false modesty for them.
"R" wound up being a terrible name in terms of Google-ability and such, although it can be excused given that it was created in 1993. Csharp and Fsharp have no such excuse, though.
Puff piece article. I expected something a lot more comprehensive.
No. Ruby is called Ruby because it is the better Perl.
I think both you and the article are correct. Here's a bit more context [1], it seems both Ruby and Coral were considered in part due to their connection with Perl, and in the end Ruby won because it "sounds better" and also because it's Matz's birthstone:
1: https://web.archive.org/web/20110717205734/http://blade.naga...
Edit: this also provides a clue for Perl's naming, it's "related to a shell" (I don't know if this is accurate)
"Perl is the gem found in the shell"
Joke for Pokémon fans: Surely it should be called Platinum then?
[Explaining / Ruining the joke: Pokémon games come in paired editions - red/blue, gold/silver, sword/shield. For the fourth generation of games the paired editions are Diamond/Pearl.
In many generations an 'upper' edition is later released - Yellow, Crystal, Emerald - this is a slightly enhanced remake, often with a tweaked story. For the fourth generation the upper edition was called Platinum.]
Smalltalk was named such as Alan Kay (https://wiki.squeak.org/squeak/50)
> had mentioned to someone that the "prose" of then current programming languages was lower than a cocktail party conversation, and that great progress would have been made if we could even get to the level of making "smalltalk".
Awk: Aho, Weinberger & Kernighan [0]
Tcl: (an embeddable) Tool Command Language [1]
Forth: FOURTH as in "4th generation software", "successor to 3rd generation compile-link-go languages", or "software for 4rd generation hardware", but IBM 1130 naming cut it short one char [2]
PostScript: after the postfix notation it uses and because it was to be the last thing that happened to an image before it was printed [3]
[0] https://en.wikipedia.org/wiki/AWK
[1] https://wiki.tcl-lang.org/page/Tcl+vs%2E+TCL
[2] https://en.wikipedia.org/wiki/Forth_(programming_language)
This was interesting, although a small list. But it is definitely lacking any sources to back these claims. From reading the article I have no idea, where the author got these anecdotes from.
Julia was named because it was a "pretty name" (https://www.infoworld.com/article/2616709/new-julia-language...)
FORTH = because the machine Chuck Moore was using wouldn't accept a longer name; he wanted to call it "Fourth"
SNOBOL = (from Wikipedia) "According to Dave Farber, he, Griswold and Polonsky "finally arrived at the name Symbolic EXpression Interpreter SEXI."
All went well until one day I was submitting a batch job to assemble the system and as normal on my JOB card — the first card in the deck, I, in BTL standards, punched my job and my name — SEXI Farber.
One of the Comp Center girls looked at it and said, "That's what you think" in a humorous way.
That made it clear that we needed another name!! We sat and talked and drank coffee and shot rubber bands and after much too much time someone said — most likely Ralph — "We don't have a Snowball's chance in hell of finding a name". All of us yelled at once, "WE GOT IT — SNOBOL" in the spirit of all the BOL languages. We then stretched our mind to find what it stood for.
Common backronyms of "SNOBOL" are 'String Oriented Symbolic Language' or (as a quasi-initialism) 'StriNg Oriented symBOlic Language'. "> FORTH = because the machine Chuck Moore was using wouldn't accept a longer name; he wanted to call it "Fourth"
Additionally, he wanted to name it "Fourth" because it was targeting the fourth generation of computers [1] that featured the first hard disks (IIRC) - not because he thought of it as a fourth generation language.
[1] https://en.wikipedia.org/wiki/History_of_computing_hardware_...
I can't shake a vague memory that Java was named in an early brainstorming session with post-it notes on walls with tons of good and bad names, where eventually Java remained as the winner. I believe I've heard about this as a prime example of good brain storming methods from the early days when it wasn't at all obvious.
Does anybody know if this is right or if I'm confusing it with something else?
Java was originally called Oak.
Wasn't this how AltaVista got its name, but as a whiteboard remnant rather than post-it notes?
Ah, maybe. Thanks
Java was re-named from Oak/Green by its product manager, Kim Polese.
'Go' was named because "it's short, easy to type"[0] though I assume it being part of Google was also a contributing factor?
[0]:https://commandcenter.blogspot.com/2017/09/go-ten-years-and-...
TIL that Rust is named after a fungus instead of corroding metal.
Sort of, maybe. See https://www.reddit.com/r/rust/comments/27jvdt/internet_archa...
He doesn't remember exactly.
I think with historical trivia like this it's very easy for facts to get simplified and for maybes to turn into certainties as information is passed along from person to person. I personally wouldn't trust a single claim in the article without checking first hand sources first.
..and aptly named too:
>the fungus Rust that is “over-engineered for survival”.
Obviously Rust is indeed surviving (and thriving) and damn it is over-engineered.
If C++ wasn't actively developed too, Rust would surpass C++ as the most complex programming language sooner or later.
I wonder if we have already reached the point where no single individual fully understands Rust (C++ passed that threshold years ago [1])
[1] Yes, even Bjarne Stroustrup himself can only keep a fraction of C++ in his head at any given time, even if it is a large one, e.g. there was an interview where he got the behavior of unique_ptr in a certain scenario wrong and had to be corrected on camera by Herb Sutter (who certainly can't keep the entire language in his head either).
Yes that complexity has put me off learning Rust. I’ve had a brush with Haskell already, thx! I get more out of glueing things together than deeply getting into the language itself. Took me a while to realize that! So now I am learning Go (feel like I have learned it in an hour lol!) with the hope of having a long term language I like for side projects. I never was satisfied with NodeJS or C# for this for various reasons relating to the complexities of setting up projects esp. when they don’t wanna work.
Zig apparently got its name from this: https://gist.github.com/andrewrk/73742bf4b8ed795c85ce
Just rolled the dice on 'z' + vowel + consonant + consonant until something good came up.
Is that real? There are plenty of references to Zero Wing on the website for the Zig language.
The gist I linked is shared by Andrew Kelley, creator of the language. My best guess is that he rolled something similar to 'zig' and was reminded of the Zero Wing reference before deciding to take off with Zig (for great justice).
Python: slow, yet powerful
> […] with John Cleese suggesting "Python" as something slimy and slithery,[…]
https://en.wikipedia.org/wiki/Monty_Python%27s_Flying_Circus...
Oh, I was disappointed that it's missing some interesting (albeit often well-know) cases like C++, C#, JavaScript or even PHP.
Why would Kotlin be named after Kotlin Island? What's the connection?
In early 2010s Java was widely used but the language and ecosystem was stagnating. This lead to an explosion of alternative JVM languages: Groovy, Scala, Clojure, etc. But most people didn't want an entirely new language, all they wanted was basically 'Java with lambdas'. One such language was Ceylon, and Jetbrains (after unsuccessfully trying Groovy) decided to create their own Ceylon and called it Kotlin.
Kotlin runs on the Java virtual machine, Java is an island, they picked another island.
Because early JetBrains development was based mainly in Saint Petersburg.
It’s definitely more interesting to know /who/ named something and /why/, not just /what/ it’s named after.
It's a less verbose island
It targets the JVM. Java is also an island. Maybe that's it?
Also the three founders of JetBrains, the developers of Kotlin, all graduated from St. Petersburg State University.
Clojure - an expansion from CLJ which stands for CLR, Lisp, Java.
Python, Delphi and Oracle all relate to the same Greek legend.
Rumors say that the priestess in this temple was having visions because of natural local fumes [1].
[1] https://en.wikipedia.org/wiki/Pythia#Scientific_explanations
So many missing in this list
Lua?
Lua means 'Moon' in Portuguese, as it is also their logo: https://lua.org
And it is the successor to DEL (Data Entry Language) and SOL (Simple Object Language). Since 'Sol' is 'Sun' in Portuguese, they decided it would make sense to move to Moon.