Java

Why Java and C++ developers should sleep well at night

The latest rankings of programming languages show a landscape that’s increasingly fragmented, but still dominated by the old guard

Guy sleeping under his desk

Must be a Java developer.

Credit: flickr/Adam Goode

Java

Show More

Last week TIOBE released its monthly ranking of computer programming languages for September 2014 under a headline which might keep some developers up at night, "Java and C++ at all time low." Their TIOBE scores, which measure that language’s share of web searches for programming languages across a number of search engines, were indeed at all time lows. Java’s share of search results was 14% this month, which continues a steady decline since its high of 26.5% in June, 2001. Similarly, C++’s share of web searches was 4.7% this month, down from its all time high of 17.5% in August, 2003.

As the TIOBE team wrote, this is not to say that either Java or C++ have lost its dominant position in the programming world. Both are still highly ranked on the index (numbers 2 and 4, respectively, this month) as they have been for years. Rather, TIOBE theorizes that this loss of search market share reflects the growing fragmentation of the programming language universe. Part of that, they suggest, is due to the growth of other, often more niche languages for specific industries, such as R, which have eroded some of the demand for the more all purpose languages. 

Since TIOBE's results are just one way to measure language popularity, I thought I would take a closer look at how Java and C++ have really been fairing using some of the other measures available.

The Popularity of Programming Language (PYPL) Index also ranks programming languages monthly based on web searches, but, more specifically, it looks at Google searches for tutorials about a language, rather than just any search for a language name. Java is still the number one language there, as it has been since 2004, with a 27% share, up slightly from 2013. C++ is #5 on the PYPL list, same as it was last year, though with a smaller share, 8.8%. Over time, C++ is losing ground in this measure; in 2004 it was #3 behind Java and PHP, but has been surpassed by Python and C#. It seems that C++ is losing some ground to C#.

The RedMonk programming language index, released semi-annually, takes a different approach: it looks at a combination of GitHub data (raw lines of code) and Stack Exchange popularity (by number of tags). In the most recent rankings, from June, Java and JavaScript were tied at #1. C++ is tied with Ruby at #6 (PHP, Python and C# are #3, 4 and 5). The RedMonk index has only been around for three years, and things haven’t changed much at the top of the list. Some of the more niche languages, however, are showing strong growth in this measure. R has shown gains in the last four rankings, driven mainly by growth in GitHub activity, and is currently ranked #13 (it’s 21 on TIOBE, not ranked by PYPL). Go is also on the way up, currently at #21 on Redmonk (#38 on TIOBE) and is expected to crack the top 20 soon.

Finally, I looked at data presented by GitHut, which provides quarterly rankings and trends going back to Q2 2012 based on GitHub Archive data. For Q2 2014, Java was #2, behind JavaScript, in terms of the number of active repositories; it was #3 two years earlier (Ruby was #2). As a percentage of the total repositories, Java’s share has grown slightly since 2012, from 9.1% to 9.8%. C++ growth on GitHub has been a little flatter than Java’s. It remains at #7 in terms of active repos, just where it was 2 years earlier while its share of total repos has remained about the same (3.9%). Languages showing real growth on GitHub recently have, again, been R (.3% of repos in Q4 2013, 1.8% in Q2 2014) and Go (.4% in Q1 2013, .86% in the most recent quarter).

Together, all of these findings, more or less, back up what the TIOBE team suggested:

  • Java remains one of the most dominant languages in use and there’s no evidence that its in decline relative to other languages.

  • C++ also remains solidly in the top tier of languages, though there is some evidence that other languages, such as C#, have made gains at its expense.

  • While the top programming languages remain fairly static, the overall universe continues to fragment, with the dominant languages, as a group, losing share to smaller, sometimes more niche languages, such as R and Go.

Anyway, all of this implies that you should sleep well tonight, Java and C++ developers.

Read more of Phil Johnson's #Tech blog and follow the latest IT news at ITworld. Follow Phil on Twitter at @itwphiljohnson. For the latest IT news, analysis and how-tos, follow ITworld on Twitter and Facebook.

ITWorld DealPost: The best in tech deals and discounts.
Shop Tech Products at Amazon