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 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)

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 StumNov 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.

+1: it's a self-nominated group -- not a random sample.
–
S.LottNov 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 - litbNov 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 SeagullNov 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 BatchelderNov 12 '08 at 14:05

So what is the split between MS and non-MS developers in the real world>
–
PaulNov 12 '08 at 14:25

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.LottNov 12 '08 at 11:24

1

By this criteria C# is a lot harder than C or C++
–
John the SeagullNov 12 '08 at 16:11

I'm not sure you'd have to exclude argumentative questions. It still shows interest in that language.
–
SteveNov 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.
–
MarkJJan 31 '10 at 18:21

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?

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".

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.

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 LizardNov 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

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.

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.

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).