Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

When it comes to naming your software product (whether an application or a library), what do you do?

It seems impossible to choose a name which isn't already taken by some other piece of software, whether it's someone's small hobby project or a company selling it. We all know about Phoenix becoming Firebird becoming Firefox because it clashed with other software product names.

How unique does a name have to be? Phoenix was the name of a computer BIOS - hardly similar to a web browser, wasn't it? And to take a counter-example, there's Fedora the operating system and Fedora the repository software, happily co-existing. Another counter-example is midori the Javascript framework and midori the web browser.

What steps would you take to ensure the name of your application or library isn't taken by someone else, and how far would you look - in terms of the type of product - when looking for other things with the same name?

share|improve this question
15  
I'm afraid you have stumbled upon one of the two hardest problems in computer science. –  Rein Henrichs Apr 19 '11 at 6:16
2  
and midori the delicious beverage –  Brad Apr 19 '11 at 6:18
1  
and fedora the hat. –  Trezoid Apr 19 '11 at 6:22
1  
And phoenix the mythical firebird, obviously. Not to mention Javascript vs Java. –  thomasrutter Apr 19 '11 at 6:24
    
Let's not forget chrome the metal and firefox the mythical, flaming member of the Canidae family. –  Rein Henrichs Apr 19 '11 at 7:34

5 Answers 5

up vote 9 down vote accepted

The uniqueness of the name is important for three reasons:

  • If you take a name of a product which already exists in the same or similar market, this product company can sue you in some countries. Example: creating a graphics editing program an naming it Photoshop.

  • If you take a name which is already in use extensively, you will hardly be able to be in first 10 in Google or other search engines results. Example: calling your application Agile.

  • If two products or technologies share the same name, it can confuse the users. Example: lots of my customers (with little technical background) ask me to write Java code when they talk about the interactivity of a website in a browser).

Those three reasons means that you don't have to care about the uniqueness of the name in every circumstance. Instead:

  • Ensure that the name is not taken by a concurrent.

  • Ensure that you will have enough visibility in Google by searching for the word you want to use for your product before choosing it. Example: calling your product Agile is not a good idea. Calling your product Agile Mediaworks is fine (even if this name is stupid), because this name has no results in Google nor Bing.

  • Ensure that if there is a similar name already in use, it will not confuse the users. Java/JavaScript is confusing. ASP/ASP.NET too.

Now, how to choose the names? Here's some advices:

  • You can use the name of the brand/company in the product name. But don't do it if the name of the company is too long. Example: Microsoft Word is fine. Pelican Design & Development Criollo System Center is ugly.

  • Don't fear using common names, but don't use direct terms which expresses what the product is about. Example: Microsoft Excel is fine. Microsoft Spreadsheet Application is not.

  • Remember you can use long names if they abbreviate well (with searchable abbreviation). Windows Presentation Foundation, aka. WPF is ok.

  • You can use fancy names like the names of magical creatures (Example: Firefox), or special terminology (in my company we use horse breeds a lot: Campolina, Criollo System Center, etc.), or words from mythology (Example: one of our project was called Syrinx), etc.

  • You can also invent your own name, if it sounds good. But be careful if you intend to create a product which will be sold worldwide: some words which sound well in English are not in other languages. By the way, this applies to common words too. Example: the name of Bluewater brand is pronounced the same way as the word "vomit" in Russian.

To conclude, it seems that you have a large choice of names: common names, names from mythology or used in specific sectors other than IT, names which contain the brand name in it, compound names which abbreviate well, etc., and you don't have to care about choosing the name which never existed before. The only think you must care about is to not taking a name already in use by your concurrent, to choose something which will be easily searchable and to not confuse your users.

share|improve this answer

See producingoss.org for assistance, but in short you can try to go back to the default of having a name that describes what your project actually does. OpenOffice is a classic example of this.

If your name has to be something pulled out of thin air, then make sure your mission statement and description is prominent.

Try to find a name that has got your .net, .org or .com domains available and remember in most cases you're actually allowed to use the same name as another 'business' if you're in totally different fields.

share|improve this answer

Use a combination of company & (desired) product name:

$CompanyName $ProductName

Or stop trying to use common words and be more creative ;)

share|improve this answer

My view is you should pick a name that has a strong-sounding "brand", or the potential for one. You don't want something too common, and obviously don't want to tread on someone else's toes with a name, but IMO you also don't want to go the "Web 2.0" way of having strange names that have nothing to do with your product (although I guess that works as it's now the fad), for instance naming a task app something strange like "Bluefrog" that would confuse the average person for a while but could be worth the gamble (look at Twitter or Hoptoad or similar)

I prefer to go with standard naming conventions that actually convey the app so I can bring it up in conversation. You can be creative in naming without sounding ridiculous. For example if I'm doing a contact management app I might call it "Virtudex" or possibly "Digidex" (Virtual/Digital + Rolodex - very basic example do not read too much into it) but wouldn't want to call it "Ultimate Contact Manager" because that's generic and presumptuous ("ultimate" to whom? compared to what?)

share|improve this answer

There is very little you can do to ensure that your application name is unique. The most obvious way is to use a really long name for your executable but that is rarely done.

Libraries are a lot easier to make unique. Like Pierre has said you can use a combination of company and product name. You can take it much further if you like such as: CompanyName::ProductRange::ProductName::CodeNamespaceLevel1:Level2

For commercial products there is less chance of a name clash as compared to open space project. I don't think you have to bother too much about it.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.