Happy Birthday Delphi – 25 Today!

The year, 1995. Windows 3.1 was the current Microsoft operating system running on the family’s 486sx 25MHz with 4MB of RAM. Turbo Pascal 7 was my weapon of choice but of course it couldn’t produce Windows applications… yes there was Turbo Pascal for Windows and Borland Pascal but they both required lots of boiler plate code to make windows and interact with the OS (Nightmare). And then it happened…

I saw it… a full page print advert for Delphi. OMG!!! No longer would you have to fight with boiler plate code, just drag components onto a form, hit build and hey presto… a fully fledged Windows application. So I saved up, pre-ordered it and waited patiently for it to arrive.

Delivery day arrived… knock at the door… there it was in what, by today’s software standards, was a huge parcel. Oh how I miss the library that accompanied it. I installed it and well… it scared me to death. I wasn’t ready for the apparent shift in paradigm. I’d had access to Turbo Vision since getting Turbo Pascal 7, but I had avoided it for the same reason. So there it was… Delphi 1… and I just didn’t get it, so it languished untouched on my hard drive for a couple of months.

At this point I was looking for my first professional job and I came across an advert in the local newspaper emblazoned with the words… “Delphi experience wanted”. A couple of months after release and someone wanted engineers with experience. I updated my CV, wrote my covering letter and fired up Delphi. A few weeks later and somehow I’d managed to talk myself into a position with a company that was looking to rewrite it’s current software offering using Delphi and whilst I actually didn’t do that much Delphi development for them, I did manage to get over my lack of understanding by developing a suite of components that were to be used to internationalise the new product offering.

And so began my love affair with Delphi.

I got out of the software industry at the end of 2016 after just over 20 years as a professional software engineer. In that time frame the only consistent tool has been Delphi. I can’t remember the complete list of which versions I’ve used but the ones that stick in my mind are 1, 3, 5, 6, Kylix 3, 7, 2006, 2009, XE2, XE7, 10.1.

So why did I stick with Delphi for all those years, when all around me people were moving to C# or jumping on the latest buzzword language of the moment?

For starters, I like Pascal. This may be as simple as the fact it’s the language I’ve used the most, but equally it could be because I just like how I can make my programs read well. Sure, there are some language features I’d like to see, like macros (although not at the expense of the amazing compile times) and the horribly abused conditional operator (the dreaded ? in C), but overall I just like Pascal.

Then there is the backwards compatibility. I’ve recently looked at my old browser based space strategy game, and all the elements that made it up (mostly Delphi 5, but with a little bit of Kylix 3 thrown in for good measure – for a Linux daemon). For the most part I was able to simply open the project and click build, sure there were some components I needed to update the code for (Indy, the MySQL interface and DelphiWebScript), but overall… it just worked… the changes required for Indy, MySQL and DelphiWebScript didn’t, but that’s not the fault of the language or the IDE. Other projects, I’ve just been able to open and build with zero code changes.

Let’s not forget the amazing third party tools and components that are available for Delphi (and some that are sadly no longer around) and you have an amazing software development ecosystem. Some noteworthy mentions…

  • CodeRush by Eagle Software, sadly no longer available but it made my Delphi 5 days much better with it’s amazing IDE enhancements
  • GExperts
  • CodeSite by Raize Software, Ray you are a star. I’ve been using your product for many years and it’s got me out of many a pickle
  • madExcept by madshi, one of the best exception handlers I’ve found. Packed with features that make getting useful information when the unexpected happens an absolute breeze
  • The Indy component suite, this has been at the forefront of my projects for nearly two decades. I’ve used the HTTP server component many times to build dedicated web servers with ease
  • DevExpress, amazing components, love them
  • DevArt, UniDAC and SecureBridge are amazing and their DB management tools are a godsend
  • TMS Software, again, amazing components

Ultimately though, I think the main reason I’ve stuck with it is the versatility.

To the uninitiated it may look like it’s primarily a desktop application development tool courtesy of the component palette, but once you look a little deeper it’s clear it is capable of so much more, and has been for many years. So here’s a selection of the things I’ve worked on…

  • Retail/mail order management solutions
  • Backend management systems for one of the UK’s largest web hosting providers
  • Bespoke software platform for a browser based space strategy game (more info below)
  • Mobile data communications and information system used by fire services within the UK
  • Nuclear power plant control system training simulations
  • Vending machine control and management systems
  • Desktop gaming

But dig a little deeper and you may just discover it’s been used to make game development tools, professional music software and even professional high end PCB design software, and the list doesn’t stop there. Sure you can do these things with other tools, but the disbelief from others when they find out you can do them with Delphi has humoured me many times. Even today, people pop into my Twitch stream (where I’m usually streaming the development of my latest game project) and ask what tools I’m using and can be quite shocked when I mention Delphi.

So here’s a few screen shots of some of my personal projects…

One of my first forays in 3D graphics using OpenGL. It just sits there and spins itself around.
For some reason I have a fascination for problems like this, trying to solve the Eternity II puzzle using a back tracking search algorithm. RAD Studio 2009 with OpenGL for the rendering.
The Outer Reaches – The Second Beginning, a browser based space strategy game running on a bespoke software platform built with Delphi 5 and Kylix 3. Originally released in 2004 as a competitor to some popular games of the time, it ran for several years. This is perhaps the system I’m most proud of, consisting of an editor (for building the website), a bespoke web server built with Indy, a processing service that made time pass in the game universe, a synchronisation/record locking service running on Linux and numerous watchdogs and utility applications, it took 4 years to finish and whilst commercially it was a flop, I had a blast. An ‘in development’ version is available at https://devserver.outer-reaches.com if you’d like to check it out. More information about it is available at http://www.outer-reaches.co.uk/index.php/the-outer-reaches-the-second-beginning/
A version of our current game project ‘The Outer Reaches – Rise of The Raiders’, built for a Pascal game jam back in 2006 using Borland Developer Studio 2006, an ageing (it was old then) DirectX interface called unDelphiX and DelphiWebScript II for the scripting. The new version is using Berlin 10.1, OpenGL and Lua.
A modding tool for the game Freelancer. It uses the amazing UI components (especially the grid) from DevExpress.

So… 25 today… Happy Birthday Delphi! Thank you Borland, CodeGear and now Embarcadero for keeping it alive. It’s kept me gainfully employed for over 20 years and whilst I’m no longer a professional in the software game, it is still my go to tool.

Here’s hoping for another 25 years. Fingers crossed it doesn’t take me that long to finish my current project 😀 Check out the #delphi25 hashtag on Twitter for more content about our favourite language and IDE.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.