Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Github and Stackoverflow programming language popularity (redmonk.com)
40 points by mooreds on Nov 25, 2012 | hide | past | favorite | 46 comments


"a few surprises on this list – the continued traction of Java"

I'm not surprised by this at all ... while looking for work recently, I was a bit shocked at how much of the doom and gloom being spoken about Java was wrong. It's not cool to say you're a Java developer, but most of the corporate world runs on it, even if no one admits to be the person developing those applications.

There were even a few projects where the cool languages (we're moving from a Node.js platform to something that's more maintainable) had failed and were being replaced. I'm not sure this is Node's fault (you can get this with any language if the architect and/or lead don't know what they're doing) but it does say something about Java.

At JavaOne this year, there were a lot of great sessions and a lot of optimism about where the next set of specifications were headed. I for one fell back in love with Java through a combination of JEE6 and GWT. It's so much easier to be a developer than it used to be. I will admit that I love Python and Coffeescript too, but I don't generally write large projects in either one.

So I don't expect Java to lose popularity more than a few spots ... it's entirely possible that Java is now "well known" (at least by the StackOverflow measure) and just doesn't have as many unanswered questions. In any case, I expect it to be around a while, When Y3K rolls around it won't be the Cobol programmers in demand - it will be those of us who know Java inside and out.


Java's popularity is the very cause of all the bellyaching about Java. Most criticisms arise while looking at other people's code, and there's an awful lot of Java code to look at. Most of the criticism seems to be about Java culture (excessive abstraction) and Java coding standards, and less about the language itself. I hate most Java code too, but have chosen Java for projects.

Most notable to me is how many of the trendy languages on HN are less popular than assembly. Is that because assembly is somehow over represented, perhaps some library is checked in by lots of people? Or is this chart just extremely long-tailed?


Java doesn't get a lot of press or cool points, but the enterprise world is massive and anyone in it knows there's still a lot of spending going on for java projects.

It's also worth noting that several other languages on the list only run on the Java Virtual Machine. (Scala, Groovy, Clojure, Gosu, Ceylon). Jobs for these languages are commonly filled by people who identify as Java developers.


There is a Scala.NET (http://lampwww.epfl.ch/~magarcia/ScalaNET/) project by the way.


And Clojure also runs on CLR (ClojureCLR) and can be compiled to JavaScript (ClojureScript).


I wonder if Android development is also a big factor in Java's popularity.


I would think so. Android has motivated a lot of people (myself included) to start programming in Java.


> I will admit that I love Python and Coffeescript too, but I don't generally write large projects in either one.

Why not Python? Just wondering.


The last "big" Python project I wrote was in 2007 or 2008 and involved the import of a lot of data, processing that data and then a relatively simple web application for managing jobs and displaying graphs of the resulting data.

I used TurboGears since it seemed to be Python's equivalent to RoR and while the web application development was great, the ability make use of all the processors I provided was effectively blocked by the GIL (and yes ... I tried several different strategies to get around it). I think the class of problems I was trying at the time were prone to hitting locks, but after three or four projects like that, I just decided it wasn't worth it.


Keep in mind that Javascript is hugely overcounted on Github. How many web applications include a copy of jQuery and friends in their source? There are lots of Ruby on Rails applications on Github that list Javascript as their primary language.


Same with Scala vs. Java. I have a few Scala projects on Github and they tend to be counted as Java even if there's one file of Java code in there versus dozens of Scala files.


Check out my article "Measuring Language Popularity is Harder Than Many Think" http://smthngsmwhr.wordpress.com/2012/11/19/measuring-popula... and I must say that both github.com and stackoverflow.com are not just typical sites and getting data only from those sites is not enough. JavaScript is very popular at github.com and C# at stackoverflow.com Other sources give different results as well.

We may be more or less sure only in 10 or so most popular languages and judging relative online popularity may be hard for them.


This is a good measurement of what languages people on Github use, and which languages people on StackOverflow are having trouble with.

They mention Go, for instance. I write a lot of Go. I put it all on Bitbucket. I've also found that questions about Go are best answered on golang-nuts or in the IRC channels, or in the documentation, rather than StackOverflow.

It's a pretty cool plot, as long as you take it for what it is: a representation of how many repositories exist on Github, and how many people are asking questions on Stackoverflow. In terms of measuring language popularity, it's about as useful as TIOBE.


Somehow I do not feel confidant about correlating language popularity on stackoverflow to the actual popularity. For some languages (e.g. in my observation:, c#, objective c), there are only few tutorial/sample code outside of stackoverflow as compared to other languages (e.g. again in my observation Java). This makes more and more activity on stackoverflow for some languages as compared to the other languages which has more sample/tutorial on other place on internet. In my observation, whenever I am writing code in c# and objective c, I almost always land to stackoverflow by google search but this is not the case whenever I write code in JAVA


(disclaimer: i'm the author) it's important to keep two things in mind when considering any ranking: first, and most obviously, no language ranking will be perfect for all readers, because the metrics for ranking languages will vary on an individual basis. second, the intent of the ranking. for our purposes at redmonk, this is an important consideration, because we neither intend to nor claim to produce rankings that are representative of language use broadly. if the rankings were representative of all use, languages such as COBOL would have a substantial presence on the list. we are rather interested in communities that we believe to be more predictive in terms of future use, of which github and stackoverflow are two obvious examples. the sustained strength of javascript on both properties has been one example of their ability to identify trending languages.

as for the criticisms regarding the usage of stackoverflow above, this is why we correlate the stackoverflow rankings with github. one represents discussion and research about a language, the other is manifestation of activity within a language. what's interesting is that the correlation between these properties has historically been strong and appears to be getting stronger over time.

again, no ranking is perfect - ours included - but we feel that measuring programming language interest and traction via these properties is at the very least an interesting datapoint.


Completely agree. I commented based on my personal observation which, I guess, can not be generalized.


Or such languages have only few tutorial/samples in wild web because of superior quality of official documentation. Or, in circular logic, because of existence of good community on stackoverflow.


It's not called JAVA. It's called Java. Why do you write it in all-caps?


Does that matter? Are Java and JAVA so different? I am not a native English speaker.


Typically, all caps in a name indicate the word is an acronym. With Java being a proper noun, only the first letter should be capitalized.

There are plenty of exceptions, of course, especially in the tech field.

Btw, I wouldn't have guessed that English is not your native language.


And judging the relative popularity for less popular languages such as Common Lisp is even less precise if we base the research only on github and stackoverflow. So I would be very careful with this comparison of language popularity. Although it is better to have some chart that none :)


I agree. The data is not the best, but having some data is better than none, as long as the graph is taken with a grain of salt.


Yes, precisely. Still this is a very interesting research and you can see clusters of languages like the most popular ones. I just noticed that people often tend to look at a chart and jump to quick conclusions, so just wanted to add this "grain of salt" :)


These are curious statements:

* CoffeeScript is a simplied version of JavaScript that infuriates technologists with its technical compromises

What compromises and how is it simplified? If anything it's more complex than JavaScript.

* while Assembly is as close to the bare metal as most developers today are likely to get.

The only thing closer would be machine code. Not sure I want to develop in that :)

(btw, hijacking the clipboard is kind of annoying :-/)


Arguably VHDL and Verilog are closer to the bare metal than assembly. Of course, everyone I personally know who are coding VHDL or Verilog professionally are either working on latency-critical financial systems or defense systems.

Edit: ... and my guess is that VHDL and Verilog are likely to be under-represented in public data.


If folks want to improve our language detection on GitHub, please take a look at https://github.com/github/linguist


The "analysis" is just as broken as when it was last posted here 2 months ago

http://news.ycombinator.com/item?id=4512702


Looks like the biggest mover is Haxe and it doesn't get a mention at all, or am I misreading these charts.


is it possible to get numbers and units on the axis? what does the 80 mean, I think this is incredible


I'm having trouble parsing the SO axis as well. Python (145K tags) and PHP (300K tags) are right next to each other around 90. R (19K tags) and Delphi (17K tags) are just slightly below around 80.


1) The "analysis" is just as broken as it was in September (the last time it was posted here).

The "popularity" of most of those languages is being grossly distorted when sogrady converts the "# of Tags" and "# of Projects" data to rankings.

The range in rank value for the stackoverflow tags was from 1 to 56, but the range in "# of Tags" that rank is based upon was from 0 to 82,923 and the data was so skewed that only 11 of 56 languages had above average "# of Tags".

Haskell was well below average for "# of Tags" and Java was well above average for "# of Tags" --

  #56 Java = 82,923
  >>> mean = 18,770 <<<
  #40 Haskell = 1,896
  # 1 F# = 0
(The story was the same for the github "# of Projects" rank numbers.)

2) Which gives rise to this kind of bad-math "analysis" --

"Go jumping from #32 in 2010 to #30 today, a number that sounds modest but means that in that time it has improved more in popularity than Scala or Haskell and as much as Java, at least from a rankings standpoint (obviously growth becomes more difficult the more popular the language becomes)."

3) 90% of Tags were for just 10 languages.

50% of Tags were for just 3 languages.

The cumulative bottom 1% of Tags were for 31 different languages (including Haskell and Go).


the numbers for both axes are their respective rankings, not actual tag counts. their positioning, therefore, isn't directly proportional to the actual tag volume, but how they rank relative to one another. if we had actual numbers on the github side rather than just the rankings, we'd account for this by introducing a logarithmic scale, but we're constrained by what the data we have access to.


Great Haskell is right up there with Assembly. And which Nimrod will learn Nimrod ?!


this is an incredible graph, I am sending to all my coder friends



I would suspect that grandparent knew exactly the meaning of "incredible", as it is just very difficult to believe that this graph represents anything more than what people use SO and github ;)


I suspect that somid3 was simply being emphatic.

Actually, the graph is a gross distortion rather than difficult to believe -- see http://news.ycombinator.com/item?id=4516651


Yes, I read that and was referring to this exactly, but somewhat jokingly. I just thought that "incredible" could be a more polite way to say "useless"...


>> "incredible" could be <<

... enthusiastic - like "terrific" "fantastic".

What somid3 meant is not at all clear.


My interpretation of this is that Common Lisp is a computer scientist's language (lots of code written in it, very few questions, presumably these are very advanced level questions).

On the other hand, C# and Visual Basic are weekend coders' languages (reasonable amounts of code, massive amounts of very basic level questions).


>On the other hand, C# and Visual Basic are weekend coders' languages

Or they simply have anti-git bias in developer's culture. Like F#, which is not popular among beginners but placed far away over median too.


I'd suggest it's just as likely that Stack Overflow has a slight bias in favour of .NET. It's written in .NET, its creators blogs talk about .NET, and a lot of the higher profile members of the .NET community regularly answer questions on there.


Seconded. In C#'s favourite environment (Visual Studio) the GIT-support is so far from seamless that it's one of the last source-control/VCS's you'll consider.


Does that matter because of the missing feature (which is actually pretty good if you try git-extensions or github for windows) or is this because of the community? Not needing editor/IDE integration is one of the primary reasons git is better than other source control options. You could easily make the case that VS users are not comfortable on the command line.


Really? I always thought MS languages were what you coded if you worked on Enterprise stuff during the week, then on the weekends you bust out the open source languages.


I code python at my day job, and my latest weekend project is in C#. So far I'm really liking C#.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: