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].
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.
"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."
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.)
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.
> 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.
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.
(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)
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.
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.
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.
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"
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.
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.
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.
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.
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.
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?
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.
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.
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:
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.]
> 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".
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]
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.
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.
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?
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.
>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.
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).
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.
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.
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.