Can't believe Delphi is still actively maintained — and with features like this. Lost track of it years ago. Back in 2003 I wrote a university coursework in it; Pascal was my second language after BASIC. Might be time to take another look, especially with the multi-platform support.
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!
The RAD environment makes it insanely quick and easy to throw together a reasonably functional desktop app. Think WinForms on steroids. For all its age and the many cracks and seams, it's still very fast, easy for beginners and pros alike, and the final executable is a single tiny file (usually)
I really find it mind blowing nothing else from what I've seen has really replicated it. Qt does an alright job but everything just seems to take 50% more effort to get it do the same.
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.
Yeah, but on the other hand Microsoft also offered Visual Basic which was definitely easier to use. The code wasn't as fast, but it wasn't a snail as MS added a compile option (to p-code if I remember correctly) in version 4.0.
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.
Not only has MFC never been at the same level as OWL, unfortunately to this day other than the short lived C++/CX, they never shipped anything comparable to C++ Builder, which shares the RAD tooling with Delphi.
Even doing COM in Delphi/C++ Builder feels more ergonomic than any of Microsoft endless C++ frameworks for COM/WinRT.
Yeah, a lot of non-visual components still require (or want) you to drag-and-drop them in the builder and edit many or most properties there. It's a weird thing to adjust to, and it often leads to a very cluttered view if you have a lot of them. Conversely, a cluttered view with a ton of non-visual components can be a very easy-to-spot signal that you might be trying to do too much in one screen.
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.
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
Ran into this quite a bit while working on Wine, too. Start digging into a program's behavior to fix some Wine bug and, "oh, huh, it's another Delphi app."
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.
It is funny that while I learned about Dev-C++ during my university course but it was mostly considered a joke by anyone that used Linux (including myself). I think the issue was because it shipped with a really old version of GCC even at the time, so something that compiled on it had lots of issues running in the more recent GCCs that Linux/Ubuntu used (including the teacher for this particular course).
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.
There’s always FPC and Lazarus if you don’t want to mess with proprietary Embacadero stuff. It’s not 100% the same, but it’s a pretty good equivalent that uses the same programming language (Object Pascal), has a UI builder, and all that. It also supports more platforms and even embedded development.
It's 90's tech. Their business model is selling expensive subscriptions to keep legacy projects alive. I was at one of the conferences in my country and the average age of a developer was about 60.
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.
It improved a lot and it is good. On Linux I think the default way to go is still Lazarus. But with Delphi you can buy more shiny polished things on top. So for commercial use Delphi is more relevant. And there are enough differences in compatibility, so you most likely don't want to deal with both at the same time.
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.
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 can assure you that Turbo Pascal in Portugal was a bit more than that, because around 100 euros in today's money was the price with students discount.
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've used Lazarus, very dated and doesn't look and feel quite as polished, there's been a lot of modern IDE advancements and none of them have made their way to Lazarus.
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
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.
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?
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.
Yeah, it literally hearkens back to an era where "programs" were literally well-thought-out programs like you'd receive at a play - the cast list, the acts, the music, etc. COBOL on punchcards springs to mind here. Lots of organization. I don't hate it... but kinda like Java, it can be annoying to have to dot all the i's and cross all the t's to do such simple things.
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
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.
Delphi might still be decent, but Embarcadero is a fucking train wreck. That company's been Private-Equitied to hell and back. I was involved with them in a business capacity a bit back and it was an astonishingly poorly run company with some of the least competent upper leadership I've ever had the misfortune to come in contact with. It's a testament to how good Delphi was that it's still even marginally useable, because there damn sure hasn't been anyone competent at the helm for at least 20 years now.
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?)
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.
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.
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.
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.
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.
"Delphi 13 Community Edition brings the IDE forward from version 12.1 to the Florence release. Users gain access to new Delphi language features, and refreshed Android 15 and iOS 18 support."
It took all these years to have what should be in the box on .NET 1.0 instead of NGEN.
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.
Even doing COM in Delphi/C++ Builder feels more ergonomic than any of Microsoft endless C++ frameworks for COM/WinRT.
Dev Pascal was also a dead end.
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://github.com/ideasawakened/delphi-and-fpc-lazarus-comp...
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 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).
As owner of a few versions with student pricing.
What's stopping you? You can open your wallet to lazarus today, if you wanted.
But why? Just throw some garbage - a temporary email - at them if they so insist.
I kinda miss Borland
Charge people for the IDE - everyone seems to hate paying for languages but be quite happy to pay for IDEs.
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
Modula-2+, Modula-3, Oberon-2, Active Oberon, Zonnon
Just install "Chess VCL" component, drop it onto the form, compile, and you're ready to go!
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
Also Delphi 1 had the coolest installer graphics.
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.
https://www.embarcadero.com/starthere/seattle/mobdevsetup/io...
https://www.embarcadero.com/products/delphi/features/mobile
https://blogs.embarcadero.com/easily-create-web-apps-for-des...
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.
> 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.
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.
> ... 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.
Also, while trying to figure out the licensing restrictions on community edition:
> Can I install and use both Delphi CE or C++Builder CE together on the same machine? > No. Only one or the other can be installed.
What?! It appears to be a technical limitation rather than a license one since the paid version has the same issue, but like, come on!
https://entwickler-konferenz.de/en/
Yes there is a community version for C++ Builder as well.
"Delphi 13 Community Edition brings the IDE forward from version 12.1 to the Florence release. Users gain access to new Delphi language features, and refreshed Android 15 and iOS 18 support."