I gave Delphi a shot, but after setting up my account I got a few phone calls a few days later about it to sell me on it. I was genuinely surprised companies still did that in 2024/2025.
A lot of the software I really admired in the early 2000s was developed by single persons using Delphi. It seems to me like there is (was?) something promoted by a Delphi environment that is rare to find elsewhere, that lets people (a) quickly prototype cool stuff, and then (b) sustainably grow it into a mature product as it gains users. I wish I cared enough to learn it, but there's so much else I need to learn first!
As a kid I remember I was lost in all that OOP, window handles and stuff, and could never do anything. Delphi was like assembling Lego. Very similar to QtCreator.
I keep a Windows VM for one app that is a commercial Delphi program for embroidery editing. It's been around for 30 years and is on the path to getting cross platform support soon with recent GUI revisions. Always been pretty solid for a product from a small team.
The GUI builder was more powerful than the one provided by VS, from what I remember (20+ years ago since I've dabbled in it). I really miss that era. In certain circles you could open an application and almost get a sense as to who built it due to the craftsmanship / UI / attention to detail in the placement of the elements in the application, etc.
Perhaps a better way to look at it would be to say that Visual Studio had a resource editor UI, basically a frontend to a resource file - that's it.
In contrast, Delphi provided you all the UI code by default, so even if you did not write a single line of code, your program ran and displayed a window or dialog with all the UI elements you could interact with. This was a higher level abstraction (one could argue VS did not even have an abstraction - you still had to code your window procedure from scratch. MFC was the first real attempt at simplifying UI code, but you still had to write code...).
But it did not stop here: it was trivially easy to add a database "connection" to your app (IIRC it was represented by a UI element that was not actually displayed), just provide the connection parameters, connect it to a complex UI element like a table, and voila - you had a live database view within 5 minutes.
I noticed this as well in the 2000s. Stuff like WinHex which I was pretty sure then was written using Delphi. Was into RE during those days, so I used to poke around the internals of software just for fun
My favourite Delphi program, and the one I learned to program with, was Dev-C++ (https://sourceforge.net/projects/dev-cpp). AFAIK there is a more recent fork, but I also clearly recall the 4.9.9.? versoin number from back then. It was very fast (including startup). I enjoyed it a lot back when I was still on Windows. Funny that Delphi was used to create a C/C++ IDE.
Last time I tried Delphi Community Edition, I had to give them my email just to download it, then when I tried any of the templates the IDE showed, it wouldn't build at all, don't show me a template if it doesn't work.
I received an email from someone asking how I was liking Delphi, I naively responded with my issue, but quickly realized he was just trying to sell Delphi. I would have bought Delphi over the years if they had a personal license for $99 or something, I am not investing thousands of dollars on a software where the free trial blows up out of the box (not intentionally it seemed).
I would have bought something like Turbo Pascal today. The minute they did away with Turbo Pascal I feel like they basically marked themselves as a legacy only company, I don't know anyone who is using them for net new projects that wasn't already all in on Delphi, you don't see new startups using them anyway. Had they kept Turbo Pascal, I do wonder how much more prevalent they could have been compared to now. It's still a solid way to make a native GUI.
I could have sure, but it was for an account, and I can always unsubscribe or ignore them, doesn't phase me, I have like 20 gmail accounts that are old enough to vote, drink, and who knows what else
Self-learning programming in the 90's went from DOS batch files => MS Basic => Turbo Pascal then Delphi 1. Out of all of those I had the best success understanding what I was doing in Delphi.
Lazarus does not support BPL. Android and iOS support are under question. Free Pascal devs for many years did not look into Ada, and looked into C++ more, and that made Free Pascal ugly. Delphi did not look into Ada either, but they looked into .NET instead, and that made Delphi not as great, but better than Free Pascal. Anything is better than C++. Delphi delivered controlled types, that was IIRC for many years in top 10 feature requests on Quality Central, until QC was purged. They call it "managed records".
Delphi has got inline const syntax. They talk about inline var, but from my Ada programming experience inline const is the real game changer. When there was only local variable block, some stuff was assigned inside loop. This stuff was assigned once per iteration, but since variable is declared outside the loop, it is considered variable. Now, when inside loop, it can be assigned once and made read-only. I have some doubts that Free Pascal is up-to-date with these changes.
Hi-DPI. Did not test, but questionable that Free Pascal got it right.
The IDE experience, they are the ones driving the language evolution, FreePascal follows, and the industry that cares about Object Pascal, usually only cares because of Delphi.
Don't get me wrong, FreePascal is great, but it hardly has a presence at big corporations.
If they no longer use Delphi, means they have long moved into either Java or .NET.
I used briefly some 8 years ago, it is very good for getting full-native (including native UI toolkit) cross-platform desktop apps. It can build self contained binaries that just work.
My use-case was building a simple USB-stick-portable application for windows and it was great for that.
Over the past year, I've replaced quite a few of my Tcl/Tk GUI apps with versions built in Lazarus. Lazarus 3.x was a bit quirky for my tastes, but 4.x has been very good.
It's not quite the Delphi experience, but it's close enough that I could see myself using Lazarus for day-to-day development and being fairly productive with it.
I haven't heard of Delphi in ages. Where I grew up, I was the first generation to start high school with C++ as opposed to the previous ones who were stuck with Pascal. I believe I did some in university, but not much. Anyway, I am amused to find this news on HN. I spent some of the past 24 hours reading through — and trying to draw some conclusions out of — the Go vs Rust sword fights in https://news.ycombinator.com/item?id=49261133 and https://news.ycombinator.com/item?id=47222270 Mad respect for these guys not giving a funk.
So much has changed. I remember driving past the Borland HQ in Scotts Valley every day on my way to work. Delphi was so cool back then with the object oriented pascal.
Recently dabbled in zig because I, like many people, want a "better C" that solves many of the footguns that C has (ex: null terminated strings, lack of integer overflow trapping, slightly higher level data structures) without all the complexity footguns of C++. But concluded its a miss too, I don't want all the dogma around packages, and symbol soup seemingly selected to be different than C. I largely want a "compiler" not a language ecosystem. Zig is seemingly forever going to suffer from chasing purpose built libraries. Aka, why bother with a zig formatter, or crypto when the first thing anyone is going to want to do is swap in openSSL/etc because its dynamically/runtime tuned for its target platform and contains that odd crypto code it turns out you need for pkcs11/whatever.
And the realization really is that Andrew Kelley's rant about go/rust/c, is answered by Pascal, which really is a "better C". Sure its verbose, but that I think is really a strong point in the end. Everyone has autocomplete editors and actually typing "begin end" instead of "{ }" is something your editor can be inserting automatically.
Also, calling windows API's was incredibly simple with delphi although almost unneeded, but the stdcall/cdecl decoration told the compiler to use C calling conventions instead of pascal.
After Pascal Niklaus Wirth designed Modula-2 and then Oberon which is even tidier. Oberon is both smaller and more capable than both of its predecessors.
Not sure if you mean Pascal or Delphi here. The Visual Component Library (VCL) was hands down the easiest way to build windows GUIs, no knowledge of the Win API required. But if you did need to do it, it really wasn't hard to do.
Even its precursors, on MS-DOS (Turbo Vision), and first Windows attempt (Object Windows Library with TPW), were great productivity tools.
Also I am the opinion Microsoft has never done nothing in C++, despite the Visual prefix, that could actually match either OWL, VCL or Firemonkey on C++ Builder, which shares most of Delphi tooling.
Pascal was comparably clean, but Delphi library is quite messy. SysUtils is about local time, exceptions, floating number formatting and OS error handling. SyncObjs are about synchronization which is very good. But TThread resides in Classes, together with streams, serialization, base components, lists and other containers. Rapidly created form controllers are implementation of god object anti-pattern.
> And calling win API was a horror
This is not easy matter in any language. And I called Android API from Delphi. Still quite an adventure
Will you happily pay for Ada IDE? Another part of your proposal is already true. Ada has free compiler and libraries. Paid IDE is all that remains, that's how things work, right?
I'm an outsider, although I've heard cool things about Delphi. So, trying to find examples of what this looks like, I was naturally interested in the "Cool Apps" section. But my biggest surprise was that Beyond Compare was listed in there. I see that thing in a lot of Windows .NET shops, I always figured it was .NET-based (I guess I confused association with dependency?)
I have used Beyond Compare for 20 years, and as far as I know, it has always been and still is written in Delphi. Quest Software, maker of TOAD for Oracle was also a big Delphi shop for many years. Not sure if they still are.
Nope, here you can still buy developers magazines.
Entwickler, .NET, Java aktuelle, Maker, Retrogammer can still be found on newstands, what happens is that not all of them have all magazines available.
You can get them delivered to your address anyway.
Delphi.NET was a side project so to speak, and was mostly done under contract by RemObjects, which kept selling their compiler when Embarcadero decided to focus on native only.
Delphi.NET was so much central project that 8 only supported .NET. Nothing else was ever needed as it seemed. Delphi.NET was 8, 2005, 2006 and 2007, then dropped. It was hosted in common RAD IDE and language was close match.
Delphi Prism was bundled somewhere between 2009 and XE2, a 3rd party product, hosted in Visual Studio IDE and language was resembling, but not quite. Enough divergence to not make it possible sharing source text with native Delphi.
(I work at RemObjects) - we've been working hard on reducing convergence recently, that is, still supporting our own Oxygene Pascal syntax but also accepting other variants of Pascal. We want it to be possible for someone to have a common source file as you suggest, much the same as you can with Delphi and FPC. It is possible today; we are working on the really esoteric syntax.
Our 'Delphi Island' support also allows linking to BPLs.
And we have our own IDE (for multiple platforms), as well as living inside VS.
Unfortunately, if you intend on using Delphi, that will be $1200 plus $399 a year for the basic commercial license, and if you also intend on using databases, that will be $4600 plus $1399 a year. Or, you could use .NET, which is $0, and overwhelmingly better supported at this point.
Embarcadero is milking a shrinking captive market, VMWare style. It makes perfect financial sense given the asset, but it's unfortunate for those of us with happy memories of Delphi 6 and 7.
You don't have to use their premium database components. Just use something else as client-library.
I'm also not a fan of yearly payments. But with a $1200 license you usually get access to all old versions - including Delphi 7. After Delphi 6/7 at least Version 11/12 were usable for 64-bit. So I think at least once every other decade it is ok to get a usable 64-bit version of Delphi.
One can legally use Community Edition until income hits some limit. Paid edition can be bought and just used without updates.
> use .NET, which is $0
But tracing garbage collection needs 5x more available RAM than used RAM. Native conservative applications introduce memory fragmentation, estimated as 2:1 available:used. That gives 2.5x smaller memory footprint of native apps, and RAM prices matter lately.
In contrast, Delphi provided you all the UI code by default, so even if you did not write a single line of code, your program ran and displayed a window or dialog with all the UI elements you could interact with. This was a higher level abstraction (one could argue VS did not even have an abstraction - you still had to code your window procedure from scratch. MFC was the first real attempt at simplifying UI code, but you still had to write code...).
But it did not stop here: it was trivially easy to add a database "connection" to your app (IIRC it was represented by a UI element that was not actually displayed), just provide the connection parameters, connect it to a complex UI element like a table, and voila - you had a live database view within 5 minutes.
Dev Pascal was also a dead end.
I received an email from someone asking how I was liking Delphi, I naively responded with my issue, but quickly realized he was just trying to sell Delphi. I would have bought Delphi over the years if they had a personal license for $99 or something, I am not investing thousands of dollars on a software where the free trial blows up out of the box (not intentionally it seemed).
Delphi's predecessor if not Delphi itself was $99 (Turbo Pascal).
But why? Just throw some garbage - a temporary email - at them if they so insist.
Also Delphi 1 had the coolest installer graphics.
Delphi has got inline const syntax. They talk about inline var, but from my Ada programming experience inline const is the real game changer. When there was only local variable block, some stuff was assigned inside loop. This stuff was assigned once per iteration, but since variable is declared outside the loop, it is considered variable. Now, when inside loop, it can be assigned once and made read-only. I have some doubts that Free Pascal is up-to-date with these changes.
Hi-DPI. Did not test, but questionable that Free Pascal got it right.
It's wonderful for reading ten years later and figuring things out.
Don't get me wrong, FreePascal is great, but it hardly has a presence at big corporations.
If they no longer use Delphi, means they have long moved into either Java or .NET.
My use-case was building a simple USB-stick-portable application for windows and it was great for that.
https://youtu.be/4vcA7yJMoPg
It's not quite the Delphi experience, but it's close enough that I could see myself using Lazarus for day-to-day development and being fairly productive with it.
I kinda miss Borland
And the realization really is that Andrew Kelley's rant about go/rust/c, is answered by Pascal, which really is a "better C". Sure its verbose, but that I think is really a strong point in the end. Everyone has autocomplete editors and actually typing "begin end" instead of "{ }" is something your editor can be inserting automatically.
Also, calling windows API's was incredibly simple with delphi although almost unneeded, but the stdcall/cdecl decoration told the compiler to use C calling conventions instead of pascal.
https://miasap.se/obnc/oberon-report.html
Also I am the opinion Microsoft has never done nothing in C++, despite the Visual prefix, that could actually match either OWL, VCL or Firemonkey on C++ Builder, which shares most of Delphi tooling.
Doesn't get more verbose than that.
> And calling win API was a horror
This is not easy matter in any language. And I called Android API from Delphi. Still quite an adventure
Charge people for the IDE - everyone seems to hate paying for languages but be quite happy to pay for IDEs.
https://blogs.embarcadero.com/beyond-compare/
Surely it's online? Such magazine still being in issue would be equally surprising to me.
Entwickler, .NET, Java aktuelle, Maker, Retrogammer can still be found on newstands, what happens is that not all of them have all magazines available.
You can get them delivered to your address anyway.
Here, https://www.presseplus.de/Dotnetpro-Abo
https://www.remobjects.com
Delphi Prism was bundled somewhere between 2009 and XE2, a 3rd party product, hosted in Visual Studio IDE and language was resembling, but not quite. Enough divergence to not make it possible sharing source text with native Delphi.
Our 'Delphi Island' support also allows linking to BPLs.
And we have our own IDE (for multiple platforms), as well as living inside VS.
Embarcadero is milking a shrinking captive market, VMWare style. It makes perfect financial sense given the asset, but it's unfortunate for those of us with happy memories of Delphi 6 and 7.
I'm also not a fan of yearly payments. But with a $1200 license you usually get access to all old versions - including Delphi 7. After Delphi 6/7 at least Version 11/12 were usable for 64-bit. So I think at least once every other decade it is ok to get a usable 64-bit version of Delphi.
> use .NET, which is $0
But tracing garbage collection needs 5x more available RAM than used RAM. Native conservative applications introduce memory fragmentation, estimated as 2:1 available:used. That gives 2.5x smaller memory footprint of native apps, and RAM prices matter lately.
> ... native Delphi apps for Windows, macOS, iOS, and Android.
In early 2000s there was Borland Kylix for Linux. Thus today (25 years later), if I'd use Object Pascal, then with Lazarus.
https://entwickler-konferenz.de/en/
Yes there is a community version for C++ Builder as well.