Inspired by an article by Andrew Chen about using Google Insights to look at adoption of some web apps, I decided to put together a similar comparison looking at the global popularity of programming languages. The languages I chose to look at were (in alphabetical order): Common Lisp, Erlang, Groovy, Haskell, Java, Objective C, OCaml, Perl, Python, Ruby, Scala, and Scheme. I performed the searches using Google Insights, and restricted them using the programming filter.
Let's look at some pictures.
Common Lisp
Erlang
Groovy
Haskell
Java
Objective C
OCaml
Perl
Python
Ruby
Scala
Scheme
Some ending thoughts
In the end, these charts don't provide much in the way of macro-insight. I'm not surprised that Ruby is most popular in Japan (although the fact that it is nearly as popular in Belarus is unexpected), nor am I surprised that Russia is so strongly represented. Instead, perhaps these charts provide some evidence for already held beliefs. Did you think that much of Java programming is being farmed out to India? Well, that seems likely since India has the highest search density for Java (and many of the other languages in the top ten searchers for Java are nations with a low per capita income).
But it also provides some interesting tidbits. Would you have thought that India also has the highest search density for Objective C? Or that Jamaica has five times the search density of the United States for Haskell? Or that the highest that the United States ranks is the 5th position, and for Perl?
Is there anything particularly interesting that you see in the charts?
I'm sure I'm showing my ignorance and lack of sophistication, but just about the only thing that didn't surprise me was India ranking high for Java.
I'd love to see these numbers without normalization over search volume. Just looking at these charts was enough to make me briefly consider learning Russian, but I imagine Mandarin would be a better idea.
Well I was really having trouble trying to figure our any even mildly coherent commentary. Sorry if it came off like I was worldly, I'm not really sure that is the truth.
There is a lot to think about in there to be sure.
Wow Python has the highest search density in Cuba! I feel a few rather nice django based holidays coming on.
An excellent article! I am not sure what to make of it though... Who would have thought that Russia has such an affinity for esoteric programming languages.
From what I know, there is a lot of emphasis on all things scientific and academical in the culture so that fact might be swaying a lot of people to try languages such as OCaml, Common Lisp, and Haskell which are widely adopted in academia.
It is sad to see this confirmation that my home country Canada is far from a high-tech nation...
I am curious what other people think about their home countries...
Java is indeed very popular in India. It's the recommended language by most IT Service Shops in India.
Do you think it would be more appropriate if using "haskell language" or "haskell programming language" than "haskell"? Same with others.
Russia may show so highly so often purely because it covers the largest area. The figures should really be related to population to be meaningful...
http://www.google.com/insights/search/#cat=&q=haskell%20language&geo=&date=&clp=&cmpt=q
looks a bit more close to reality.
It might look closer to what you think is reality, but it seems like including the english word 'language' would skew the results a bit.
While I'm not sure how realistic any of these results are, restricting the search to the language name and the programming section is as fair of a metric as you can get, I'd say.
in russia: code writes you
So what about Forth PL? It would be interesting.
so, I'm curious: being Brazil such a tiny country with so few developers, how come it doesn't show up on any language comparison...?
Cool! I am curious to see what happens over time - whether certain countries and/or areas "lead" the trends
For example, I would like to see Ruby spread from Japan over the world over time ;)
The leaders in the chart are countries that don't often get programming literature translated fast enough in their language, or would rather find information online than buy a book on the matter (especially when books are at $30). Engineers there are more prone to look for information online than lets say American or Western European engineers. At the same time, it is clear that some countries, like India and Russa, may have more software engineers than others. That does not demonstrate that the language is more popular there, its just that they have a higher number of engineers period. While both Java and Objective C are popular in India according to these charts, who is to say Objective C is not used by 20% of the engineers only while Java is used by 90%. I'm not sure the charts are really telling much.
Diana,
Your point about the leaders being countries with limited native language programming literature (or limited resources to buy it) is an interesting one, but I don't think it explains the results. The way that I believe (and there is ample room for mistakes in my understanding) the data is being normalized should negate that effect. Actually, I believe the data normalization addresses all of your comments. Let me explain how I believe the normalization is occurring.
Lets say that India has 7000 searches for Java, 5000 searches for Python, and 3000 searches for Objective C. Then Cuba might have 100 searches for Java, 300 searches for Python, and 10 searches for Objective C. Then each language has a ratio of the total searches in that category calculated. In India, Java has 7000/(7000+5000+3000) or 7/15 percent of the overall search volume. In Cuba, Java has 100/(100+300+10) or 10/31 percent of the search volume.
Thus comparing those two countries, Java would have a score of 1.0, and Cuba would have a score of (10/31) / (7/15) -> ~0.69.
Again, this understanding may be entirely off base, but it is the basis of my thoughts about the search results thus far.
What about c and c++ :(
I tried to stay away from languages with extremely common names (like C, or D, or F) because I felt like the search results would be even less valuable in those cases. Its not that I don't care. ;)
Hahahaha, Python in Cuba??? We don't even have computer in Cuba!!! This is ridiculous LOL
What about .NET technologies like C#.NET and VB.NET?
<a href="http://people.eku.edu/williamsf/HON102Web/falsec-web.htm#7" title="">Equating count of results for arbitrary search terms with the "global popularity of languages" = Classical hasty generalization</a>.
Steve,
I find that at some point its necessary to abandon the quest for complete and accurate disclaimers. Rather than making a classical hasty generalization, I'd say rather than I'm making an unstated (and undefended) assumption that search results for a programming language's name have some correlation with the popularity of the programming language.
I think its a fairly reasonable assumption to make, and it seems that most others agree with that premise, since the complaints have largely been about the specific terms searched for, instead of with the concept at large.
Certainly I'd like to make a stronger case for this metric, but since we haven't even defined what popularity means, it doesn't seem like a trivial--nor particularly valuable--endeavor.
Considering China has alot of programmers, their absence seems odd (they don't use alternative names for these languages) except they are all probably searching for these terms on Baidu, not Google. It's quite probable their searches for these languages would be frequent enough to stick them in at least a couple of the top tens, except they're using the wrong search engine so we don't see it.
Reply to this entry