Measuring the popularity of programming languages is never going to be simple. We often see the results of surveys that have been conducted by various companies or organisations that seem to include headline-grabbing conclusions. Of course, as the famous saying goes, “There are lies, damn lies and statistics”. The same applies to surveys. Results can be skewed in any direction merely by asking the right questions or surveying the right audience. The number of respondents will also determine whether a survey has any statistical significance (in the true meaning of the term). A survey asking about programming language use with 60 respondents, all of whom work for banks in London isn’t going to give you a clear picture of global usage across all applications.
An alternative approach is used by TIOBE (a software company whose name is an acronym for The Importance Of Being Ernest). They use a variety of search engines to look for pages that reference each language. This eliminates the bias of respondents in a survey and gives a different measure of popularity, at least from the point of view of web page creation. To avoid skewing the results because of search engine algorithms, TIOBE uses 25 search engines.
Significantly, the results for November 2020 show that, for the first time in twenty years, Java is no longer either first or second in the list. Python’s popularity has grown, and it is now number two behind C; Java has dropped to third place.
This got me wondering about how important this is.
I’ve always held that the Highlander Principle (which states, “There can be only one!”) does not apply to programming languages. Different types of applications solve different types of problem and benefit from different approaches and languages. C is an excellent programming language for systems development (operating systems, compiler, etc.) but would not be my first choice for writing a web front-end. No language, no matter how good it might seem, is going to be the best for all circumstances. A lot also comes down to a developer’s personal choice: some people prefer Kotlin over Java, some people prefer Java over Groovy. Although Java is a wonderful language, the real value of the platform is the JVM, and many languages (including Jython) can be compiled into bytecodes and take advantage of this managed runtime.
Looking at the index results, the top three are the only ones that score above 10%. Python’s been in a solid third position for some time and improving, so this change was probably inevitable. I suspect that it will be some time before the languages in the top three change, it’ll just be which position they hold.
Should we be disappointed that Java is now third? No, I think we should be happy that we, as developers, have such a wide variety of languages to choose from and so many that will compile to bytecodes.