Dev Watch

Blog archive

Interactive IEEE Tool Ranks Programming Language Popularity

Nothing gets developers going like a discussion of programming languages. I still have to stop and click on each new article purporting to tell us which is the best or most popular language. (Part of the attraction is wading through the inevitable flame wars that break out in the reader comments section. Things are always guaranteed to get lively.)

There's never a "right" answer, of course, so a new tool published by IEEE Spectrum lets you rank languages according to your own criteria (the tool's sources and methodology are explained here).

IEEE Spectrum, the flagship Web site and publication of the IEEE (formerly the Institute of Electrical and Electronics Engineers), provides the tool with several customization options.

You can limit the rankings to certain sectors or combinations of sectors: Web, mobile, enterprise and embedded. You can view the IEEE Spectrum "overall" ranking or choose trending (growing rapidly); jobs (in demand by employers); open (popular on social media and open source hubs); or custom (design your own ranking).

The rankings use 12 weighted data sources, and the custom weighting option lets you choose which sources to use and how much import to assign to them with sliders. Sources include Google search and trends; GitHub active and created; Stack Overflow questions and views; Reddit; Hacker News, career sites; and several more.

"We separated some sources, such as Google, into two metrics, one of which is more sensitive to queries made by people asking questions, while the other is more sensitive to resources used by people with a fairly good grasp already," said co-author Stephen Cass in reply to a reader comment about the methodology behind the tool. "But unfortunately, every metric is by necessity a proxy of some sort, subject to these kinds of effects, since we can't monitor language use directly."

Unsurprisingly, no matter how you slice the criteria, it's pretty much Java right on down the line.

The overall top 10 with all sectors in play reads:

  1. Java
  2. C
  3. C++
  4. Python
  5. C#
  6. PHP
  7. JavaScript
  8. Ruby
  9. R
  10. MATLAB

The topmost languages are mostly the same for the different sectors, though "embedded" shakes things up, putting C as No. 1 and adding Assembly and Arduino to the top 10.

The IEEE tool results are basically in line with other such measurements.

For example, here's the latest TIOBE index for July:

  1. C
  2. Java
  3. Objective-C
  4. C++
  5. (Visual) Basic
  6. C#
  7. PHP
  8. Python
  9. JavaScript
  10. Transact-SQL

Here's the latest from the site, which features Programming Language Popularity charts (not updated since last October) that also use multiple sources and allow for user weighting:

  1. C
  2. Java
  3. PHP
  4. JavaScript
  5. C++
  6. Python
  7. Shell
  8. Ruby
  9. Objective-C
  10. C#

Here's the latest from the PYPL (PopularitY of Programming Language) index:

  1. Java
  2. PHP
  3. Python
  4. C#
  5. C
  6. C++
  7. JavaScript
  8. Objective-C
  9. Ruby
  10. Swift

The PYPL is based on Google Trends data. So going back to the IEEE tool and choosing Google Trends as the only criterium should produce the same results:

  1. C
  2. Java
  3. C++
  4. Python
  5. C#
  6. PHP
  7. JavaScript
  8. R
  9. Visual Basic
  10. SQL

It doesn't, probably because the two tools use slightly different methodology. For example, one big difference is that the IEEE tool searched for "X programming" in January 2014, while the PYPL tool also used the word "tutorial."

All such tools take different approaches, and thus can't be compared and contrasted. And there are always anomalies. For example, the IEEE tool seems to place R way up there, for some reason. And I find it hard to believe Swift already has gained top-10 traction as reported by PYPL.

So the usefulness of such tools is questionable, but they're sure fun to play around with and pass the time when you should be programming.

And don't forget, you can read the user comments for interesting debates such as whether or not Java is an embedded language, or if it should be PERL (as an acronym for Practical Extraction and Report Language) or just Perl.

Posted by David Ramel on July 7, 2014