What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 130 Stack Exchange communities.

I thought it would be a good idea to track a programming language's popularity by looking at Stack Overflow. I took 20 languages and counted the number of questions per language and put the results up in a table.

I used a very crude algorithm and compiled the results on my blog.

I ran the algo against the number of questions asked for a particular language, but this could be useful information to have if the developers of Stack Overflow could create a page for it somewhere.

They could use votes and answers as well as questions to gauge the popularity of a language, and they could also restrict the queries to a particular month to get an indication of current popularity rather than historical.

Would it be useful? Does it make sense?

(Apparently, SO was not seeded (see comment), so no bias towards .NET from that angle)

share|improve this question

migrated from stackoverflow.com Jan 31 '10 at 10:56

This question came from our site for professional and enthusiast programmers.

    
From your post: "I think it was seeded from a .net questions and answers forum which used to live on the Joel On Software page" - no, it was not. Jeff wanted that originally, but decided against it to not have a .net bias from the beginning. SO was completely empty when the beta started. –  Michael Stum Nov 12 '08 at 14:36

16 Answers 16

I have the impression that stackoverflow readers are strongly biased towards the Microsoft stack, thus the popularity of C# and related languages. This is not a random sample of the programming population.

Thus general popularity is out of the question. It surely might be useful to track how the membership evolves over time or to know what are you most likely to find here, or similar stuff. I think I'm not the only one waiting for DB dumps or at least the SO API.

share|improve this answer
    
+1: it's a self-nominated group -- not a random sample. –  S.Lott Nov 12 '08 at 11:22
    
yeah looks so to me too. even though one would guess the opposite first ('cause of its open thinking) –  Johannes Schaub - litb Nov 12 '08 at 13:07
1  
I think it's because many of the readers come from Jeff's blog, who himself is a Microsoft stack developer and who (at least used to) put specific C# advice there. So it's very likely the majority of his readers develop on that stack too. –  John the Seagull Nov 12 '08 at 13:39
1  
The other co-founder is Joel Spolsky, also a MS-stack developer, so his readers are also skewed toward MS technologies. –  Ned Batchelder Nov 12 '08 at 14:05
    
So what is the split between MS and non-MS developers in the real world> –  Paul Nov 12 '08 at 14:25
    
I don't know, but if one is to believe other language popularity measuring sites, like langpop.com or tiobe.com/index.php/content/paperinfo/tpci/index.html, it surely does not resemble what's here. –  John the Seagull Nov 12 '08 at 14:37
    
Can you believe TIOBE for example? –  Steve Nov 14 '08 at 9:40
    
More than in a pure SO sample, sure. It of course has its own flaws, but bias is not one of them. –  John the Seagull Nov 14 '08 at 9:59

You might be measuring how hard it is to solve problems with the language (i.e. how likely people are to need to use StackOverflow), rather than popularity of use.

Hence the few questions from smug Lisp weenies :)

share|improve this answer
    
yes, I had thought about that. –  Steve Nov 12 '08 at 10:43
    
Also, you have to deduct the questions that are purely argumentative. The "I can do this in one line of Perl, what's wrong with Python that makes it two lines?" questions. –  S.Lott Nov 12 '08 at 11:24
1  
By this criteria C# is a lot harder than C or C++ –  John the Seagull Nov 12 '08 at 16:11
    
I'm not sure you'd have to exclude argumentative questions. It still shows interest in that language. –  Steve Nov 14 '08 at 9:41
    
Disagree. You are measuring how easy it is to solve problems with the language by asking questions on StackOverflow. In other words, C# developers like StackOverflow because questions quickly get good answers, sometimes from world experts. Doesn't prove there's more C# programmers in the world, just proves a lot of C# programmers hang out on StackOverflow. Mainly because they were attracted by two Microsoft-oriented bloggers who launched it: Jeff and Joel. –  MarkJ Jan 31 '10 at 18:21

Not really.

You will always be tracking how many questions are asked about a language on stackoverflow.

If I ask about Installshield, do I ask because it's "popular", or just because I'm chained to the smelly rotten carcass of it? If there is a continuous but notable increase in C++ questions - does it get more popular, or did they release an update with new features? A continuous decrease of Java questions - did people give up on it, or have they found a place with more Java experts? A jump in ADA questions - did it just capture the spotlight, or did a company using it just change its internet access policy?

There are to many influences that you cannot control for.

share|improve this answer
    
+1 thoughtful –  Mike S Aug 19 '09 at 14:01

See Bayes' theorem. It depends on the probability of reading stackoverflow given language X.

share|improve this answer

All such a sample will ever give you is a measure of the likelihood of the next question on SO being about language X. It cannot be reliably used to determine the popularity of languages in the "real world".

share|improve this answer

It can be used to track language popularity on stackoverflow. This one data point should not be used to talk about general popularity.

But when this site has matured a bit, perhaps this one data point should be added to e.g http://www.langpop.com/

share|improve this answer

To embellish the answers above, I'll add that by counting Stack Overflow questions you might be tracking the "popularity" of:

  1. current-generation languages,
  2. with tricky corner-case issues,
  3. used by less-experienced programmers,
  4. on Windows,
  5. who listen to podcasts,
  6. and read blogs,
  7. and don't work in mutually-supportive development teams...

;-)

share|improve this answer

I find studies like this very interesting. Just recently google started "Google Flu Trends" where they are using the number of people who search about the flu as an indicator of the the number of people who have the flu in that state. You can view a map of all 50 states to see where the flu epidemic is spreading to and to what degree so you can have early warning systems.

I think it would be useful. It might not be directly indicative of how popular a language is in general but that doesn't mean the information isn't useful. As far as implementation I think if we could have something similar to how we can select our reputation on the graph it would be neat to be able to select a range of time and see a overlayed line graph of the various languages and their question frequency.

share|improve this answer

Had just done exactly that a few minutes ago, before checking your post, to compare Python vs Ruby. Python has about twice the tag frequency of Ruby, which seems right. Since Python is Ruby's elder.

share|improve this answer
    
But that would imply that Python is only twice as popular as Ruby, which I think greatly overestimates Ruby's popularity. I could be wrong too, since my own metric is "people I know and blogs I read". :) –  Bill the Lizard Nov 12 '08 at 12:58

A better way to find out about the popularity would be to post a community wiki question with various choices are answers, set some guidelines for voting, the number of votes should give a fair indication of the language that is popular

share|improve this answer

So, if we all ask 10 Cobol questions, it will be the most popular language of all? ;-).

share|improve this answer
    
Yes, but you're only likely to ask questions on Cobol if you use it. And the more you use it the more likely you are to use it. –  Steve Nov 12 '08 at 13:16
    
...likely you are to ask questions. –  Steve Nov 12 '08 at 13:17

No - not unless the vast majority of all programmers asked questions here. Even then, there would be the problem of proportion: would few questions mean that a language was not popular, or that it was easy to learn or had so many tutorials available that it didn't need questions asked?

In short, you'd have to factor some difficult-to-measure attributes just to get an estimate of popularity amongst SO users, and there's no guarantee that we're representative of the rest of the programming world. Comparing Java to PHP in your table gives you a good indication that it's not representative.

share|improve this answer

Yes, I love statististics. Can't have enough of them. Just make it easy to find the one supporting my current claim. :)

share|improve this answer

I don't think it is.

First of: a lot of programming languages have other forums too. For example, Perl's low popularity here (< 2% of the questions) is IMO, although some very highly respected people from the online Perl Community spend their time here (too), mainly because Perl folks have PerlMonks, a Perl specific site.

And the amount of questions that are asked is more because people are having trouble with the language. Not all languages are equally hard. :)

I think a better metric could maybe be the number of replies to questions, and/or how long it takes for a question to be answered. Or not.

share|improve this answer
    
+1 very good remark I think –  Peter Nov 27 '09 at 17:58

It might be a useful data point if you include information from several more sites. Some other data you might incorporate into your measurement could be:

  • Language popularity on open source sites like SourceForge and Google Code.
  • Frequency of languages mentioned on programming blogs (all of them, not just the popular ones).
  • Surveys of language support in popular IDE's (e.g., you might be able to find out how many times the Perl, Ruby, and Erlang plugins have been downloaded for TextPad).

With a bit of data mining you can probably come up with a useful metric.

share|improve this answer

I'd be interested in including the results in http://langpop.com if SO grows to be a fairly large community that continues to add languages and diversify, rather than trend towards one particular set of technologies. Incidentally, I'm always looking for other cool new things to add to that site, so let me know (via email, preferably).

Thanks, Dave

share|improve this answer

You must log in to answer this question.