Monday, February 27, 2017

Delphi Programming Index

Delphi celebrated its 22nd anniversary on February 14th and since it was Valentine's Day, people had some fun with #ILoveDelphi and some blog posts about their personal history with Delphi. Embarcadero even has a Delphi T-shirt design contest going on, which seems like a fairly reasonable, if geeky, thing to do.

I started using Delphi with version 1 in 1995 and have had the pleasure (for the most part) of working with every version that was released, up to and including Delphi 10.1 Berlin. It wasn't my first programming language and it's not the only one I use today, but unless there is a good reason to do otherwise, it's still my first choice for new projects.

I've said it before and I'll say it again: I am an unapologetic Delphi fan.

Of course, whenever there is some kind of Delphi news or milestone, the topic of the TIOBE Index eventually comes up. This is a ranked list of programming languages that is updated monthly.

Objectively, TIOBE counts search results for a given phrase and uses the results to rank programming languages. The phrase is simply +"<language> programming" for each language that they track. For example, +"Delphi Programming".

Subjectively, on the other hand, people, including TIOBE themselves, read their own interpretations into the results. These range from it being the definitive measure of programming language popularity to it being a completely meaningless exercise. It's even been pointed out that the system could conceivably be gamed, making it suspect. If you can convince enough people to include the phrase "DELPHI PROGRAMMING" or "OBJECT PASCAL PROGRAMMING" in blog posts, it might influence the results. See what I did there? :)

In any case, TIOBE is measuring something, and while their methods have evolved over time, they try to be consistent, and publish their methodology and at least some historical data. You have to go spelunking for the rest, though.

This sounds like an opportunity for a little bit of data visualisation...

One of my pet peeves with TIOBE is that they started reporting Delphi and Pascal separately in 2004, which I think understated both of them. Eric Grange published what he called an unofficial Fixed TIOBE Index that re-combined the Delphi and Pascal results, but it wasn't until 2016 when Craig Chapman convinced TIOBE of the error of their ways that the mistake (that's right, it was a mistake) was fixed officially. Well, not completely fixed because of things like 5% of Pascal results and Pascal dialects like Oxygene still being reported separately, but it was a step in the right direction.

It might be interesting to see the impact of these differences and show what I believe is a more correct history of Delphi and Object Pascal in TIOBE. I can't imagine that being controversial. (/s)

Correction: According to their index definition, Delphi/Object Pascal is defined as follows:

  • Delphi
  • Delphi.NET
  • DwScript
  • Object Pascal
  • Pascal (confidence: 95%)

As it turns out, TIOBE doesn't do any kind of blending. They simply use whichever one has the highest count and discard the rest. I confirmed this with TIOBE, which means that they are still under-reporting Delphi. And any language with multiple definitions, really.

So, in my opinion, even if you think TIOBE's reporting is meaningful, the combined numbers most accurately reflect Delphi's rankings.

Looking at ratings, the differences aren't very dramatic, but the raw rating numbers only tell part of the story.

A small difference in rating can have a larger impact on a language's position in the list.

The positions give a more complete picture.

Reported individually, Pascal and Delphi positions show some bizarre fluctuations from month to month. For example, in three consecutive months in 2014/2015, Delphi went from 16 to 20 to 11, which seems a little unlikely. I believe that this is because Delphi hits were being reported as Pascal and vice versa. When the results are combined, changes are smoother and, I think, more reasonable. Unfortunately, the Pascal numbers are no longer reported independently, so it isn't easy to make these same corrections after 2016.

Since July of 2001, which seems to be as far back as TIOBE reports, Delphi has been in the top 10 about two thirds of the time.

Not too shabby. If you put any stock in this kind of thing.

I'm not sure if the TIOBE index is a meaningful or complete indicator of how popular programming languages are, but it is interesting.

Update: Updated charts to reflect up to May, 2018.

No comments: