Delphi Timewarp – 1995 and Delphi’s Mythical Origins
blogs.embarcadero.com
blogs.embarcadero.com
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.
There are low code tools for Web, but they tend to be only for enterprise pockets.
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.
yes, very much worse than the average Qt app in my experience in terms of responsivity, load time and general UI performance
Comparison to its next best competitor is the only thing that makes sense IMHO.
Just measuring code.exe isn't enough.
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.
The only Electron app I use by option is VSCode due to its Rust support, and work stuff I don't have a say on what gets used.
And even so, if there is a Web alternative to the Electron package, it will run on a browser tab, done deal.
(And yes, using WPF or QT is ridiculously difficult despite having full-featured IDEs)
DPI independence was already supported, because each X Windows terminal was different beast, hence layout managers and multiple coordinate systems.
"Common Desktop Environment: Internationalization Programmer's Guide"
https://www.cs.auckland.ac.nz/references/unix/digital/COSEPR...
"Developing Applications for the Display PostScript System"
https://www.cs.auckland.ac.nz/references/unix/digital/AQ15WB...
Coordinate handling chapters.
"Common Desktop Environment: Application Builder User's Guide"
Attaching objects chapter for layouts
https://www.cs.auckland.ac.nz/references/unix/digital/APPBLD...
"Common Desktop Environment: Programmer's Overview"
https://www.cs.auckland.ac.nz/references/unix/digital/PROG_O...
"Common Desktop Environment: Style Guide and Certification Checklist"
Access and the Style Guide chapter
https://docs.oracle.com/cd/E19683-01/816-0284/6m6phpvqa/inde...
And here is some of the stuff being done back in the day, https://park.org/Guests/Trace/pavilion/unixshar.htm
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…
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.
I tried to get into it a few years back and in terms of language features it felt like things had stagnated for a decade or more.
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.
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.
Having done Spectrum coding before also helped.
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.
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.
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.
Even if it's an unintentional coincidence, Delphi is also where Apollo killed Python (which hit 1.0 in 1994) :)
Simply, we had a junior guy doing some work, and he wrote a Client/Server GUI using Delphi talking to SQL Server (I think, not germane).
Anyway, it was all done, shipped off the client, everyone essentially happy.
I asked him how the project went.
Paraphrasing he said, "The project went really well, I didn't have many problems. But I do have one question."
"What is it?"
"Can you explain the difference between Disk and RAM?"
"..."
A testament to Delphi is that someone can be productive in computer programming without understanding something fundamental like RAM and Disk.
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!
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.
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.
Happy birthday Delphi!
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.
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 :)
[0] https://github.com/crypto2011/IDR [1] https://github.com/crypto2011/KBBUILDER
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.