RedMonk just published their latest survey of Github’s most popular languages, and given Github’s continuous growth in popularity, they are worth a look.
Here are the results at a glance:
- Javascript is seeing a consistent and serious growth.
- Ruby is in sharp decline.
- Python is showing a decline as well, although not as severe as Ruby.
- Java is showing some growth, and it’s also the only JVM language in the top 12 listed by Red Monk.
I’m going to go out on a limb and predict that Python is being replaced by Go. I don’t have a lot of information to back up this prediction except that most of the positive articles I read about Go are written by Python developers, and a lot of them say that they are now actively migrating their code base from Python to Go. I don’t see as much enthusiasm for Go from developers using statically typed languages, probably because of Go’s antiquated type system (which is still a big step up from Python, obviously).
It’s interesting to see Java continue to grow twenty years after its introduction. I think this constant growth is fueled by the language’s remarkable versatility and its ability to adapt to new technologies but also driven by a series of constant popularity boosts such as Android five years ago and Java 8 this year.
I’m surprised not to see Groovy in this top 12 of languages, since it’s usually acknowledged as the second most popular language on the JVM and I expected its popularity grow thanks to Gradle, but this doesn’t seem to be enough to crack the top 12 on Red Monk.
Update: Discussion on reddit
#1 by huhwhat on May 3, 2014 - 11:11 pm
Go’s type system is not “antiquated”. It’s just made simple, and by purpose. I think the purpose was to stay as near to C as possible but still give some tools for stable APIs. It’s not exactly duck typing, but pretty near. And it works in my experience very very well.
#2 by vincent on May 4, 2014 - 4:29 am
One point that I would like to raise here is that when you add one of the increasingly popular front end frameworks such as twitter Bootstrap or Zurb foundation to say, a Rails app, your project is seen by Github as more than 50% JavaScript, even if you wrote none of it yourself.
#3 by Dan on May 4, 2014 - 7:45 am
Python and Go do not have cross purposes imo. I mean obviously to the people who were just using python because they enjoyed it, and it was fast enough for them; then fine most languages are basically interchangeable. But for systems that actually benefit from python’s dynamism, Go strips out too many good python idioms that don’t really make them alternatives.
Personally even if none of that was true, (In the case where python is fast enough, and obviously it should be if we’re making this comparison) I wouldn’t ever use a C-style language over python’s–what I think is really nice–syntax. And the speed of development in a dynamic languages is almost always higher. Which would tend to be the things that I would pick python for in the first place. Something that needs some nice speedy development that will take advantage of dynamism, metaprogramming, and/or asyncio
#4 by boggle on May 4, 2014 - 7:56 am
@huhwhat go’s type system is very limited since only very basic properties of values may be expressed by it (in comparison to practically used powerful type systems of languages like scala, haskell, and rust). I think it is also valid to call it antiquated in the sense that the set of features that it does support rely on type theory papers from way before the 80’s if not much earlier (as opposed to more modern type systems based on more modern type systems).
#5 by Stefane Fermigier on May 4, 2014 - 8:41 am
Bullshit analysis, based on bogus data, posing as serious science (or at least, credible analyst work).
For instance, 1/2 of my repositories, which are really Python projects, are misclassified by GitHub as Javascript projects. Same for other people, of course (see the comments below mine on dberkholz’s post).
#6 by huhwhat on May 4, 2014 - 9:51 am
@boggle Academia vs real life, please don’t go there… It will turn ugly, when you start putting academic toy languages like Haskell on the line with stuff used widely in software industry..
#7 by James on May 4, 2014 - 5:21 pm
@huhwhat Haskell might be primarily an academic language, but I’d hardly consider put Scala or Rust in the same category.
#8 by ARealProgrammer on May 4, 2014 - 6:01 pm
Real programmers program in assembly! 😛
#9 by Paul on May 5, 2014 - 6:11 am
Am I missing something? How can Go be replacing Python if it’s not even showing up on the graph?
#10 by Cedric on May 5, 2014 - 7:18 am
The prediction that Go is slowly replacing Python is entirely mine, it doesn’t follow from these graphs.
#11 by Joker_vD on May 5, 2014 - 6:51 am
@boggle: Generics (aka “parametric polymorphism”) were invented in 70ies. Heck, half of the CS was invented back in the 70ies, they just didn’t have resources to implement it. We are (re)implementing (and reinventing) it today!
Pingback: Articles for 2014-may-6 | Readings for a day