249 comments

[ 3.1 ms ] story [ 325 ms ] thread
I remember, as a kid, looking up examples of malware. Bots and trojans and such. Invariably, much of it was in Delphi. Why was this so?
Simple low-level language, high-quality IDE. Why not.
Calling RAD Studio a high-quality IDE seems like a stretch to me. I would choose VS Code or a JetBrains product any day of the week. Unfortunately you a kinda stuck with it when developing in Delphi.
I think the .net ecosystem, as a higher level language, was probably less fit for the task.
When I started using C++Builder (and some Delphi), .net did not exist
I would assume that "as a kid", when malware was written in Delphi, those weren't really options.

(And VS of that era was rather meh...)

Yeah, I'm referring to the late XP / early Vista era.
Maybe RAD Studio isn't a high quality IDE but at least it is an IDE.

VS Code isn't.

I remember being a little impressed when in some version of C++ Builder i used a symbol from another source file and when i pressed Ctrl+S to save it, the editor automatically added the necessary #include file at the top. This is the mark of an IDE that actually knows the language it is editing.

The closest i've seen elsewhere is QtCreator littering the code with red error messages about the unknown symbol while i'm typing the code together with a lightbulb next to the line with it which, if i click on, it adds the #include.

From a technical perspective the ability seems to be there, it just doesn't feel as smooth and seamless. Not to mention all these errors that appear while i'm typing make me anxious - like, STFU, i know the code is wrong, i'll fix it once i finish typing this part :-P.

In the 90´s, early 00s, when it was used for troyans and malware a lot.
Not sure why, but when I worked for a large fintech a couple years ago, we regularly saw banking Trojans built in Delphi.
Yes, that's exactly the kind of thing I was talking about.
Mostly because it builds self-contained executables that are virtually guaranteed to work. Nowadays this is much less of a thing, but we are talking about the day and age of DLL Hell.
At least in the ex-soviet countries, a lot of the legally-questionable software we used to write was in Pascal because that's what we learnt in school. It was an easy transition to go to Delphi - nice RAD IDE for GUI RATs or keygens/cracks, familiar OO language.
Even in the West, Pascal was the standard teaching language even in the late 1980s -- my undergraduate classes and textbooks all used it.
I took the AP CS test in 1996 and had to learn Pascal for it. They switched to a different language either in '97 or '98 though (C++ I think?).
I think so. By the late 2000's, it was Java.
Most Delphi examples I see these days are actually modern, recently written malware samples. It statically compiles into a tiny binary which has a weird ABI which flies under the radar of AV software looking for programs up to no good. What's not to love for this purpose if you are an adversarial actor?

The vega/buran strain of ransomware malware comes to mind as a well known example from the past few years [1]

[1] https://www.acronis.com/en-us/blog/posts/meet-buran-new-delp...

> Most Delphi examples I see these days are actually modern, recently written malware samples. It statically compiles into a tiny binary which has a weird ABI which flies under the radar of AV software looking for programs up to no good. What's not to love for this purpose if you are an adversarial actor?

And recently lots of malware detection has started looking for that "weird" ABI signature, so now everyone's anti-virus is throwing up alarms at perfectly legit age-old software just because it's built with Delphi.

I miss Delphi.... even though I've got it installed.

I can't bring myself to use it.

The "free" version has a hook in it that just doesn't sit well with me... they want a cut of any money I make with it, on their terms. It's easier for me to ignore it, and just put up with the limited documentation of Lazarus. I miss the days when I could afford Delphi.

Use Lazarus. Free and Opensource clone of Delphi
I used Delphi years and years ago and it was great for building GUI applications quickly and easily. Much nicer than Visual Basic. I probably wouldn't recognize it now, other than I suppose it's still Object Pascal, which is a very good programming language, all things considered; straightforward, not too fancy, not too dumbed down.

Free edition: https://www.embarcadero.com/products/delphi/starter

Be warned: You need to enter a valid phone number. They will call you asking on what you plan on building with the software. I've had that happen to me within a few days of downloading the software.

Another person had the same experience. https://news.ycombinator.com/item?id=24582890

Could you accidentally mistype the phone number or do you need it for something?
(comment deleted)
Why would you ever put in your real phone number anyway?
Some websites I have signed up require a real phone number so they send a verification code on account creation.
I use Google Voice for that. I don’t have it tied to my phone, so the only thing they can do is send me text messages that I only see when I’m expecting something.
A lot of website now bans GV numbers unfortunately (or any VoIP numbers)
I hang up on people all the time. I don't want to spend minutes of my life answering probing questions. Just hang up as they speak.
I never answer numbers I don’t recognize, but it is still annoying to get these types of calls, again and again, and again.
> Much nicer than Visual Basic.

How dare you.

I'd love to go back to Delphi and play with it again as I did back in the day, but the price tag kills the mood pretty quickly.
You can use it for free with the community edition (https://www.embarcadero.com/products/delphi/starter) if your revenue is less than $5,000.
Just get Lazarus.
Lazarus? Do you have a reference/link?
Here: https://www.lazarus-ide.org/

It is basically open source and cross platform Delphi (there are a bunch of differences but from a high level perspective i think that it describes it fine for people who already know Delphi).

Also check this video i made a few years ago[0] making a simple puzzle game in Lazarus. You can skip to 11:30 if you don't care about downloading, compiling and configuring it and just want to see it in action.

[0] https://www.youtube.com/watch?v=s_01Xhd2EJM

Agree. If someone is paying you a shit-tonne of money to write a program then get Delphi Professional for US$1400, its still a good product, the more expensive $5K client/server/architect versions are not worth it at any price as third party delphi libraries for database and reports are cheaper and far superior (devart/fastreports/etc)

You can do the same with Lazarus without any external libraries. I wrote a fairly polished production system for a seafood factory in Lazarus 15 years ago which is still in daily use.

Amazing what a single developer with the right tool can achieve, shame we cant get any young people interested in anything but apps.

I worked for about ten years on a suite of tools written, in large part, in Delphi. As far as I know, those tools are still being maintained in Delphi today.

It was a tiny software group in a large company, and paying Embarcadero whatever they wanted was just a matter of filling out paperwork. I imagine a lot of their current paying customers are in a similar situations.

For me when Borland became Embarcadero, it seemed like it lost it’s scrappy hacker ethos.

Turbo Pascal, Turbo C, Delphi, C++ Builder were all very innovative products that catered to the individual developer. The Embarcadero rebrand seems like a turn towards Enterprise.

For me now, JetBrains is the new Borland, a scrappy company with a strong focus on what individual developers need and consistently turning out excellent software.

I still remember Borland’s logo and icons. Something about the 90s and 00s was special and maybe we didn’t appreciate it enough.
Those Borland books, too. I lived with those Turbo Pascal books.
Borland pivoted to enterprise long before this thing called Embarcadero. Recall it renamed itself Inprise before renaming itself back to Borland.

Also Embarcadero isn’t Borland. They acquired Borland’s product lines but not Borland itself.

And the original company seems, name change notwithstanding, to have stuck with the "Enterprise"-y mentality of Inprise.
I'm sure they made a great amount of money doing Turbo C/Pascal via mail order but that market is only so big.

You need the $1,200 compiler suites to make the real cash.

JetBrains is subscription pricing now.
Even though I own the latest Delphi Compiler it still seems 2 steps forward and 2 steps back each release, yes it gets better but they always seem to screw some little thing up which you need to work around (high DPI Issues, tcategorypanelgroup and IDE not repainting properly etc since my update from 10.3 to 11.1) 90% of their market is Win32 so I really dont understand why they concentrate 90% their development outside of this.
I still have the feeling it's the most productive way to create beautiful native Windows desktop programs.

Rapid application development is not an empty promise here.

All my other endeavours with UI programming (Java/Swing, HTML/JS frontends, QT) felt way less productive. Maybe MS C# is the closest to Delphi nowadays.

I wonder if anyone here has experience with both Delphi and SwiftUI. I'd be curious to know which one is more comfortable.
Well there's a reason all the WYSIWYG UI editors died out. They are a quick way to whip up a passable UI, but usually turns out to be quite ugly under the hood, hard to reuse, and a pain to maintain.

Delphi is really from a different age, simpler times, when the common paradigm was having the app directly connected to some sort of SQL database, which serves as a stable, static data source for the UI. Making glorified database editors is what it was really good at.

These days.. things changed. UIs need to be flexible, reactive, reusable, adaptable. UIs that can handle uncertain states, asynchronous data flows, change dynamically and so on. SwiftUI / React / Flutter all ended up at the same paradigm, it's a much more advanced way of doing things. Also, high level languages are much more pleasant to work with.

Only by those that never bother to learn how to use layout managers.
> They are a quick way to whip up a passable UI, but usually turns out to be quite ugly under the hood, hard to reuse, and a pain to maintain

That's not my memory at all - even web-based traditional ASP apps made it relatively easy to use WYSIWYG form editors that modified the code as needed. But expectations around how dynamic UIs are supposed to be have changed. SPAs in particular are not very amenable to auto-code generation, but supposedly some options do exist (retool? Haven't tried it though).

I respectfully disagree with this.

Delphi still delivers unmatched productivity when it comes to designing UIs and writing maintainable multi platform software.

Delphi's FireMonkey framework has a lot of things right and you can create resusable forms easily, where you don't have to fight with a declarative UI (This paradigm is an anti-pattern and totally misplaced for UIs).

There are many multi platforms apps made with Delphi which are by no means "a glorified database editor" ;)

It is, minus AOT experience.
It does still exist, and I'd love to try it out, but I'm not throwing down thousands of dollars when it costs significantly less for me to get Visual Studio Pro as a single developer ($30 a month iirc) or you know... $120 for JetBrains IDE's annually (after 3 years) it makes no sense for me to throw down a thousand dollars (per year?) same with you Qt. I'm looking to evaluate your product and prototype and maybe build small projects that need a UI but your pricing scheme is not for people like me at all.

One would likely argue that JetBrains probably isnt a RAD IDE, but Visual Studio definitely is fully capable of RAD editing capabilities, think WinForms.

They have a free community edition for individuals.
I tried it out and it wasn't exactly stable. Someone from Embarcadero that was mostly marketing reached out to me and I told them I had issues, they just tried to sell me a license instead of taking the time to get someone technical to talk to me. Not sure I want to buy a license from someone who doesn't invest more into ensuring their primary customer base gets the help they need. I'm not even sure if I'm allowed to build anything commercial under their free tier if I wanted to, so if I want to see if something would be worthwhile now I have to take a thousand dollar gamble as opposed to $30 a month with Visual Studio Pro, or even $120 with JetBrains.

Update: Looks like JetBrains is $149 per year, and moving forward after October 2022 it will be $173 per year.

...for the enterprise. Which is okay, there's plenty of mixed quality software for that sector. It's just that Delphi used to be a lot more oriented towards beginner to small-business developers.

And note that this happened before the web pillow-smothered decent desktop UIs. If it was all about a reduced audience for desktop-based applications and then supporting that, I would understand it more.

I haven't been following Delphi itself, but the parent company also manages ExtJS, which is aimed/priced similarly, yet with support/quality that doesn't justify this.

Weird that outside of the BCPL or ML families, it's Ada that seems to be the one with the most momentum these days.

  the web pillow-smothered decent desktop UIs
Application development has gone backwards so much compared to the RAD tooling from the 90s. I really can't even properly describe it to the younger generation. :(
ah the GUI designers from Borland, light years ahead of everything else... it just worked and looked nice (compared to Microsoft shitshow that was Visual Studio back then), was very easy to learn and its the only thing in software I've seen in 20 years which deserved the title RAD.
Delphi cut the corners with their fixed positioning. It will not work for web and it works very poorly for localization (labels change their lengths and can overlap over each other).

As soon as you introduce layouts to your UI, all the Delphi simplicity goes out of the window.

This is an interesting challenge to invent a way for UI to be pixel-fixed, yet work in web and with localization. If someone would do that, you could rebuild Delphi for web.

I guess one way is to build a pixel-fixed form for English language and let AI to build a layout for this form.

We had things like expandable container groups for UI controls that could auto-resize the child controls as necessary to fit their content back in the 90s.

Granted, it wasn't as easy to set up properly vs modern web layout engines - but there is so much more to RAD applications than the UI layout by itself.

So? Many apps don’t need localisation. Responsive UIs weren’t all that important in the mid 1990s when monitors and their resolutions were all in a relatively small corridor. I remember 20 inch CRTs to be the absolute high-end that few could afford. Most PCs came with 14 or 15 inch monitors, 17 inch later.
Totally agreed. I have done both a lot of work with the Borland tools and over the years with various web based libraries and languages, Borland wins hands down, in spite of the underlying horrible mess.
i think it's probably coming back with this whole low-code/no-code thing.
This. How easy was it to put together a well-functioning Windows desktop app in Delphi, compared with the complexity of developing a Web app these days?
I love using these RAD tools but I think part of what we're forgetting is how much lower the standards were (both visual and functional) for UIs back then. Sure you could throw together a professional UI in a lot less time, but part of that was that the definition of "professional" was "looks exactly the same as every other Windows application and uses the same 5 form elements". We've just come to expect more variety so the RAD approach doesn't take you as far these days.
Yeah they tend to have no variable window size support.
What??? WTF are you talking about?
> I love using these RAD tools but I think part of what we're forgetting is how much lower the standards were (both visual and functional) for UIs back then.

They weren't lower then, they're lower now.

> Sure you could throw together a professional UI in a lot less time, but part of that was that the definition of "professional" was "looks exactly the same as every other Windows application and uses the same 5 form elements".

Yup. That's still the correct definition.

> We've just come to expect more variety so the RAD approach doesn't take you as far these days.

Yes, unfortunately users have been conditioned to expect myriad variations of something like Kai's Fucking "Power Tools". And most of them have even been deluded into thinking of that as a good thing. They're wrong.

I think they really screwed up after Delphi 7, when they did the horrible Delphi.NET.

Also, they should have had some better pricing, something like: Personal use: Free. Commercial use: Free until you are making $x a year, like Unity I think, and then different prices.

Note: I might remember wrong, as this was so long ago. I started with Delphi 1.0!

I think their original pricing scheme for the first 5 or 6 versions of Delphi was fine. The cheapest version was just $100, which even a student could buy by saving for a few weeks (get them hooked while young, etc :-P). The versions that added features focused on enterprises were more expensive but these wouldn't be needed by a lot of people (a lot of Delphi programmers were making small shareware utilities instead of big database applications).
Exactly, that was my point :)
I have a "Delphi for Kids" book which included a free version of the lowest Delphi tier. And yes, sure, I guess you can do the same with the current community version, but it does show how broadly Delphi was aimed and received.

Which is the sad thing. Even if Idera were to change their tack, it wouldn't matter anymore, as there's no broad appeal for a "desktop full stack" solution anymore.

Right now, it doesn't matter anyway. They're in that enterprise tier along with commercial Smalltalks and APLs, even if they'd give away everything for free tomorrow it wouldn't change the world of computing.

After a while they got greedy and fucked up that scheme, moving stuff that had been in the Professional edition (most importantly, client-server DB connections) into Enterprise, and other stuff (three-tier app development) from Enterprise into a new Architect edition. And then steady substantial price hikes for all editions from version to version. Shot themselves in the foot, AFAICS.
Delphi has a free community edition. The free version only targets Windows, though.

https://www.embarcadero.com/products/delphi/starter/free-dow...

That's kind of "too bad" it's Windows only. I would try it on Linux and/or macos.
Delphi IDE is available for Windows only, regardless of its version. I suspect @runjake meant is that the free version only targets Windows, while the architect edition of Delphi can target all of the major OS'es out there.
Yep, this is what I meant. Updated original comment, thanks.
The free Community Edition supports targeting Windows, Android, iOS and macOS. From a feature point of view, it is similar to what you get with the unrestricted Professional version. Enterprise and Architect also has the Linux compiler. On Windows you can use the tried and battle tested VCL framework, and for multi platform there's FireMonkey.

The IDE's are, however only runs on Windows (Or Wine if you're brave, YMMV).

That's a shame, I guess Kylix just died in the end ?
Yes, Kylix died. But current implementation of FireMonkey framework within Delphi fully took its place and some more.
Embarcadero was acquired by the same jackasses that bought out a company where I used to work. The new owners had a bunch of attitude and kept crowing on about "their playbook". It turned out that the primary technology that they were buying us for was the one part of our product that we actually licensed from another vendor. I believe they spent millions and didn't get what they were looking for.

They had an offshore team that theoretically could work with the codebase, but I don't remember seeing anything of consequence added to the product in the past 7-8 years. If I ever found that they bought out a company that used technology that I depended upon, I'd migrate to a new solution.

So in your opinion, this should be avoided? Looking to try something new ( old ) and this got me excited but your comment has soured it a bit for me.
Yeah, if you want something like Delphi, try Lazarus instead which -for the most part- is basically an open source and cross platform Delphi clone[0], so you're not bound to the whims of a corporation that is often seen as where old proprietary software goes to die.

[0] https://www.lazarus-ide.org/

I wouldn't expect much in terms of value or growth from a platform owned by those clowns.
Since Embarcacero was acquired in 2015 and until now, there has happened quite a bit to the RAD Studio IDE and underlying tech. I don't know about your situation, but, Delphi and C++Builder has not been left to rot.
I remember one of the great things about delphi was that it statically linked everything into the single .exe making it totally self contained. A Windows GUI program could be a couple hundred KB, no other DLLs required. C/C++ could do the same but you were stuck with nasty raw win32 calls and a lower level language.
FWIW C++ Builder could do the same and had access to VCL too. AFAIK (never tried it) you could mix Delphi and C++ in the same project if you wanted.
yes, you could/can. The VCL itself was written in Delphi and seamlessly linked with C++Builder C++ (they had some language extensions to make it work)
Over the years the minimum size of VCL apps increased. Last I checked (10 years ago maybe) it was like 1MB or more compared to 200KB or so in Delphi 3.
Almost certainly is the extended RTTI information - VCL is huge after all and relies heavily on RTTI. The forms, objects, etc you are editing in the form designer are not just stand-ins like in, e.g. Glade, wxFormBuilder, QtDesigner or similar tools, they are live instances of the actual objects that are serialized on disk whenever you save the project with the serialized data becoming part of the program's resources and are deserialized when the program starts (VCL/Delphi calls this "object streaming"). This means that the full RTTI information needed to serialize and deserialize the objects (and any other object) needs to be part of the executable.

At some point they extended the RTTI information so that you can also make dynamic calls to methods, obtain fields, etc so the RTTI data became larger.

Lazarus adds a ton more data to the executables so where you'd get a 1MB in some recent Delphi, you'd probably get something like a 5MB executable with Lazarus (without debugging information - that'd make it much larger) on Windows. On Linux it can be even larger, e.g. the simple calculator shown here[0] (up left window) is ~2.88MB, stripped.

[0] https://i.imgur.com/MkfN4pO.png

Glade uses GtkBuilder: a format where the UI is described as an XML and built at runtime.
Pretty much all of these programs (Glade, wxFormBuilder, etc) have a similar approach, the point is that the way Delphi (and Lazarus) works is with you working directly with the live instances of the objects that will be serialized on disk - there is a 1:1 mapping between all those and the information is extracted directly from the objects themselves.

In a way Delphi is kinda similar to how Unreal Engine works whereas Glade is kinda similar to how the original Quake engine worked.

And to this day, Microsoft botched both experiences that could offer similar productivity with C++ on their stacks, with C++/CLI and C++/CX.
You can still mix C++Builder and Delphi today. Embarcadero made huge efforts to make sure their Clang powered compilers has interop with Delphi code and vice versa. C++Builder still share the VCL and FireMonkey frameworks with Delphi.
Delphi Win32 executables I compiled last century still work fine. I hope the programs I am writing today will still work on whatever version of Windows is around in 25 years. Microsoft for all its many faults has not yet screwed up the Win32 sub-system.
I have used Lazarus in the last year, it's very ugly but it gets the job done.
You know a modern company is active when there’s a photo of a black lady with natural hair holding a laptop by a server room.
Cont'd : Then you walk into the Delphi office and it's just a bunch of Nordic academic guys with grey hair.
My hair is still dark; it's just the beard that's mostly grey nowadays.

Signed,

Sid Dabster

I'm working with the Delphi libraries every day in C++ Builder, bucause my company bet on Turbo C++ and Builder in the 90s, when Microsoft technologies seemed primitive compared to it.

At a recent meetup in my country, 90% of Delphi developers were over 60 years old. Also, Embarcadero licenses aren't cheap.

We also started with Borland C++ 3.1 in the 90s. The GUI IDE was mind-blowing at the time. It was superior to MS' Workbench. However, Borland really dropped the ball with C++ 4.5, and we had to switch to Visual Studio.
(comment deleted)
I have to repost https://news.ycombinator.com/item?id=28491963 :

My main problem with delphi: it is "too proprietary". It was a very productive ide in the 90's or early 2000's but lost their path and never recovered.

Some new versions broke compatibility with previous version's components. There was the case where you paid a good amount of money on some proprietary components and they simply wouldn't work in the next version: you were imprisoned in an obsolete ide. By not being multi-platform (I hear it improved it lately) you could only use it with/for win32 so it lost servers, embedded and mobile. By not being open-source nobody could improve it.

Then it had to compete with "native tools". Whoever develops for windows wouldn't quit ms' tools to use it, whoever develops for mac wouldn't quit apple's tools to use it, whoever develops for android wouldn't quit google's tools to use it, whoever develops for linux was mostly ignored after kylix.

Note that I didn't even mentioned price and license.

They improved it later, I heard. But seems more like the old case of too little too late. Most successful programming languages today are open source and multi-platform. Delphi was dependent on win32 for too long and it still is "too proprietary". You do the world a favor by porting your project to lazarus.

They should break off and commercialize just the cross-platform GUI and rapid development IDE for that and put a language like Go under it. Go with a good RAD IDE would be so amazing, like yank out my wallet and throw money at you while shaking amazing.

Give me a good cross platform GUI. Give me a good IDE for it. Don't make me learn yet another fucking programming language that exists nowhere else to use it.

The last part counts against this and also against Flutter, which forces you to learn Dart which is used nowhere but Flutter. What would have been wrong with Go or TypeScript? People already know those.

Most successful languages are open source for very clear reasons, but a cross platform IDE is something that could very well justify being commercial. It's an absolute ton of work and a constant moving target to support. So far no pure open source effort has managed to succeed unless you count the various HTML-based GUI systems that are indirectly subsidized by Google and Apple.

Have you seen this, and do you have a perspective on it? https://www.remobjects.com/elements/gold/
I can't quite figure out what problem it solves. Go already compiles everywhere, and I see nothing about cross platform GUI. Is it just an IDE?
Same could be said for Access
AFAIK they signed a deal with education ministry of Turkey so that Delphi will be taught as the programming language in technical high schools.
Super evil
Not necessarily. I think Delphi with visual programming is ok for students. High school kids like immediate visual feedback and ease of use. Probably deal does not involve money.
> Super evil

...On the part of the Turkish Ministry of Education, which figured out that they'd get legions of young programmers all primed to jump ship to Free Pascal / Lazarus?

Naah -- smart, but not exactly evil. :-)

The linked page may be a snapashot of what delphi became: the video autoplays; controls disappear spontaneously with no obvious way to bring them back; most of the initial time in the video is spent showing the welcome screen: you can now set the background image and theme!; it has lots of text in the form of images, one of these says "Support for 4k+ Screens. Welcome to the future!"; the download button puts you in a page where you have to enter a lot of personal information and prove your are not a robot.
Both Embarcadero.com and Lazarus project homepage refers to that they have the capability of RAD.

Lazarus - "RAD - Rapid Application Development." Embarcadero - "RAD Server - Reduces the complexities of rapidly building and deploying a multi-tier turn-key enterprise REST API application server with Swagger support."

What does RAD refer to? What is it actually?

(comment deleted)
> What does RAD refer to?

Rapid Application Development :-P.

Wikipedia has an article[0], but in general it can probably be thought as a precursor to agile (the article says that agile is a RAD method) in that instead of doing some lengthy pre/planing process you use an iterative approach that adapts to what the users want.

In this particular case Lazarus is a RAD IDE in the sense that it allows quick development and iteration of functional GUIs - Delphi was also like that but at some point Borland/Inprise/CodeGear/Embarcadero/Whoever made it more of a name to use for their products ("RAD Studio") than something that describes them.

[0] https://en.wikipedia.org/wiki/Rapid_application_development

I remember going to a convention in 2005 for retail store software and I was amazed that Delphi dominated as the platform for POS systems.
I knew a pharmacist who wrote his own POS software in Delphi. It (and Visual Basic) had that position where they were so usable that even someone whose fulltime job was something else would be able to single handedly make a line of business app for that business.
it is amazing that you could just drop edit boxes and labels, hook up to data source and database and it will work without a single line of code written!
One of the best aspects of Delphi is how quickly you can whip together simple GUI applications. The main issue nowadays is finding helpful resources on the internet, as hardly anybody writes Delphi anymore.

For the interested, a free Delphi IDE exists (comes with FreePascal compiler): https://www.lazarus-ide.org/

Asking as someone who last saw Delphi in computer class at school, what would be the modern equivalent?

Something that lets me draw a window with two number fields and a button that says "return sum", but it's two minutes of work and self-explanatory.

> As someone who last saw Delphi in computer class at school, what would be the modern equivalent?

Maybe hard pressed to call it modern, but WinForms is still my go to for quickly making a UI, at least in Windows.

Same here. I've tried to pick up WPF but holy fatcats, what an explosion of XAML files in exchange for... pretty much nothing, really. It's a shame, really.
I would almost like XAML, if it wasn’t for styling. If it had some CSS like DSL, I’d use it more, but unfortunately overcrowding styles invokes nasty blobs of XML boilerplate often having to override stuff that doesn’t seem relevant to what you want to do.
Isn't wpf deprecated too? I wish there was an official way to make apps in windows...
Not really, I doubt WinUI will ever match it in features, so most enterprises will keep ignoring it.

Basically Win32, Forms, WPF for .NET, Win32/MFC for C++, or web stuff like ASP.NET, possibly with Blazor.

Even though UWP did not went away, and they keep at the N interaction of it with WinAppSDK, I would lose any sleep over it.

Same feeling about WPF. XAML just never caught on with me and I stayed with Forms for a long while after WPF came out. With XAML, it seemed like they were trying a bit too hard on declarative.

Now working in SwiftUI, which is declarative but in a more understandable way, with a View building mechanism behind it that ties things together so that you understand what you're doing a bit better. Not sure I'm explaining that well...

Not good enough at it yet to build anything fast, but I could see that being the case after a few more months with it.

You can ignore XAML if you make WPF app as like WinForms, just use GUI designer and absolute layout. It's not considered to good but it should work.
But in that case, why even use WPF if I can just keep using WinForms? Besides, judging by the news and announcements on the Microsoft site, it would seem that WinForms is still being sort of developed while WPF is... pretty much dead.
You can easily adopt WPF features later, compared to migrate WinForms to WPF. I think both WinForms and WPF are being sort of developed, but WinForms is old so it have more developing needed area, like accessibility and HiDPI.
Delphi's FireMonkey is in many ways similar to WPF in the way you can manipulate UI elements, except all the fluff and cruft WPF/XAML has. On the plus side, FireMonkey is multi platform too.

VCL is still the tried and tested UI framework for Windows only applications though, nothing beats its flexibility.

The linked Lazarus. Here is a quick screencast making a window with two fields and a button that sums them (though i forgot the "return sum" caption :-P) in ~45 seconds:

https://i.imgur.com/cATdmhY.mp4

Is that Afterstep you are running? I'm having flashbacks to 1999...
I get a little frustrated, because the web is AMAZING for this. Type this in anywhere. Anywhere!

  <input id=foo></input>
  <input id=bar></input>
  <button onclick="sum()">sum</button>
  <div id=result></div>
  <script>
    function sum() {
      result.innerText = parseFloat(foo.value) + parseFloat(bar.value);
    }
  </script>
That's full of "bad practices" but for the use case you're talking about, who cares?
Unfortunately, nobody codes web apps like that. If they did they web probably wouldn't be that bad.

Instead they whip out React and because native browser elements apparently are the devil they add tailwind/material design/bootstrap/whatever on top.

Once you do it that way, the web approach honestly ends up as complex or worse than many of the alternatives...

That way doesn't scale well. Things become very messy and unmaintainable really quickly. This is how people code in the past, and there are good reasons why people moved on.
Code becomes unmaintainable when it was organized poorly and grows or if discipline was not maintained during growth.

React projects are just as susceptible to that, and "modern" web development is quite frankly a larger maintainability headache due to the dependency hell they bring.

Actually I do. Whenever I need a small tool like a calculator for a video game or a simple GUI program for processing images, I always go for a barebones single html file web application.

For example, this is a simple visualizer for different numerical integrators that I wrote in a day or two for a college course: https://scleox.github.io/integrator-visualizer/index.html. The the source code is just one single html file: https://github.com/SCLeoX/integrator-visualizer/blob/master/...

Side note, but can I introduce you to the <output> element? You can just set its value instead of its innerText. It’s perfect for calculators.

https://html.spec.whatwg.org/multipage/form-elements.html#th...

Just one more quick tip, you should probably use the unary operator "+" to convert strings to float. `parseFloat('2,000')` gives 2, which is probably not expected, while `+'2,000'` gives NaN indicating the input format is not recognized.
> Something that lets me draw a window with two number fields and a button that says "return sum", but it's two minutes of work and self-explanatory.

Tcl/Tk would be the most straightforward choice. Even easier than Lazarus. It's not really a native look, but practically nothing is truly native these days.

For something trivial and cross platform: Tcl with Tk or Python with wxpython.

Java with Swing does still exist and works too.

It's harder (IMO) to "scale" a Tcl/Tk or wxpython project though as there aren't great built-in patterns and especially with wxpython, the API is a bit clunk and boilerplate heavy.

For a bigger project that you don't need to be cross-platform, you can still make a Windows Forms C# project in Visual Studio. It still works pretty well even, although Visual Studio seems to get slower and farther from this use case each year.

Folks mentioned a few good options already, but another one is using C# and visual studio's built in form designer. It's very easy to get started with if you've seen a similar language before (e.g. Java).
> Asking as someone who last saw Delphi in computer class at school, what would be the modern equivalent?

As the GP said, FP / Lazarus.

Delphi still exists and is available as a free Community Edition too.

There are plenty of resources and new books being written. You can find a collection at https://learndelphi.org

Nowadays they have a free option. Community edition or the like.
Delphi and it's components are still nice. But their C++Builder seems like if just keeps getting worse. Instead of maintaining the Borland compiler and debugger they've been replacing it with new ones that work about a quarter as well.
Still fairs better than anything Microsoft has done with C++ tooling for GUI development.
The move to Clang was to support C++11 and C++17 language features. The classic Borland compiler was stuck at C++03.

The debugger situation has slowly been improving but there is a unification of using LLDB for all platforms.

Wow. It looks just like Visual Studio... 6.

I have fond memories of Pascal, it's the language of the first programming class I took.

But yeah. The website and the screenshots do not inspire confidence.

I have fond memories of using Borland's Delphi when I was a much younger boy. GUI building tools such as Delphi, VS, JavaFX and the old Dreamweaver really helped certain concepts click for me at that age.
Denmark's farming industry's ERP system run on a system called Ø90 which is written delphi, java and cobol. Still being actively maintained by IBM today.