Saturday, August 22, 2009

Think twice before naming your new programming language

Smart people invent new programming languages, with powerful features, that perform really well. What else do we need?

When you want to learn and use these new programming languages, you might want to buy books or to search for tutorials, code examples, blog articles, etc.

There comes the name: you might have plenty of good reasons for choosing a certain name for your programming language, but before deciding on it please think about people who are willing to use it.

I am one of those: recently, I am learning the Factor and J programming languages, or I should say "I am trying to learn". I suppose that you can imagine my frustration when I try to search for information using Google, or for books using Amazon.

Just think about what kind of results you will get when looking for something related to Factor on Google...

Of course you could tell me that there is the Factor documentation. But I don't want to limit myself to the official documentation: I want to read books if they exist, I want to read code snippets shared by other people, I want to read blog posts, search on GitHub (Factor is not registered yet), and the reality is that I just can't. This is so frustrating, especially for language such as J, which are even more difficult to search for, and I don't need to explain you why...

Some work have been done to make C and C++ easy to search on the internet, but nothing yet for J yet. I think the same goes for R, and if I read this wiki page, it seems that I could quote almost the whole alphabet!

So please, I beg you, the next time you create a great programming language such as Factor or J, think carefully about a name that will be easy to search for on the internet. Do not use a one-character or two-character name, only use characters from the Latin alphabet, do not use a common word, and just make it as unique as possible.

32 comments:

  1. When I was learning J I met with the same problem. I partially got over that by just searching for the word "jsoftware". That said, there isn't much in the J world that isn't linked to by its own wiki, so it isn't so bad.

    ReplyDelete
  2. Haskell, Scala, Java are good names.
    Lisp, Forth, Scheme are not bad.

    .Net, R and all of the #Sharps are terrible.

    ReplyDelete
  3. Just add programming to your search term, e.g., "R programming," "Factor programming," etc.

    ReplyDelete
  4. Yeah, searching for R is mostly useless but slowly getting better, but "R software", "R code" and "R programming" and similar searches work okay.

    ReplyDelete
  5. Even with a language like Python, I have to search for the following using gogle blog search:

    python -monty -snake -handbag -trouser -comp.lang.python -gossamer-threads -python-list.blogspot.com

    And I have recently seean a lot more posts about Ex pets Pythons in Florida rather than the programming language!

    - Paddy.

    ReplyDelete
  6. That is a problem all products share on the internet. Period.

    ReplyDelete
  7. I AM A MORON WHO CANNOT USE GOOGLE SEARCH PROPERLY PLEASE RAPE MY FACE

    ReplyDelete
  8. Stack overflow, my friend

    ReplyDelete
  9. Whoa, way cool dude, I like it!

    RT
    www.web-tools.us.tc

    ReplyDelete
  10. This comment has been removed by the author.

    ReplyDelete
  11. it's not a problem of names, but rather of stupid search engines ;)

    ReplyDelete
  12. I hope there isn't a programming language named Recursion.

    ReplyDelete
  13. Clojure (a new dynamic language on the JVM, sort of the python of lisps) did this perfectly. When Rich Hickey chose the name, it had ZERO results on google.

    It's perfect because it makes life so easy finding documentation.

    I don't know how much coolness factor or fashion appeal the name "Clojure" (pronounced 'closure') will end up having, but I certainly like it.

    I think the community will be reaping the benefits of that decision for a long time to come.

    ReplyDelete
  14. been looking around for info, and tried to setup a google alert for, Pure.

    /fail

    ReplyDelete
  15. I think and am pretty much sure that language designers have more important and more valuable concerns than choosing a name that will achieve a high search ranking. Just my two pennies.

    ReplyDelete
  16. D suffers from the same problem. Every time I search for it, Google gives me every "I'd" in the world.

    ReplyDelete
  17. The classic Knuth joke abour programming languages name is very valid.

    Clojure has a nice name, as well as Erlang

    By the way, I'm currently developing a language called "programming language". It will be probably leading the tiobe ranks even before it gets released.

    ReplyDelete
  18. Try searching Google for "Recursion" sometime, you'll be surprised...

    ReplyDelete
  19. Everybody, please try out my new programming language:

    35ed5406781ebfdf7161bbbb18e16cb9ad1f3be4r

    It _really_ easy to find on google, _and_ its the sha1 sum of something nice!

    ReplyDelete
  20. Timely post...I wrote about this a few weeks ago and showed how even large companies like Microsoft can get this so very very wrong.

    http://www.thefailingpoint.com/2009/07/gettingstarted/choose-your-name-without-care/

    ReplyDelete
  21. this post inspired me to post this question on stackoverflow: http://stackoverflow.com/questions/1317167/hidden-features-of-factor

    ReplyDelete
  22. If you want to learn Factor, come to the IRC channel #concatenative on Freenode, join the mailing list (linked from the website), and read planet.factorcode.org. There's a lot of resources out there, but maybe they're not perfectly accessible. The channel is the best place, and it's very accepting of extreme beginner questions.

    ReplyDelete
  23. machete is a dangerous name for a programming language.

    ReplyDelete
  24. Ever used the Linux WM called 'Awesome'? It also has modules called Wicked, Shifty, Obvious, Beautiful and Awful. Easy!

    ReplyDelete
  25. I completely agree with you frustration in finding information about a wide range of programming languages. I mean after all if I came up with a language I would want a name that really stands out.

    ReplyDelete
  26. It's been debated a lot for the new language Fan as well:
    http://fandev.org/sidewalk/topic/457#c4859

    ReplyDelete
  27. Rebol like Rebolution is a goog name ;)

    The best language to learn for the future I think is Scala, and I use Rebol to learn it

    ReplyDelete
  28. Also consider this when naming your open source project.

    ReplyDelete
  29. I've had trouble like this recently with D....

    ReplyDelete