In the May edition of the TIOBE Index, a new programming language makes an appearance at the very bottom of the top 20: Scala.
“Scala is a functional programming language that runs on Java’s JVM and thus can be used together with Java or as a substitute for Java,” reads the note accompanying the new ranking update. “Since it is functional, it is less verbose and it is harder to make mistakes if compared to Java.”
This latest update also reveals an interesting Achilles’ Heel in TIOBE’s methodology. In order to create its programming-language rankings, TIOBE leverages data from a variety of aggregators and search engines, including Google, Wikipedia, YouTube, and Amazon. For a language to rank, it must be Turing complete, have its own Wikipedia entry, and earn more than 5,000 hits for +”<language> programming” on Google.
But this month, Google apparently tweaked its search algorithms, jumbling TIOBE’s rankings in the process. “Apart from Scala’s entrance in the top 20 we see a lot of other huge ups and downs. This has to do with Google re-indexing, which is quite volatile,” the update continued. “For this we are going to implement compensation functions for the TIOBE index in the near future because we can’t accept that Google hits are only half of the number in comparison to the previous month.”
This indexing issue might call into question the accuracy of TIOBE’s rankings for months to come. But whatever the final outcome, it’s unlikely to shift the prominence of the top languages on the list, which include Java, C, C++, Python, and C#; these languages dominate the rankings released by other companies and analyst firms, all of which utilize different methodologies.
Which languages experienced these “huge ups and downs”? Delphi/Object Pascal enjoyed a jump from 18th to 12th place, and the aforementioned Scala went from 31st to 20th. However, Assembly language dipped from 8th to 13th, and Perl imploded from 10th to 18th. But such shifts should be taken with the proverbial grain of salt until TIOBE can readjust its metrics.