15

The best way to get data on computer language popularity that I know is the TIOBE index. But everyone knows that TIOBE is hopelessly flawed. (If someone provides a link to support this, I'll add it here.)

So is there any data on programming language popularity that is generally considered meaningful? The only other option I know is to look at the trends at indeed.com, which is inherently flawed, being based on job postings.

It isn't like I would make a future language decision solely based on an index, but it might provide a useful balance to the skewed perspective one obtains by talking to ones friends and colleagues.

To illustrate that bias, I'll point out that based on the experience of those I personally know, the only languages used professionally today (in order of popularity) are Java, C#, Groovy, JavaScript, Ruby, Objective C, and Perl. (Though it is evident that C, C++ and PHP were used in the past.)

So my question is, everyone bashes TIOBE, but is there anything else? If so, can anyone explain how we know the alternative has better methodology? Thanks.

9 Answers 9

14

One alternative would be to look at the number of questions for each programming language tag on StackOverflow.

I set up a Quick Query to do that: Post Counts By Tag

Unurprisingly, given the nature of that community, C# has a considerable lead.

Of course this also is biased against languages that because of ease of use might have fewer people asking questions.

5
  • +1 nice page, and for giving the drawbacks of the approach as well ...
    – Rook
    Nov 5, 2010 at 18:40
  • 10
    SO started out by being promoted by Jeff's and Joel's blogs, and thus acquired a strong .NET bias. How this has influenced its subsequent community is questionable. There's a lot of C++ people there, for example, but does that reflect any real numbers? Nov 5, 2010 at 21:03
  • That's why I said "given the nature of that community, C# has a considerable lead."
    – JohnFx
    Nov 5, 2010 at 23:04
  • 10
    Is the number of questions about a specific language on SO a measure of its popularity, or a measure of its obtuseness? Nov 16, 2010 at 19:39
  • 1
    "Of course this also is biased against languages that because of ease of use might have fewer people asking questions.": Great observation! +1
    – Giorgio
    Nov 11, 2012 at 10:17
6

As I've commented before:

"but there is no better source to measure language popularity" -- that's because there's no need for one. Nobody with any sense cares about rankings - so long as your language is alive and doing what you need it to, there's no need to worry about a silly arbitrary ranking.

6
  • There are a variety of reasons that such data is useful. But it may be the TIOBE is good enough for those reasons. Nov 5, 2010 at 18:36
  • If you want to state those reasons, I'm sure myself and others can prove that they're not sensible and/or that TIOBE doesn't address them. Nov 5, 2010 at 18:41
  • Is it not sensible to wonder if, say, the interest in Java is tanking before, say, teaching Java to a 14-year-old budding programmer? A good index would never provide an answer to the question, but to say that good data would have no use in any decision is mind-boggling. Nov 6, 2010 at 2:41
  • 4
    Don't teach Java to a 14-year old budding programmer. Teach programming to them. Sure, start with Java to do so, if you want, but use it as a tool for teaching them transferable skills. It is not sensible to only know one syntax and paradigm, nor is it harmful to learn a language that might currently be less popular. (e.g. How big was Obj-C before the iPhone SDK arrived?) Nov 6, 2010 at 14:54
  • 1
    Start with a language, almost any language, with an interactive interpreter. Don't start with Java or any language requiring a separate compilation step. Jan 15, 2013 at 23:20
5

Want Ads - While they may not be the best for the international community, they tend to be a very good measure of the local area where you are working. If you suddenly start seeing a of ads looking for developers who know language x when there used to be ads looking for developers who know language y and these trends persist for several months, it can indicate a shift in popularity in your area.

4
  • 1
    The problem with this is that want ads are a lagging indicator, whereas the OP seems to want a leading indicator.
    – dsimcha
    Nov 5, 2010 at 17:20
  • 3
    Indeed.com has a nice tool for this type of research (indeed.com/…)
    – JohnFx
    Nov 5, 2010 at 18:45
  • Of course, I mentioned indeed.com Nov 5, 2010 at 20:54
  • 2
    This is not supply and demand, this is demand only.
    – jk.
    Aug 24, 2012 at 21:02
3

Pretty much for the same reason you have the troubles described here: http://blog.timbunce.org/2008/04/12/tiobe-or-not-tiobe-lies-damned-lies-and-statistics/ you are going to have similar issues with any other "pretend to say what is popular across many populations" ranking.

Units shipped cant be compared with units downloaded

Taking in-use figures from websites or commercial software shorts languages used in research or math as that stuff is not exposed.

Doing anything with trends or keyword analysis is likely to be trendy or be a buzzword count.

Unless you have a target area in mind it would be difficult to suggest what would be better. I would guess based on the languages you mentioned you might be interested more on the trendy side, but as a general answer this is not good as there are probably an equal amount of people interested in the lo9ng-term side.

3

The only way I can see is general survey of the population. Something like a phone survey used by political pollsters. You'd probably have to call 100,000 random people to reach enough people who report themselves as programmers to make the result valid. Then ask them what they use.

The reason you need to do this is that every online indicator is self-selecting and thus incorrect. Tiobe, google searches, SO posts, whatever. Nor can you look at coference attendence or magazine subscriptions.

If you want actual usage statistics, you need to survey the general population.

1

Google trends is another one you can use.

There's no 100% correct answer or source of data in this space. The best you can do is aggregate data from various sources and come up an accurate as possible conclusion from that.

1

It'd be interesting to survey a bunch of major open source code repositories and measure how many lines of new code in each language are committed each week. Not sure the actual numbers would tell you anything, but the trend over time could be very revealing.

I like this as a measure as it's more to do with how much actual real work is getting done in the language rather than how confused people are by shiny-new-thing (which is what google/SO search/question rates are heavily influenced by I think).

Of course there are all sorts of problems with my proposed metric too; FOSS-world is a subset of real world, some languages gravitate towards particular repositories (which you might miss), some languages are more efficient, and all the other problems associated with LOC metrics. Maybe just "number of commits" in each language would be more useful.

Anyone know if such statistics are available anywhere today ? Seems like something Ohloh/Koders/Krugle should be able to do.

1

Here is one guy who has studied the correlation between number-of-code-repos-on-github.com vs #of-posts-tagged-with-"language" on stackoverflow.com. Data from 2010, ages ago. Long comments thread.

http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/

Here's another data source, from a job-broker company, url accepts "q" param in query string, outputs a diagram

http://www.indeed.com/jobtrends

http://www.indeed.com/jobtrends?q=perl

-1

As everyone says "its a bit hit n miss", and besides you don't get to see the future trends from this as even on search term results, you'll get lots of people talking about why "old language" is better then "new trending language" and thus skew the results.

The 'Language Popularity' site did try to aggregate a load of language searches from various sites to give an overview, only they do explain which languages are popular on which sites and let you decide which makes sense, so for example, Google likes C, Yahoo likes C++ whereas Craigslist likes PHP. (site since defunct)

I think the best one is the jobs market - which languages show up most on job adverts is a fair indicator, along with the salary offered for them.

2
  • The Language Popularity site (langpop.com) now tries to install an extension in your browser. Don't follow the link, or do so with care. Mar 12, 2019 at 17:39
  • @EllenSpertus it was dead link when I tried. Updated now.
    – gbjbaanb
    Mar 12, 2019 at 18:46

Not the answer you're looking for? Browse other questions tagged or ask your own question.