Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Delphi Timewarp – 1995 and Delphi’s Mythical Origins (blogs.embarcadero.com) similar stories update story
2 points by zxspectrum1982 | karma 331 | avg karma 1.75 2022-02-10 04:52:38 | hide | past | favorite | 64 comments



view as:

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 is apparently still available https://www.embarcadero.com/products/delphi

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).

Happy birthday Delphi!


Now only the name remains as a ghost...

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.


I live that experience still within Java and .NET ecosystems.

How? What UI toolkits?

Windows Forms for example?

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.

Then WPF with Blend.

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.


If you remember IDAPI?

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, the state of Web app tooling as well, juggling raw HTML/CSS/JS to fake a desktop like UI.

There are low code tools for Web, but they tend to be only for enterprise pockets.


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.

> we can see how a really well written very complex electron app like vscode behaves

yes, very much worse than the average Qt app in my experience in terms of responsivity, load time and general UI performance


Agreed. I always shudder when colleagues recommend it. Last I checked it took up an enormous amount of resources for an editor.

My VSCode takes considerably less RAM than Webstorm on the same project - and yet IMHO VSCode does it better.

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

Well and what editor can you use that isn't either a bloated Electron app, a bloated Java app, or a bloated C++ app?

Comparison to its next best competitor is the only thing that makes sense IMHO.


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.

I have like 30 extensions to give it the same level of functionality (or more precisely, the subsection I use), and it takes less than Webstorm.

Counting the external processes RAM usage?

Just measuring code.exe isn't enough.


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.


Be the change you want the world to be.

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.


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.

All of those web features exist since Motif days and layout managers.

Personally, DPI independence and screen reader support is definitely not something I associate with the “Motif days.”

Well, it was there, regardless.

Citation needed? At least in actual motif. Can’t find any information about either thing.

I love this seeing is believing in tech.

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


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.


Indeed, here in Germany there is at least one Delphi conference, and additionally it tends to share some slots in .NET conferences.

Where would you find Delphi jobs in Europe? I'm in australia but still do delphi.

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.

Oh ok, same here then, I'm working in manufacturing, also in medical systems here, there are a few I know of.

Medical systems here as well, laboratory automation, for example https://www.lab-services.nl

In Eastern Europe Delphi was very popular.

How "far" behind it Freepascal you think?

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 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.

Having done Spectrum coding before also helped.


Delphi gave me lots of money doing freelance stuff during the 2000s because it was so fast to build custom apps on it.

Delphi is dead. Nothing to see here. Move along.

Please don't post unsubstantive comments or shallow dismissals here.

https://news.ycombinator.com/newsguidelines.html


Seems like it's going pretty well. Native development on multiple platforms sounds good to me:

https://www.embarcadero.com/products/delphi


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) :)

https://en.wikipedia.org/wiki/Python_(mythology)

https://en.wikipedia.org/wiki/History_of_Python#Version_1


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.

OWL did it first, also from Borland.

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.


It's too bad that Embarcadero killed all super-popular Borland IDEs.

I miss delphi.

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 :)

[0] https://github.com/crypto2011/IDR [1] https://github.com/crypto2011/KBBUILDER


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?).

I'll never forget this Delphi anecdote. It can be applied to other tools, no doubt, but we were using Delphi at the time.

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.


Laughs in Turbo Pascal

Legal | privacy