Ambiguous language namespaces

It seems like every single language that has come out recently has a name already in use in someway: swift, go, elm.

So I'm wondering, how horrible would it be to call a new language "Make" or "Maker"?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Nomenclature

It's tough to come up with a language name that hasn't been used before. Generally when I start a project about the first thing I do is choose a name, even if just a "working title" (though it usually sticks), because I find it hard to work with something absent a handle for referring to it. I called my programming language "Kernel". I was thinking of writing a book about the insights I'd gotten from it into the nature of programming, and looked for a title for the book; finally came up with the perfect title for what I had in mind: "Structure and Interpretation of Computer Programs". Unfortunately, I quickly realized that title was already in use.

I know there are already programming languages called "Fred" and "Slime".

I think calling a language

I think calling a language "Make" is just asking for trouble ;)

If the official name is inconvenient, due to frequent clashes, people won't use it; they'll come up with ad-hoc terminology, like "McDirmid's Make" or "Makelang". If you're *really* lucky, a consensus might emerge!

That applies to pretty much anything that's known widely-enough, eg. "Ruby" or "Node". Even small differences, like "Prologue" or "C+" might still cause confusion.

If the context is sufficiently far from the existing usage, you might get away with it. For example a GPU shader language called "Ruby" is sufficiently different from a Web scripting language that the distinction is probably clear. On the other hand "Make" is a general 'glue' language used across the board, so any language with that name is likely to come into contact with the build utility sooner or later and cause a conflict.

This is only a problem if

This is only a problem if the language becomes successful, and it would be a nice problem to have. Besides, make is an outdated build system, and the clash would at least provide for some publicity.

Publicity gained from

Publicity gained from namespace clashes only helps if you're in the top K search results for relatively small values of K. I think collisions become less of a problem if your language is successful, not more of a problem.

Naming is hard... let's go shopping!

The basic challenge I'd give is:

Suppose a programmer in the wild hears a colleague talking about your langauge. If they sit down and try to search for more information, how confident are you that your project will be among the first results they see?

The current fad of naming languages (and other projects/products/companies) with single dictionary words significantly complicates this.

Perl vs Go vs Erlang

Perl and Forth are misspellings of a dictionary term. Go and Swift (and Make) are the dictionary spellings. Erlang is a sounded out (English) made up word.

I get the feeling Erlang is the best for search engines, but Perl and Forth work too. I have no idea why a search company named their language Go. I figure you are pretty safe if you can register the .com or .org for the name you want.

Not completely true

Actually, Forth is a dictionary term (as in "go forth"), and Erlang was a person's name.

learn something new

didn't even think of "go forth" and I had never heard the name. I guess I should have gone with Fortran as the example.

Well...

In fact, although "forth" is obviously an English word, the name was actually derived as a misspelling of "fourth." According to Chuck Moore via Wikipedia:

Forth is so named because in 1968 "the file holding the interpreter was labeled FOURTH, for 4th (next) generation software—but the IBM 1130 operating system restricted file names to 5 characters."

So I think it was a very good example, actually.

How about the Maycur programming language?

(Removed previous letter play which ... probably came across wrong)

how about to name it by a

how about to name it by a planet?

is this even remotely serious?

?!!!??? i mean, i figure everybody has laughed at the choice of "go" and not a happy i'm laughing WITH you kind of a laugh but a HOLY POOP THAT'S DUMB especially for *people who work at freaking google you know a search engine* kind of a laughing AT them kind of a laugh.

as much as i hate the "drop a vowel" meme for naming things like flickr, i think it is better than the "use a name that requires me to type in more letters EVERY TIME i want to search for it" like "go lang" instead of just the name of the language itself.

Cannot be worse than Clean

clean language

I dubbed my own language "Hi". I forgot why, but an equally bad choice. Anyone who can still find the sources gets a virtual cookie.

Totally serious. I want to

Totally serious. I want to tie in with the maker movement, and Make is a very direct way to do that.

maker movement

Naming a new language 'make' is just asking for confusion with the existing Unix utility and make files, in addition to difficulty with search engines. But you could could easily tie in with the Maker culture in other ways. Consider the name 'Faire', for example, or adding a word like 'MakerSpace'. Or you could try for 'Makr' (which is certainly in use, but not much as a language) or 'Mkur' or similar. Just brainstorm up a list with a few friends, then test each one on a few search engines that you don't usually use.

Make is just such a good

Make is just such a good name, wasted on such an old tool. How many people are disappointed when the magazine "Make" has nothing to do with build management?

I'm not interested in SEO at this point.

de gustibus

Whether 'Make' is a good PL name is a question of taste. I think it's an awful name for a language, but not a bad command word.

There SHOULD be a build management magazine

With people writing so much about build management, including a bunch of "... considered harmful" titles, if there were a build management magazine it could be hoped that " ... the ultimate ___" would enter the conversation, along with "the next 700 build systems", etc.

careful of...

Some say "movement", others think it's mainly a "brand".

I'd put myself in the latter category along with the owners of related trademarks. So: careful.

Edit:

p.s.: Call it O'Reilly! :-)

Not to mention "make" is a

Not to mention "make" is a synonym for "brand" in its noun form!

The solution is obvious!

You should call it:

Makr

Of course, as a Microsoft employee, you may be contractually obligated to name it "Visual Makr Plus, Ultimate Enterprise Edition Pro".

How about Make Live?

How about Make Live?

I was joking, but Make Live

I was joking, but Make Live is actually a very good name, especially due to the live coding connection.

Another joke is hiding in

Another joke is hiding in the subtext.

Let's do this properly

As with most problems, the solution is a strong central authority. ACM used to number algorithms (do they still do that?). Surely they wouldn't mind numbering programming languages as well.

This neatly solves everything. Using the traditional naming scheme, a typical language would then be known as PL/175, say. The stroke is very important. Much like school uniforms avoid expensive fashion races in the classroom, there will be no bickering about particularly popular words.

To facilitate everyday communication once a language becomes successful it might then earn a nickname (sensibly chosen by adults).

I had utterly forgotten

I had utterly forgotten about the algorithmic numbering-- that's a great analogy.

The nicknaming wouldn't be a problem as long as language names were generally chosen for distinctness within domains of discourse. E.g., don't create another "Make" that does build automation. That way, the name/number distinction largely becomes relevant in non-distinguished domains, e.g. global web searches.

Crawlers would have to get a little savvy, though, as most people wouldn't use the full-address in casual discussion, but you'd want search to distinguish them.

I wonder what number PL/1

I wonder what number PL/1 would have?

nicknames

    "Crash, teach me to be funny on purpose," Dex begged.
    Crash sighed. "I can, but your basic problem is you're not funny."
    "I know," Dex granted. "But maybe I can learn a simple gimmick."
    "Okay, here's any easy one," Crash offered. "Combine two things that don't go together, but make it work anyway. Apply an analogy where it doesn't belong. It resembles reasoning of normal people, and thus tastes like parody."
    "Drawing a blank here. I need an example," Dex closed his eyes.
    "Okay, what if programming languages had social security numbers?" Crash hypothesized.
    "But that makes no sense," Dex objected.
    "Exactly," Crash agreed. "Then see what happens in a story."

    A programming language gets in a long line to register for classes, stomach growling in hunger by the time line's head is reached. A girl wearing a name-tag reading 'Nan' smiles perfunctorily and takes his ID card.
    "What's your social?" Nan asks.
    "I don't have a social security number," the language replies.
    "No social?" Nan looks incredulous. "What a big fat loser. You want that line over there. Shoo, you're holding up the line."
    "What kind of name is Nan, anyway?" the PL tosses back as a parting shot. "Did your parents divide by zero?"
    "Floating point humor," Nan sniffs.
    "You have strange ideas, Crash," Dex observed. "What made you think of that?"
    "Language nicknames," Crash recalled. "Wil had this idea of giving libraries and languages both long names and short names, so a longer one can be used to disambiguate. For example, if he names a library thorn, the long name is Wil Gowpen Thorn."
    "Naming it after himself?" Dex seemed to taste something bad.
    Crash shrugged. "Just a standard namespace disambiguation: use a vendor prefix, then suffix with major and minor version numbers. Anyway, people have both long and short names too. It's actually not a novel idea. Movies can also have long and short names. Just use a shorter nickname after you establish what you're talking about."
    "Utter pragmatism, then?" Dex guessed.

PL Naming Patterns

This page:
http://c2.com/cgi/wiki?ProgrammingLanguageNamingPatterns
categorises the common patterns of programming language names.

The names of deceased mathematicians was one of the first things I though of when looking for a name, but it appears from Googling that all the reasonably well known ones have already been taken.

I am going to claim "Herbrand" before anyone else does :-) Although "Her - brand" probably sounds too much like something else...

There seems to be plenty of less well known logicians available though:

http://en.wikipedia.org/wiki/List_of_logicians

I might go for "Venn" as its short...

personally i rather like the idea of naming it

"Deceased Mathematicians"

Obligatory

*unlurks
Someone has to say it...
That's a sweet name for a band.
*relurks

This is truly something that

This is truly something that make me agonize when start ANY project.

However, I learn a neat trick about naming that combine the 22 Laws of Marketing - http://blog.kowalczyk.info/articles/22-marketing-laws.html -:

1- You must (try to) be the #1 in your category.

In this case: OWN the name of the category (ie: Windows, Word, Pages, MicroSoft, etc)

2- If you arrive late, then you try to be the #1 in a well defined sub-category

And try to own the name of it

3- If the space is too competitive:

AVOID the *common names*. That is how I finally settle in the name of my startup "The Juggler (El malabarista, in spanish). The name is weird? Yes. But people that hear the name years ago will remember it. As a freelancer, I prefer to get a silly name and get remembered than the opposite.

If you can't own the name, then is better to be remembered among dozens of sound-alike things. (ie: Don't call your software company soft-THIS THIS-soft, comp-THAT, tech-THING etc).

AVOID to sound like the #1 in your category (like MacroSoftware, AppleInformatica, etc)

You can try with a aspect, like the sentiment, the end-result, or just go crazy with your name: If you are small and very likely to be forgotten, call it Brain***, LaserBoom, BombasticFox, Adamantium, BatmanUseThisLang, KataBOOM!. Nobody will forget something like that!

* And this is important: Marketing is critical for software, too.