Every now and then I see an article that cites the recently close "race" for "most popular programming language" between Java and C, according to the TIOBE Index -- almost inevitably followed by remarks about Java's long and painful decline. TIOBE uses a somewhat complicated formula for computing its ranking; but the core component of the method seems to be search statistics for the name of each language followed by the word "programming," for example, "Java programming." This makes a lot of sense, because if you go to Google Trendsand search for, say, "Java" or even "JVM," you can readily see that those statistics include many searches that have nothing to do with the programming language Java or the Java Virtual Machine.

Below is the current TIOBE graph of the 10 most popular languages over the past 13 years or so:

The black line at the top is Java's TIOBE rating, while the nearby light blue line is C. One thing that stands out is that Java's "popularity" has been on a long, slow, decline, according to TIOBE's rating system. But does this mean that usage of Java is actually declining?

I think not, for several reasons. First, Java is a mature language. Wouldn't it be reasonable for a mature language to receive fewer searches on search engines like Google, Yahoo, etc., since a broad swath of developers are already very familiar with the language? Meanwhile, today's hot new, programming fad might receive lots of searches, because it's "all the buzz" today? This seems possible to me, anyway.

But there's another, more mathematical approach we can apply here. Let's use a snippet of TIOBE's own approach, and combine it with some other data, and see what the numbers say.

Below is the Google Trends plot of "interest over time" in Java programming:

According to this plot, "interest in Java" was at a peak perhaps in 2004 (but we don't see the data from before then), and today the level of interest is about 28% as high as it was then.

But, what does this really mean? Google Trends rates search topics on the basis of the proportion of searches for that term amid all searches. So, what this plot is actually telling us is that the proportion of Google searches for "Java programming" today is about 1/3 of what it was in 2004. Again, the reason I stated above might be part of this.

It's important too, though, that "interest" in the term "Java programming" has held quite constant since 2009. And here's where things get even more "interesting"... The table below shows the annual total number of Google searches, according to the site Statistic Brain:

                                       
YearTotal Google
Searches (billions)
20132,162
20121,874
20111,722
20101,325
2009954
2008637
2007438

Now, the Google Trends plot really tells us the level of "interest in Java programming" relative to the level of "interest" in all topics. Relative to all searches on Google, "Java programming" occupies a smaller proportion than was the case in 2004.

But, if we use the table above to convert this "proportional interest" data into a scale that represents the total number of actual searches for "Java programming," we get something like this:

                                                       
YearTotal Google
Searches (billions)
Relative Interest in
'Java programming'
Total Interest in
'Java programming'
20132,16228138
20121,87430128
20111,72230118
20101,3252988
20099542963
20086372942
20074383434

Here, what I've done is use 2007 as a basis, and computed the "Total Interest" result by taking into account the growth of total Google searches in subsequent years. This shows us that, on a nominal basis, searches for "Java programming" on Google more thanquadrupled between 2007 and 2013!

Rather than Java being a language that's enduring a long, slow decline (as you might think from pulling up the TIOBE most popular languages plot), worldwide interest in Java is actually surging!

Now, can we finally lay that "Java is dead" trope to rest???


Subscriptions and Archives: You can subscribe to this blog using the java.net Editor's Blog Feed. You can also subscribe to the Java Today RSS feedand the java.net blogs feed. To follow Java.net net on Twitter, follow @javanetbuzz.

-- Kevin Farnham (@kevin_farnham)