29 comments

[ 51.3 ms ] story [ 641 ms ] thread
Am I the only one that feels discouraged that Java still maintains this level of popularity? I thought Google's primary language was Python, why isn't that running on Android?
Is the scale in the first image logarithmic?
No, and it is important to realize that the axes are project/tag count rankings not direct project/tag counts.

So, no conclusions regarding relative popularity between two languages should be drawn from the diagram. (It's just an ordering. The distance between the first and second most popular language, for example, is exactly 1.)

Oh, thanks, now I understand!
On the top right the scripting languages() seem to be below the diagonal and the compiled languages above the diagonal. Maybe it is just co-incidental :).

I have suggestion for another chart someone may be interested in creating. A time series of such images. It would be even more awesome if the traces all the movements are depicted in a single image like a snake.

we're waiting until we have a couple of quarters of data, but then yes, a time series is indeed in the works.
afaict the "popularity" of most of those languages is being grossly distorted when you convert the "# of Tags" and "# of Projects" data to rankings.

(You haven't provided raw data, so I'll take an example from the raw data Drew Conway posted.)

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

Most spreadsheets will provide easy to use functions to calculate the mean, standard deviation, and normalized scores (STANDARDIZE in LibreOffice).

Please plot normalized data not rankings.

---

Similarly, the range in rank value for the github "# of Projects" is from 1 to 56, but the range in "# of Projects" is more like 0 to 104,239!

http://www.r-chart.com/2010/08/github-stats-on-programming-l...

I would like to see the "Repositories vs. Users" graph in a log-log scale, so it's possible to see the distribution of the big and small languages simultaneously.
Better, use 2 charts -- the first to show the big difference between the popular languages and the others, the second to show the minor differences among the others.
Actually, I suspect you could rotate the graph 45 degrees clockwise and have the vertical axis as "code for profit (high) vs code for fun (low)".

The horizontal axis would just be popularity.

It is really interesting that not only Java is amongst the most popular languages, but the popularity is also growing. It's really surprising, judging how everyone is spitting on Java.

Also, I wish Scala was more popular :)

Java is on a rocket due to Android. Now that the Oracle threat has receded, that trend could accelerate.
This has to be the explanation.

You can also hedge your bets with Java a bit, because unlike Obj-C it's important outside mobile apps.

I can second it. Some people I know, never used Java before in their life and started now to code apps for Android.
I chose Java for a major (non-android) project last year (other potential choices were Ruby, C++ and Scala). It's a great middle ground. Statically typed, fast and well known with very good tooling. I've ended up loving it because it works well for what it is and is super practical, not because it's a beautiful, perfect language.
What I really dislike on Java is that you have to repeat yourself, over and over and over.

For example, you have to write all these getters and setters ad nauseam, even if all they do is just setting the damn variable. Or the anonymous classes, the syntax is horrible.

Now I understand that the object model is simple and easy to understand, but still, I prefer Scala more. It works with java, but it's many times easier to actually use.

Unless I am coding for a "picky customer" I use what I refer to as Java Lite: public instance variables, shallow package hierarchy, etc. I have been using Java since the beginning and have written several books on Java so (at least for my own stuff) I feel comfortable breaking the rules.

I also format code to match a small but wide monitor (MacBook Air 13) and although a lot of people would understandably not like the longer line formatting using up to 100 columns, my code density is good - a typical method easily fits on my display. I also favor short classes.

It's generally true that the popular language is never the cool language. Except maybe C.
Objective C, Python and Ruby are very popular and cool ;-)
I learned Java specifically for Android, but I really like it for all around development. C# is probably better, but it owes a lot of its success to Java IMO.
I wonder how much of this popularity is attributable to the success of Minecraft/Notch.
While Minecraft is really a very nice idea it let me feel the disadvantages of Garbage Collection. On three different machines with three different JREs I had to tweak the start-up of the JVM for Minecraft and still it comes to lags and sometimes it just stops.
I love the last bunch with Ioke, Factor.
Why the downvotes, I wasn't sarcastic. Those are really interesting languages.
I don't see how the number of tags/projects translates into a worthy popularity metric.

Maybe some of these popular languages have more tags because they're POS languages that cause grief and consequently many more questions/posts that are created by even a smaller group of users.

Also there's no time element, so a supposed popular language may have had zero tags created in the last year, yet it only drops marginally relative to the pack. And an highly active new language is ranked against all historical data of older languages making it less popular than it really is.

I don't think stackoverflow is a particularly useful metric. If there is a simple easy to use and install language with good documentation, examples and a forum/mailing list with a small number of new users, it will be much lower on an equally as popular language with complex syntax and no community with a larger proportion of novice users.

Stackoverflow really fills the gap if there is no good alternative, it's a reflection of the ecosystem around the language than its popularity.

Perhaps the number of new projects or commits in a given language would be more indicative of a language's true popularity. (Not that it's a perfect metric either)