## Programming Language Names

I recently found that the name I had chosen for the language I am creating had already been taken. So now I am in search of a new name. I realized that a number of the LtU readers create and name their own languages in the course of their language tinkering/research. I thought we my enjoy discussing some name related issues.

First, the way I see it there are two schools of names. First there are names for languages that are never meant to be mainstream. Second there are names chosen expressly with the intention that the language be mainstream. Of course language designers often misjudge whether their language will be mainstream or not. I imagine that languages not meant for the mainstream are easier to name because the name isnâ€™t as important.

Some discussion questions:
1. Do you agree that whether a language is intended for mainstream use at the time of naming affects the name?
2. What makes a good name? A bad name
3. What do you think of names which are simple words seemingly unrelated to programming? I.e. Perl, Ruby, Java, Python etc.
4. What do you think the many gemstone language names? Perl, Ruby, Opal etc
5. What do you think of the letter names and their variants? C C++ C# etc.
6. Can you reuse the name of an obscure language for a new mainstream language? (but which languages are obscure enough)
7. How do you pick a language name?
8. Does any of this really matter?

## Comment viewing options

Or people will curse you till you die. Given Google's stance on not indexing punctuation, not only is it impossible to Google for C or D, it's also impossible to Google for C++, C#, C--, and C...(where ... is anything that's not alphanumeric). I would shy away from overloading a non-proper noun (like scheme, ruby, etc.). Perl is interesting because it's not an English word. That makes it unique, and thus eminently Googleable.

Note that the first page of hits for Scheme is about the PL, but the next page already includes hits for pages not about the PL. On the other hand, at least the first 5 pages of hits for Perl are about the PL. Java, by sheer force of weight, dominates Google, but did not always do so. I'm sure people trying to sell coffee are thrilled. I personally like unique names like SmallTalk, Modula, etc. One of my colleagues likes to name things after ancient gods.

What's in a name? Psychology, of course. Not a lot, for PLs, but something. We all respond to names on a conscious and subconscious level, so I suppose it is possible to pick bad names. However, I doubt that it has much effect on the ultimate adoption of the language, so unless you plan on hitting it big and marketing it, I would just pick something fun, that tickles your fancy. And please, please, please don't make a musical reference with your name!

### Could not agree more

...with all the points, to an extent that I wrote this almost metoo post.

To add some value: last time I needed a name, I looked for "list of rare words" (well, yes, I Googled :) ), and picked "ravanastron" - it sounds good, is rare, and Google-friendly. One problem - it took me a couple of days to remember it :)

Ah, now I see that post by Li - yes, a name should be easy to remember!

PS: David, I guess "ravanastron" is ok, even if it is related to music? :)

### Music Theory

Yes, that's an interesting name. The "tron" puts the techy edge on it, even it has more of an 80's sci-fi feel. ;> My objection is more to the "chorus" of languages that Microsoft likes naming, of course. So I guess I would be much more annoyed by a name that comes directly from music theory, especially if it involves cute symbols (but then, who is really going to name their language Cb? On the other hand, C+ would be particularly obnoxious as (semi) computer-illiterate people often mispronounce C++ that way [as well as calling an A+ certification 'A++'], but musically speaking, it would mean "C augmented", which would have a plausibly positive connotation, disregarding the other connotation as a middling homework grade...if someone wants to watch me commit seppuku, suggest the name to Microsoft and get them to use it in a product).

### Googling punctuation

I was surprised to discover that you actually can Google for C++ and C# ( but not C-- ). I wonder what the rules really are?

You can also Google for ObjC++ and Fortran++. Searching for Fortran# gives you the same results as for Fortran; maybe nobody has ever mentioned a language Fortran# ?

Searching for .NET (as in the Microsoft .NET framework) gives you the same results as NET.

Even though you can Google for some terms that include punctuation, I strongly agree with the recommendation that new programming language names (or, indeed, new names for almost anything) should not include punctuation.

### Latin gegemony

What about non-Latin letters? Ωmega being one of the latest examples.

I am all for using national scripts (my native language uses Cyrillic, while the second native uses many diacritics on top of Latin) in descriptions and probably comments, but using them in marketable names... somehow I don't like it. It has an element of fun, but more frequently gets in the way (even if the character in question is λ).

One can argue that problems with punctuation are problems in Google (and I partially agree), but even if Google would be perfect in this respect - there are many media out there that are just not ready for anything more than (small part of) ASCII. Sometimes I wish computers were born in China (historically as a concept, not production-wise as instances of hardware) ;-)

### Google uses an exception list

I happen to know something about this since a friend of mine discovered that he couldn't Google for a name that contained punctuation. He thought it was a frequently searched term so he emailed Google. They replied and said they would add it to there list of words with punctuation. Sure enough, a few days later it was googlable (is that word?).

### I think that the only thing t

I think that the only thing that mathers is that the name is easy to remember.

### Pyscerocha

1. Do you agree that whether a language is intended for mainstream use at the time of naming affects the name?

Should I care?

2. What makes a good name? A bad name

As David says, make it Googlable. One word. Uniquely pronounceable.

3. What do you think of names which are simple words seemingly unrelated to programming? I.e. Perl, Ruby, Java, Python etc.

Bad, except for Perl. Not google-able. "Links" is one of the worst example of this. I wrote a few blog entries or two using the term "LinksPL" (always pointing to Wadler's blog) to counteract this somewhat; now Wadler's blog is the top Google result for LinksPL.

4. What do you think the many gemstone language names? Perl, Ruby, Opal etc

Eh.

5. What do you think of the letter names and their variants? C C++ C# etc.

Used to like them. Not so much any more. Same with the languages themselves. (Except the latecomer C#.)

6. Can you reuse the name of an obscure language for a new mainstream language? (but which languages are obscure enough)

Scala did that. I think there are at least two Omegas.

7. How do you pick a language name?

Hey, this is the age of the mash-up. Since there have been thousands of programming languages, every new language must necessarily incorporate features that have been in previous programming languages. So, the name should be a mash-up of the names of the most influential of those languages. I made up the name "Pyscerocha" except that it referred to a weblog and a cute Google experiment, rather than an actual programming language.

8. Does any of this really matter?

Does this constitute tail-recursion?: See my answer to #1.

### Make a new one

Make a new one. My projects used to be named after mythological characters but it get's difficult to find a name that is not taken. I was digging around in Celtic mythology before I gave up. The good ones were all taken.

Try something that sounds like a word, but isn't or compose words to form your own. Don't pick something that's unpronouncable or difficult to spell.

Don't name it after a contentious plant like m$did with C# tho' ;) ### C Sharp not C Hash The search term 'C Sharp' also returns many more relevant results on Google than 'C Hash' which returns hits regarding hash-table implementations in C. The confusion obviously arises because for simplicity of typing we use C# (i.e. hash/pound/number) rather than the musical sharp character which is distinct in Unicode (U+266F), but unfortunately not supported by LtU or this edit box, so not reproduced here. So maybe limiting oneself to 7-bit ASCII should be a criterion when devising a new language name? ### It was a joke. It was a joke. ### now i'm curious "the musical sharp character which is distinct in Unicode" What? Why is it distinct? It is the very same symbol! In fact, the marketing guys at M$ did a truly great job at the language naming. Java seems distant from its C/C++ heritage, but C# adopted it with open arms. If C++ is C incremented, C# is a halftone above. Not much, but already a different stroke... :)

I don't mind much about the name, except it should be short and creative. I like acronyms as well, it's a long tradition in computer science...

### Characters Vs Glyphs

What? Why is it distinct? It is the very same symbol!

Keep in mind that Unicode makes a distinction between characters and glyphs. You are right that the glyphs are the same but their denotations are not. As a further example, Unicode distinguishes the Latin A character from the Greek A character even though their glyphs are identical.

### Hash and Sharp are usually written distinctly

What? Why is it distinct? It is the very same symbol!

Keep in mind that Unicode makes a distinction between characters and glyphs. You are right that the glyphs are the same but their denotations are not.

Actually, the glyphs are often different as well. While both are essentially two vertical lines intersecting two horizontal lines, the vertical lines in the hash (#) but the horizontal lines in the sharp (♯) are usually slanted.

Unicode also includes separate HYPHEN (‐) and MINUS SIGN (−) characters, in addition to ASCII's HYPHEN-MINUS (-), which can be either. Given sufficient font and input support, you could fairly easily allow hyphenated names and infix operators in the same language. (Dylan got around this by requiring spaces around operators.)

### Numeric entities

You can always enter the numeric entity in HTML, so C&#9839; yields C♯

How that is seen by a visitor to LtU depends on their browser, OS, and fonts installed, however.

### Please don't use the name "Nicol".

As I am using it for my programming language.

The name you have to use must be easy to remember and pronounce in most major human languages, easy to spell, help remember some nice qualities of the language, etc.

I chose the name NICOL for the following reasons:

1) NI.CO.L. stands for NIce COmputer Language.
2) Nicol is the name of a beautiful actress.
3) Nicol is the name of a woman I like.
4) Nicol is the name of the first baby of my sister.

### Programming Language Naming Patterns

For an interesting set of observations, go to this page on c2.

### Personally...

I like names of foods and animals in a variety of natural languages (http://strlen.com/proglang/) ;)

### IHMFA

If your language is big, bloated, ugly and inefficient then you could name it SUV.

### Should be the name of an ever

Should be the name of an everyday thing but using a synonym in non-everyday use.

Java is a good example.

I'd name my language something like Fornicate. That means it'll get hits on non-related searches, too :-p