Programming Language Trends – July 2007

It interesting to keep an eye on TIOBE’s programming language trends. The position of the language is as interesting as the movement of languages up and down the rank. Lua, D and Ruby moved up, big jumps. You can see the top 20 list here. Here is how the index is computed. Here is an excerpt from TIOBE’s July News Flash.

  • This month, it looks like the month of game programming languages with a functional nature. Lua, particularly known as the implementation language of “World of Warcraft”, has entered the top 20. Now that all the hype around Ruby is cooling down, it seems to be time for a new scripting language. Lua is dynamically typed, with a very small but extendable language definition. It has borrowed a lot of features from the functional world.
  • At the same time Xbox compatible language F# entered the top 50. Everybody expected Scala (currently at #55) or Groovy (#54) to hit the top 50 this month, but F# was to one that really made it. F# is just like Lua a functional-like language. Although F# is still a Research project from Microsoft, it gains a lot of attention already.

I have heard mentions of Scala, but not D. Both may be worth checking out. I am surprised that Haskell does not figure in the list of Top-20 and FoxPro is still hanging in there.

PHP seems to be going down a bit. I am surprised to see that since some of the most scalable web applications – MediaWiki (which powers Wikipedia), WordPress are written using PHP.

So what metrics would you use to pick a language? It depends on what you want to do. If it is jobs, then Java is a good bet for a while. If you want to build rapid web applications then Python, PHP and Ruby are definitely the ones to consider (even though Python/Ruby are very different from PHP). For Windows developers, obviously C# is the language of choice. Game developers seem to like Lua, C++ and Python over other languages.

Even though TIOBE does not consider markup languages in their listing of programming languages, I think XML and RDF will be important ones to learn.