Is it time to ditch the VCL?

I’ve seen this trend where AI lacks (compared with other languages) when you try to use it for Delphi (VCL). Probably not their fault. Probably because of lack of code on GitHub…. 😞 Initially, I thought it was only an impression, but later tests (for example, generating a full program with Replit in Delphi and then in other languages) turned an “impression” into a confirmation. FMX is out of the discussion. As Windows OS is losing market share, I hope that Embarcadero will focus on FMX. I understand that most paying customers have huge systems built only for Windows, but that will not last forever.

So, I’m trying to raise an alarm here with three points:

  1. We need more libraries/code on GitHub (etc.) to train the AI. I published some of my libraries on GitHub in the last two years; more to come. Now, the AI is already good at writing small web applications all by itself. If AI gets far superior at writing medium (and in the next 2-4 years even million SLOC sized) applications, Delphi will lose the battle. It’s a positive feedback loop: the better the AI gets at JS, C#, etc., the less Delphi code will be out there.
  2. We need tools like Replit or Copilot for VS that can better integrate with the IDE. I’m writing one, but I’m a beginner at OTA.
  3. We need to look more into the future, ditching the VCL for FMX (here Embarcadero has the last word). The switch to FMX should happen as soon as possible, but this is obviously hard since most Delphi users have really old code bases centered in VCL. Unfortunately, this is what will make the adoption of FMX close to impossible. For now, Embarcadero has to invest its resources in two places. Since the resources are so limited, one of the frameworks suffers. I’ve seen so many companies ditching Delphi for something else (because they needed cross-platform support) without even considering FMX. A company I worked with recently chose to keep its current Windows code in Delphi VCL, but for the cross-platform, they moved to C#. So, the code base is duplicated ANYWAY. Again, FMX was not deemed worthy (there was also a second reason that does not relate directly to this discussion: lack of trained Delphi programmers).
    As it is now (centered on VCL), Delphi will remain a successful developing platform for Windows. And the statement will remain valid for as long as Windows will be the king among the operating systems: OS Market Share Stats (the “king” lineage is in blue color).

OS market share 2009-2025

For the moment, the “king” lineage does not seem to decelerate its falling. It lost another (almost) 15% in the last 5 years. Another 5 years and Windows popularity will be comparable with Linux (ha ha). Looking at the “king” line, is anybody here that, with open mind and hand on his heart, feels like VCL should remain the high priority framework?

This post will hopefully remain here for many years. I’m sure it will come a day when we’ll look back and see that FMX had to become the main (if not the only) Delphi framework. I think if there will be “no more Windows,” all companies that are Windows-centric will have no choice but to move to FMX (or… Java/etc)… and this, maybe in less than 5 years! In the end, it’s not you, me, Delphi, or Microsoft that dictates this. It’s the number of customers you have left on the “king” platform.

I’m not saying all these about MS Windows as pejorative. I truly loved some of Windows versions. And I don’t want to buy two computers and switch constantly between Windows and Mac for my daily use. I would love to stay on Delphi/Windows. Also, note that I’m not a proponent of FMX. I don’t like it. But I need it. I already lost a battle where one of my products (VCL) was popular for many years on Windows, but then the customers (academia) moved to Mac and Linux. Back at that time, compared to VCL, FMX was limping behind (but I did some successful projects for Linux with FPC/Lazarus).

Addendum:

Somebody said on a forum:

If you need to generate larger chunks, then you don’t have to do that directly within the IDE. Also you can easily use some other editor, like VSCode

Am I asking for that much? Why should we be second-hand class citizens? Others have it in their editor. Why shouldn’t we? If I use VSCode instead of Delphi, why not switch to VSCode permanently? (joking) I’ve seen how people look at me when I tell them I work in Delphi. They ask me: “Does Delphi still have that thing with the VAR that needs to be declared separately?”

 

Leave a Comment

Scroll to Top