You might have seen that over recent days the TIOBE index website has published their March 2020 status focusing on Delphi’s demise -- after it went one position down since last year -- and a few other web sites have mentioned it.
TIOBE analysis includes some factually incorrect statements. They state “An extra indication of Delphi's fall is the frequency of its releases. Delphi had at least one major release per year since 2001. However, the latest Delphi release is from 2018.” Now the last release 10.3.3 was done in November 2019, just 4 months ago, and it included major features (like Android 64 support for Delphi). Also, Visual Studio has a major release every 2 years and no one seems to object.
Major release in RAD Studio cycles indicate a breaking ABI change, ie you cannot use DCUs or packages built with one major release with another. We have been focusing on keeping this frequency down, which is why the last ABI change was in late 2018 - a great benefit to our customers, even more if they use many third party components and libraries.
In general, TIOBE is known for emphatic titles (or click-bait titles), like :
- "Last gasp attempt for Visual Basic to score" (Feb 2018)
- "Perl is victim of the Python's hype" (July 2019)
- “Delphi is on its way out” (May 2009), this one is particularly interesting, as it was more than 10 years ago
No one is claiming that Delphi today is as popular as it was in the late 90ies, but developers and journalists reporting on development tools should probably spend a little time assessing the value of this index before basing any judgement on it. I have been critical even when Delphi was rising in their charts.
If we think about Delphi and Pascal language ratings specifically, there are some strange decisions to consider:
- Object Pascal is part of the Delphi search (formally they combine “Delphi, Delphi.NET, DwScript, Object Pascal, and Pascal”). But their criteria is to take the maximum of these searches, rather than combining them somehow: “Currently the maximum of the hits of the individual languages is taken into account when calculating the ratings of groupings”. So why the grouping?
- Delphi is assigned a confidence of 95% for the Pascal search -- that means only 5% remains for Pascal itself. Pascal went out of the index when they made this change (from position 15 in year 2015 to position 232 in year 2020)
But beside Delphi, the logic behind the index leaves much to desire. The key criteria is to calculate the hits for web searches with the query "<language> programming". This causes a penalty for languages with a distinct name, compared to languages where the term “language” is almost part of the definition like C, for example. I keep wondering if this is the reason TIOBE ranking for JavaScript is so low, considering its huge popularity (JavaScript is currently at position 7, behind for example Visual Basic .NET -- this seems totally illogical).
So I tried this experiment. I searched for “C programming” (with US configuration, as results depends on location) and I got “about 702,000,000 results”, while “Pascal programming” gives “about 123,000,000 results” but C is 2nd language for TIOBE with 16% rating while Pascal is at position 232 because some of its hits are part of Delphi at position 20 with a rating of 0.71% (and it should include Pascal). Also “Assembly programming” gives “about 159,000,000 results” (just slightly over Pascal) but it is at position 12 with 1,25%. Does this make any sense?
If this criteria was reasonable -- and counting web hits to assess popularity is highly debatable -- it still seems to be applied in a strange way. But the real point, counting web pages after Google various filtering mechanisms is illogical and they query “language programming” is artificial to say the least.
Google Trends, for example, tracks searches for a programming language and logically separate searches for the language and other uses of the same name (like the city in Greece, in case of Delphi). This seems a way more accurate way to gauge popularity, in my humble opinion. Now in Google Trends Delphi is far behind today’s most used programming languages like Java or javaScript -- this is a fact no one disputes. But there is no drop in search trends over recent years are not significant. This is a graph of the search term “Delphi programming” over the last 5 years:
This data shows changes in Delphi searches with 100 representing the highest peak for the period. So with some peaks and ups and downs Delphi searches are slightly trending down but there is still clearly a large developers community using the product and searching for information about it, which is reassuring. I think people searching is a more honest indication than counting web pages, and I’m not pointing this out because Delphi fares particularly well here in comparison with other languages (spoiler, if you try to compare with popular languages, it is fairly low, but if you compare to similar products it does OK). Still, alternative ranking indexes searching for ‘language tutorials’ in Google Trends are only partially better -- as that focuses on beginners and students more than developers.
Automatically assessing the popularity of a programming language on public Internet data is far from simple, and other criteria (GitHub projects or StackOverflow questions) can also be taken into account, but each of them ends up favoring specific languages that students or open source developers use more. Measuring professional level development is more complex, and assessing COBOL’s role today, for example, would be hard. I’m sure most criteria largely underrepresented it!
PS. Read also Jim's comment on the same topic, The Trouble of Measuring Programming Language Popularity.