Tuesday, February 28, 2017

Delphi for Linux. Revisited. Again.

I have been hoping for a long time that Embarcadero would reintroduce Linux support in Delphi, especially since they've added Mac, iOS and Android support in the mean time, hopefully working out (most of?) the kinks involved in cross platform support in the process. I may have even brought it up once or twice at live events.

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 geek 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)

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.

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: Added March 2017 data and fixed a mistake in the histogram.