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?
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.)
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.
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!
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.
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.
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.
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.
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 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)
29 comments
[ 51.3 ms ] story [ 641 ms ] thread[EDIT] It is surprising it's not exponential.
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.)
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.
(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...
The horizontal axis would just be popularity.
Also, I wish Scala was more popular :)
You can also hedge your bets with Java a bit, because unlike Obj-C it's important outside mobile apps.
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.
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.
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.
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)