Thursday, July 15, 2010

Popularity of programming languages

There are several programming languages popularity index, the more “famous” is probably the TIOBE Programming Community index which is mostly based on search results, there are also other like (also search based) and Github which looks at kind of code is being checked in.

What happens when we put the results of these together. I took the top 10 languages and this is what i get.

Among the Top 10 we can seee that all of the indexes agree that Php, Java, Perl, C, C++, Javascript and python are the ones that still popular. The interesting thing is Ruby, its the most popular language in GitHub accounting for over 19% of all code but in Langpop and TIOBE indexes its not even in the top 10 (TIOBE 12 place, Langpop 12 place). In fact in the TIOBE index for Ruby shows a decline from 2009 to 2010. We can also see that scripting/dynamic languages are slightly ahead compare with the compiled ones (4 scripting/dynamic to 3 compiled/static).

Lets take a look at only the Top 5 from each index. This is what we get. The reason for more entries for GitHub is because for PHP and C they share the same percentage of use.

All the languages that are in the Top 10 all tend have a rich set of libraries and frameworks. The popularity of Java could be tied to the fact that most enterprises used it. PHP is perhaps  the most popular web programming language out there with great frameworks, easy deployment, Wikipedia, Facebook all uses it. Most of the services provided by Google, yahoo all have some form of a PHP library. Well for C and C++, i guess would be games, kernal programming. C# is perhaps the only language that is tied to a specific OS in all the languages featured here, yes I know about Mono but Microsoft .Net provides some much more than what Mono provides for Linux.

The GitHub data is interesting though since I am guessing that most of the projects there are stuff that people do outside of their regular jobs, that’s why we are seeing dynamic languages on that side of the sphere since they have lower overheads in programming, most have a edit and run compare to a edit, compile, build, run kind of programming cycle. So they are great for trying stuff out. I see the data as representative of my own personal work, at work I mainly use Java, C# but in my own personal projects, I use Python and PHP.

What about you guys, Are these languages in your skill set? What do you think of the results? Any other indexes that I should compare?

I am going to do this one year later and see how much the data has changed. Perhaps we will see the rise of functional languages?