1995 is a very important year in the history of Delphi. On February 14 of that year the first version of Delphi was released for 16-bit Windows 3.1 as a Rapid Application Development (RAD) tool.
Delphi came as a departure from its predecessor, Borland’s Turbo Pascal for Windows. Turbo Pascal combined an editor, debugger, compiler, linker, and libraries, and evolved into Object Pascal after support for objects was added. Delphi / Object Pascal created a foundation for app development that still inspires and supports application developers today.
And 20 years later .NET is finally catching up with Delphi on AOT support, as NGEN was only meant to improve startup times, while other toochains were dropped along the way (Singularity, Midori, .NET Native).
I loved so much Delphi when it was still like Delphi 5.
In my opinion, GUI dev was so great and easy at that time. So much easier than today for desktop or web. For exemple, just having a reactive web app today is such a pain in the ass, when it was so easy then with component anchors and such.
Yes, fair enough. Unfortunately that is not accepted a lot anymore; I make custom tools for embedded hardware with win forms and it's great but projects where UI designers get in... nope.
This brings back memories. Back in the late eighties I used various programming languages for fun (TI59, 6502 assembler, BBC Basic), but when I switched to Pascal, a lot of things changed for me. At that time the schools used the predecessor of Turbo Pascal, called PolyPascal - but some time later they switched to Turbo Pascal. I have used Delphi almost from the beginning and have used various versions through time.
I don't always remember the system for good tings. The article mentions Oracle, and I do remember we had a hard time getting Delphi to connect properly to Oracle databases in the late nineties. This was mostly done through BDE. The official definition of that abbreviation is Borlands Database Engine, but a lot of people called it Borlands Database Error.
A few years ago I got back to Delphi and what a please it is to use. The latest version of Delphi allows you to produce native code to several different platforms, and it's certainly still Rapid Application Development.
But unfortunately it's not available to everybody due to the prices.
Reading this is a strange roller coaster of emotions. Happy to read about good old times, angry about the turn of event, and sadden about the current state.
At the time I thought Delphi was ( and may be still is ) the Best-in-class and a target to beat for all other RAD and IDE. The future is going to be so much better for Desktop App development. Instead we have descended to Desktop Apps with Electron.
Not only that but they are mostly a lipstick on the HTML/CSS/JS complexity pig and thus do little to really simplify the job. As the thin veneer peels off one is usually forced to deal with the underlying complexity anyway.
As much as people like to shit on electron, I rather have an electron app than no app when it comes to cross-platform compatibility and features.
The reason why Electron is so successful is because the other UI frameworks simply don't solve the problems people have as elegantly. Doing "custom" UI elements is super easy with CSS and there are many many developers for that, while doing so with WPF or QT requires far more skill and is a lot more quirky.
People don't shit on electron in general, some tech people do. We know what our computers can do when optimally programmed and there they are wasting cycles on rendering badly built web apps. I believe we should be shitting on badly written apps: we can see how a really well written very complex electron app like vscode behaves: then we install some simple crappy app that is not even in the same universe complexity wise as vscode which someone burns 100x more memory and cpu. That we should shit on imho.
I mean, "better than a bloated java app" is not really a compliment is it ? Every time I try to use jetbrains IDE I am just unable to given how slow everything feels, my hands start shaking from the stress in merely a few minutes
No recent C++ IDE I know (Qt Creator, KDevelop mainly) has the kind of endemic UI slowness than the others have (recent VS in C#, Electron stuff, Java stuff).
Load VSCode with the same amount of plugins, and measure all of the out of process executables that make part of the experience and then you will see how much RAM is actually being consumed.
Obviously native does better but people are not writing native apps and if we have to put up with that, it seems time to hold those packaged web apps to some basic standards. I rather have a QT app any day, but I do not work alone and picking software that my colleagues do not use is a continues fight. I worked in vim (with a bunch of plugins) only until begin of 2020 but working in a team just makes that painful in communication and working with some team members.
So I stopped somewhat shouting at the moon and only shouting at the even worse than bad stuff we use. Like chat clients that take up 3gb after running for a few days.
But it's also a self-sustaining cycle. Actually developing Applications with GTK is relatively straight-forward. I think UI development but esp. cross platform UI development also suffered a lot from fragmentation with both frameworks and languages. So chances finding good documentation for a chosen combination are low.
(And yes, using WPF or QT is ridiculously difficult despite having full-featured IDEs)
I'm a Delphi guy at heart that mostly sneers at all the web UI degeneracy from the last two decades. I do however recognize some important enhancements brought by the HTML + CSS model: enabling Internationalization, Accessibility and Display independence. I'm not sure how modern GUI frameworks do it (Qt/QML?) but these are necessities for modern first class UIs that require a lot of work to get right.
DPI independence definitely existed in some forms. (Heck, even GDI theoretically had DPI independence baked in, since I guess everyone was inspired by PostScript et al.) And I never really disputed layout management, since I was aware that some systems were doing that, too. I dispute that most systems from that time period could do what we do today and scale correctly on high resolution displays. I’ve had enough experience setting Xresources to be skeptical. But frankly, I just don’t have enough experience with Motif and CDE to really stake a claim here. So I’ll fold on that one: DPI scaling is certainly not absent.
I was most curious to hear about screen readers, because I wasn’t aware of any accessibility protocols or buses on UNIX-likes prior to ATK. But I’m guessing CDE desktops really don’t have that. Maybe the easiest way to find out would be to just boot up CDE and find out, since I’m pretty sure it’s still maintained…
Delphi is still wildly popular especially outside of the English speaking software development world. It's a bit strange to see. The English speaking developers outside of the US are likely to be following US industry trends, but Delphi and other languages are quite entrenched in industrial programming and custom ORM designs in South America, Africa, and Eastern Europe.
Something really nice about Delphi is it compiles quickly. Very underrated. Modern Delphi has rough feature parity with Java with anonymous classes and functions, making it quite usable. Unfortunately those feature have not made it into FreePascal dialects yet.
The guy who created Delphi went on to make C#. We might see MS's open source push give us something Delphi like yet.
Generally firms that work with industrial automation where speed and efficiency are key elements. In wind turbine manufacturing, for instance, I know a lot of firms still use Delphi.
It's not that far behind but there is going to be a time investment for whoever undertakes it. The parser is very modular but documentation is sparse. It follows the EBNF notation quite closely, but adding these anonymous structures will require adding intermediate formats to track them and pass them to the machine code generator.
It's pretty heavy work, but not insanely complicated. One of the gating issues seems the existing devs didn't seem to care about these features when I was looking to add them. That may be a problem for someone who does not wish to invest lots of time understanding the codebase.
Anders Hejlsberg is a world treasure as far as I'm concerned.
After basically single-handedly creating Torbo Pascal, he was the architect of Delphi, C# and now TypeScript. I don't think that anybody touched the lives of so many programmers quite like he did.
I owe to him, having learned that systems programming doesn't need to be C like unsafe, thanks to having learned my ways into it via TP 3.0 - 6.0, before meeting C.
Not dead at all, just invisible to the public thanks to Embarcadero and their prices. If you sell a development system at €1.699 up, you send the message that you rather want to deal with a few hundreds big/medium customers than millions of small ones.
For us mere mortals Lazarus comes to the rescue. Not on the same league of modern Delphi editions, but very comparable to those we used when it was popular in the early 2000s.
Delphi was my first introduction to programming with Borland Delphi 3 on a magazine coverdisc before we had the internet. At 12 years old and just getting into computers, I considered .exe applications with their lovely grey components to be so professional and unattainable that the ability to build my own was mind-blowing. A few years later, I had some of my freeware that I'd built in Delphi featured on that same magazine's coverdisc!
I eventually went down the web development route but I've recently, via Arduino, learnt C/C++, and am enjoying desktop development again. Compiling is exciting!
Same experience here! It was such a great first intro for me. Learned basic programming concepts but could quickly put together something "real" feeling. It was a nice middle ground. The Pascal aspect was pretty ergonomic for a neophyte, and the GUI design really was unparalleled.
Dabbled in UIs after: GTK, .NET, etc. All disappointing and awkward. Do web dev for internal tooling when I have to, but I don't enjoy it. I do backends but mostly stick to lower-level systems stuff after falling in love with K&R and Unix early in college. Well, and firefighting prod performance problems.
> The accepted story is that the Delphi name was originally suggested by then Borland developer Danny Thorpe as a reference to the Greek fortune-telling temple of the same name. One of the goals behind Delphi was to provide database connectivity to developers, and because Oracle was one of the more popular database products of the time, the reasoning was that “if you want to talk to the Oracle, you have to go to Delphi”.
Even if it's an unintentional coincidence, Delphi is also where Apollo killed Python (which hit 1.0 in 1994) :)
Borland's VCL was a great achievement that brought some much needed cohesiveness and sanity to Win32 development in a way that Microsoft was never able to do. I've always found it interesting that OpenStep/Cocoa and VCL were released at about the same time in the mid-90s, as they're both so similar.
Even though I was a complete C++ snob at the time, I had to admit that working with Delphi/Pascal projects was surprisingly painless. The compile times were insanely fast.
But I preferred to use the VCL with C++. Well into the 2000s when .NET has completely taken over, I still felt that native VCL/C++ was the best solution for most Windows apps.
I wish I had been exposed to Delphi or at least the VCL earlier. After the fact, it made me feel envious compared to using MFC and whatever else shipped with Visual C++ all the time.
To this day Microsoft sucks in what concerns C++ frameworks for Windows development, with C++/CX and WinRT they kind of finally nailed it, but then a group managed to bomb that effort. Most likely the same kind of devs that also bombed Longhorn efforts.
My first experience with Delphi is quite recent actually. I've done quite a lot of C/C++ programming & reverse engineering (the latter as a hobby) and recently had to scratch the itch to take a closer look into the ecosystem of a popular alarm systems manufacturer.
Their hardware is well designed but the quality of their software is unfortunately not quite what you'd expect to see in this field. As such, I wanted to see what could be learnt/exploited by exploring their binaries.
As it turns out, their software suite is written in Delphi, which required me to read quite a lot about it, and use/write some custom tools to help me analyze the binaries in Ghidra.
An existing tool I have relied on is called IDR[0]. It relies on "knowledge bases" which are binary files generated by another project[1] from the same author to store information about all the types and classes provided by each version of Delphi. The source code of these two projects is pretty "funky" from a software engineering point of view, but quite enlightening from a research standpoint to understand how Delphi binaries are generated.
I can see from this thread that a lot of people are nostalgic about how easy/enjoyable it was to use. I now find the low-level analysis of this technology just as fun and interesting.
As a side note and to loop back to the reason of this whole endeavor, after many hours spent reversing the software of this manufacturer, I can attest that the rumors about the code quality are not just rumors :)
My father worked on Dbase, Turbo Pascal, Delphi... I remember going to his office in Scotts Valley growing up and playing around with Delphi when I was in elementary school. I think it was technically the first thing I ever programmed with - I made a calculator app (how creative right?).
Delphi came as a departure from its predecessor, Borland’s Turbo Pascal for Windows. Turbo Pascal combined an editor, debugger, compiler, linker, and libraries, and evolved into Object Pascal after support for objects was added. Delphi / Object Pascal created a foundation for app development that still inspires and supports application developers today.
reply