C# Overtaking Java in Popularity Index
"The gap between C# and Java never has been so small," says the latest edition of the TIOBE Index of programming language popularity. "Currently, the difference is only 1.2 percent, and if the trends remain this way, C# will surpass Java in about 2 month's time."
The TIOBE Index tracks programming language popularity on a monthly basis, using a methodology that takes into account several sources including the number of skilled engineers worldwide, courses and third party vendors for languages, while also enlisting popular search engines for data to calculate the ratings.
The decades-long length of the project lets it track long-term historical trends, and the latest one identified by Paul Jansen, CEO of TIOBE Software, sees the ascent of C# at the expense of Java -- with Oracle and Kotlin being major factors in Java's decline.
"Java shows the largest decline of -3.92 percent and C# the largest gain of +3.29 percent of all programming languages (annually)," Jansen said. "The two languages have always been used in similar domains and thus have been competitors for more than 2 decades now. Java's decline in popularity is mainly caused by Oracle's decision to introduce a paid license model after Java 8."
Microsoft, however, even though it was widely known as a proprietary, closed-off monolith in the tech scene, went in a different direction with C# as the company became more open. It embraced the open source community and removed the usage requirement for C# that allowed it to be used only in the commercial Visual Studio IDE.
"Nowadays, C# is free and open source and it's embraced by many developers," Jansen continued. "There are also other reasons for Java's decline. First of all, the Java language definition has not changed much the past few years and Kotlin, its fully compatible direct competitor, is easier to use and free of charge."
Here's the long-range downward trajectory of Java:
And here's the long-range upward trajectory of C#:
TIOBE said its index is not about the best programming language or the language in which most lines of code have been written, but rather a measure of popularity that can be used to check whether a developer's programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system.
David Ramel is an editor and writer for Converge360.