Data Scientist Drew Conway tackles the problem of deciding which programming languages are the most popular in an interesting way: by comparing the number of projects tagged in GitHub with each language, and the number of questions in StackOverflow about the language. The former is a measure of how often a language is used (though, mainly for open source projects); the latter is a measure of how many programmers are asking questions about it. Drew uses these measures and a k-means clustering technique to categorize langauges as follows:

  1. Most Popular (generally ranked in the highest 20% of languages in StackOverflow and GitGub)
  2. Second Tier (ranked in the 60%-80% quartiles)
  3. High Variance (ranked in the 20%-60% quartiles)
  4. Least Popular (ranked in the bottom 20-25%)
  5. Incomparable (because of indeterminate rankings in StackOverflow)

The five clusters become apparent in this slopegraph, linking each language's GitHub prevalance (on the left) with the number of questions on StackOverflow (right axis).

Ranks_slope-400x300
According to this analysis, Drew categorizes the most popular langauges today as (in alphabetical order):

  • Actionscript
  • ASP
  • Assembly
  • C
  • C#
  • C++
  • Coffeescript
  • Haskell
  • Java
  • Javascript
  • Objective C
  • Perl
  • PHP
  • Python
  • R
  • Ruby
  • Scala
  • Shell 

You can find the languages in the other tiers, and more details of how this categorization was implemented, at Drew's blog linked below.

Zero Intelligence Agents: Revisiting “Ranking the popularity of programming languages”: creating tiers