aaa the good old Pascal, the second programing language I learned after Basic. I remember how frightened I was holding a Pascal intro book I just got from the library and thinking “this is so different, I won’t be able to get it, why am I making my self do this?”. It turned out it was just my anxiety on seeing Pascal syntax for the first time. Pascal morphed into Turbo Pascal and then in 1995 first version of Delphi came out.
It was a revolution, now you could quickly make desktop apps using Turbo Pascal and all came neatly packaged in the WYSIWYG programming environment. The first major upgrade to Delphi came in 1997 with Delphi 3 and 5 but the one and only Delphi is Delphi 7 released in 2002. It’s been all downhill from there for Delphi.
After Delphi 7. Borland went all-in with .NET technology which is fine but not what Delphi users were expecting as now there was no way to create truly native applications with Win32 API/x86 code and that pissed off many people including me.
When .NET arrived, Delphi VCL developers scratched their heads and said: Errr, this is what we've had with the VCL all along...? (in fact, the VCL and .NET were devised by the same person Anders Hejlsberg)
The ability to ship one executable without any additional libraries, files, or requirements was to me then very important, and at that time trying to explain to customers that they need to install something else before running the app was a deal breaker and kind of still is. The complexity of today’s apps is staggering when looking back. To create a web app from scratch you need to know some server side programing language (Ruby, PHP, etc), frontend HTML, styling with CSS, functionality with JavaScript, and that’s without any frameworks or containers or libraries thrown in the mix, each with its own logic.
What I also liked about Delphi when it came out was its almost drag and drop interface with databases. Plug in a component to your form, point it to the database, and drag and drop database fields on the form. You could make data entry software in minutes. That’s the R in the Rapid application development (RAD) approach.
Even today, if you want to create a quick App for windows there is no reason not to use Delphi. In 2018, 4 years after the Visual Studio Community edition, Delphi Community Edition was released and until today I did not know it existed, so much about advertising. Delphi has changed in the last decade, it got support for different hardware so you can create one app and cross deploy it to Windows, macOS, Android, and iOS applications with a single codebase. This is very powerful but not many know about it.
So why is Delphi not popular anymore? Well, it still is but Borland and later Embarcadero were somewhat overconfident in the quality of Delphi releases after the 2000s and started to raise the price considerably, essentially making it inaccessible for anyone but larger companies. That didn’t work well, and without the support of the community, it became irrelevant. Microsoft made C# to compete directly with Delphi and Sun released Java. Both were promoted all over the place at the same time when Delphi was getting a price increase. When Borland tried to reverse that, it was too late, many have moved to C#, or as the trend was and still is to some form of full-stack web development leaving the native desktops apps for online apps.
Delphi remains popular among developers who still appreciate the combination of rapid development and a native code compiler, like me. But, there are many more options today, not least the open source Lazarus project which has substantial compatibility with Delphi and has supported Linux desktop development for years. And the best part is that it’s based on Delphi 7 GUI which in my opinion is the best development GUI I’ve worked in. I do realize that having everything in one window like VS Code is the norm today but the ability to move arbitrarily windows around is something I like. I do miss the MiniMap feature.
Lazarus is actively developed and in 2022 version 2.2 of Lazarus was released with the release log being a mile long.
While looking at my old projects I found one that looks promising for modernization. I call it WindowsControl (WindowsLocker). It is a app that lists all active windows and enables user to block all inputs to it, mouse or keyboard.
It was made in the era of WinAmp and was used at parties to block people from playing around with playlists. There was also version that could list all DLL that selected app is using, all components that are exposed to the system like text boxes (could show * passwords) and all network connections it established.
So stay tuned and subscribe.