According to Oxford Dictionaries, the word “popular” means “liked or admired by many people or by a particular person or group”. I know folks who code just for their living without any love for it. So, I am not going to use the term “Popularity”, but will use the term “Usability” – “Usability Index For Programming Languages”.
When a programmer decides to learn a new language, these indices may be checked to find out if this new skill will be helpful in future. Also, while starting a new project, one may not be willing to use a programming language which is slowly dying because of various reasons.
There are different methodologies used by these indices to rank programming languages:
- Number of times name of a language has been searched or number of times a language has been referred in the internet.
- Number of lines code written in a particular language available in public (e.g. in repositories like github, bitbucket, Google Code etc).
- Number of open source projects available in public repositories.
- Number of questions posted in question answer sites like stackoverflow.
- Number of books sold for a particular language.
- Number of advertisement posted for a language in different job portals.
Neither of the above mentioned methodologies may actually represent real world usage of a language (For example, data related to corporate or private projects is not publicly available). Or neither of these may be able to identify the best programming language. But, a combination of all these should give some idea about the current trend.
And here are the different indices available:
This programming language ranking is prepared based on the query “+ programming” made to 25 search engines (including Google, Yahoo, Youtube, Amazon, Baidu, Blogger, Facebook, LinkedIn, Bing, StackOverflow, Twitter, Wikipedia, WordPress etc). It covers around 229 programming languages (as of January 2014). As per the portal, this index does not consider number of lines of code for a language; Instead it’s based on the number of skilled programmers, available courses and third party vendors. The index shows the trend from 2002 till date and gets updated once in a month.
In the past, there were controversies around the methodologies followed for this index. As a result, they have fine tuned it over time. There are suggestions to use queries such as “programming with “, “development” and ” coding” in addition to “” programming” (Not yet implemented).
Currently the team is working on adding queries in natural languages other than English (to start with they are working on Chinese search engine Baidu).
How frequently a language is searched for a tutorial in google – that is the basis of this index. An example query string is “python tutorial”. Since python has other meanings too, searching only for “python” (as performed by other indices) may lead to inconsistent result. The data is collected from google trends. Right now, it covers only 10 languages. As indicated in the portal, the approach is different from TIOBE index :
The TIOBE Index is a lagging indicator. It counts the number of web pages with the language name. Objective-c programming has over 20 million pages on the web,[s] while C programming has only 11 million.[s] This explains why Objective-C has a high TIOBE ranking. But who is reading those Objective-C web pages ? Hardly anyone, according to Google Trends data. Objective C programming is searched 30 times less than C programming.[s] In fact, the use of programming by the TIOBE index is misleading…
This index is generated based on two things :
- Number of projects in github for a language.
- Number of questions tagged for a language in stackoverflow.
As understood, this approach has it’s own set of limitations (and it accepts that fact). In addition to github, there are other repositories (e.g. bitbucket, google code etc) which are being used by developers, but, RedMonk does not consider those. Also, github is popular among the developers for their personal projects. github may not include the projects they actually work on as a part of their job.
Programming Language Popularity Chart uses a similar approach. In addition to #2 (Number of questions tagged for a language in stackoverflow), it considers the number of lines of commit for a language in github (instead of number of projects in github).
This is an open source, fully automatic, free tool for measuring the popularity of languages (historical data is available on request). It searches for the string “+ language programming” in Google, Yahoo, Bing, Google Blogs, Amazon, YouTube, Wikipedia and languages are ranked accordingly. Being an open source tool (It’s available here), the data is freely available, so that any one can reproduce and verify the ranking using this tool.
Since, yahoo has stopped returning the number of search results, this index will stop using this search engine in future.
This portal presents the trends based on :
- Number of pages returned for the string “language programming” by Google.
- Number of files found with a specified extension (e.g. “.java”) by Google.
- Number of job posted in craigslist returned by Google.
- Based on the data returned by github and ohloh.net.
- Number of times name of a language is mentioned (in the title) in the following three websites : Lambda the Ultimate, programming.reddit.com, Slashdot. This particular methodology (#5) highlights the languages people are talking about, but may not be actually using.
ohloh.net is different from code/project hosting sites like github, bitbucket etc. It’s a free, public directory for open source projects. It provides a search service, so one can search for open source code, irrespective of where the code is actually lying. It measures the activity from almost 600000 open source projects.
In this portal, one may select a number languages and compare those based on:
- Number of commits per month.
- Number of contributors who have contributed at least one line of code per month.
- Number of lines of codes changed per month.
- Number of projects with at least one line of code changed per month.
Trends are being displayed since 2005.
Job Tractor, Trendy Skills, Indeed etc rank languages based on the demand for languages in the job market. Job Tractor searches twitter for job postings for different languages. Trendy Skills searches for advertisements in popular job portals for the skills and technologies employees are looking for. indeed.com itself is a job portal covering 50 countries and 26 languages; Here, one can check job trends for different skill sets (e.g. languages), companies etc.
Sale of technical books
Every year, O’Reilly publishes a series of articles (here, here and here) related to “computer book market” (based on the Nielsen BookScan’s weekly top 3000 tittles sold and data from Amazon). As a part of this effort, O’Reilly tries to gauge the programming language rankings. The assumption here is employers as well as individual programmers buy books based on their current need (job for which they are being paid) and interest. The programming language used for examples used in a book identifies the language of the book. For example, “Head First Design Pattern” is considered to be a Java book, as the code snippets are written in Java. Although, Neilsen BookScan covers book markets in UK, Ireland, Australia, New Zealand, South Africa, Italy, India, US and Spain, the reports published by O’Reilly seems to concentrate only on US (I am not very sure about it).