back to article Type-safe C-killer Delphi hits 30, but a replacement has risen

Delphi is still very much with us, but the FOSS world also has its own, largely compatible, GUI-based Object Pascal environment – and it's worth a look. Valentine's Day 2025 marked the 30th anniversary of the release of Borland's Delphi, which fused Borland's version of Object Pascal, along with a GUI designer and database …

  1. Knightlie

    Memories...

    I remember this like it was yesterday. Delphi was an absolute fucking game-changer at the time, and we could churn out Windows GUI programs at an alarming rate. My favourite IT product, of any kind (after Space Engineers).

    Given the mess desktop development is right now, I'm tempted to take a look at Lazarus...

    1. GeezaGaz

      Re: Memories...

      It absolutely was. For once you could believe the hype, the ease of BASIC and the speed of C/C++.

      Used to be able to churn out Win16/32 apps with ease. Was happily using Delphi commercially from versions 1 to 7. Post that felt the IDE got too bloated and much like visual studio.

      Lazarus is defo worth a look, been using it occasionally for a few years now and its very close. Compilation speed not quite up to Delphi but all the old libs like RX will work and there's even libs for connecting to DBs like Mysql and it has a built in package manager for adding new libs.

      1. StrangerHereMyself Silver badge

        Re: Memories...

        The problem isn't Lazarus or Delph per se, it's just that there soo many other good options these days like wxWidgets and C#. Most programs are web based these days and Lazarus only supports deskop applications.

        1. news.bot.5543

          Re: Memories...

          I do like C# as a language. Never played with wxWidgets, and maybe I'm missing more than I know, but I certainly wouldn't say there are "so many good options". Unless it's because I've tended to look for C# GUI libraries and you get WPF, MAUI, Avalonia, and Eto. All of which I struggled to make anything that I felt I liked... though I'm not beyond believing the problem is also me

          1. fg_swe Silver badge

            Fltk

            I can recommend both wxWidgets and fltk. You can even ask the WormBrain "chatGPT" for basic fltk operations and it will mostly emit useful code snippets.

            Here is a sample app: https://github.com/DiplIngFrankGerlach/Taschenrechner

    2. ChrisC Silver badge

      Re: Memories...

      Having been in the last year group at uni to be taught Pascal rather than C in the early 90s, and having then spent a few years using Turbo Pascal, when I first heard of Delphi I was very keen to try it out, and as soon as Borland started giving away versions on coverdiscs (late 90s?) I was a convert. Continued using it through into the mid 2000's at my first two employers, but then following a change of jobs I lost access to the paid for versions I'd had previously, and by then IIRC the licencing rules had changed to make using them within a commercial setting questionable at least, and so forced to look around for alternatives, I learned about the existence of FPC/Lazarus, which has now had a constant presence on both my work and personal PCs for the past 16 years.

      Unless you were a power Delphi user and needed access to some of the Delphi-specific stuff not replicated in FPC/Lazarus, then it really will feel very much like you're slipping into a familiar old pair of shoes, and before you know where you are you'll be bashing out code just like the good old days - I'd definitely recommend giving it a try.

      1. Leedos
        Thumb Up

        Re: Memories...

        Same experience at uni. Programming was all taught in Pascal, no C. In the late 90's, I was wondering why I was learning Pascal vs. C. I figured they wanted to focus on teaching the concepts / logic and not focus on language or syntax.

        When I entered the professional world, knowing Pascal was more helpful than I thought it would be. At that time, Visual Basic (for better or worse) was very popular and listed above Turbo Pascal on my resume. During my interview, I was a bit surprised my future boss noting "Oh, you know Pascal?" I got zero questions about VB / ASP experience. I ended up working in the IT department, but the developers were all Pascal / Delphi programmers. That experience taught me a lot about software development. Using in-house software can make a large difference for a company. There's a huge benefit to the business if the software is good, but if done poorly it will hold it back. We had both scenarios when I started. We rewrote the main application in Delphi and moved from DBase to MS-SQL. Web was done in ASP. Not long after launching the new software we were acquired by our largest client for the software and database we built.

        I really believed I would never use Pascal after college. This is one of those occasions when I was happy to be wrong.

        1. An_Old_Dog Silver badge

          Re: Memories...

          As a CS freshman, we were first taught Pascal ... and within that 9-week class, we spent 3 weeks on assembler for a virtual CPU. The assembler + VCPU emulator was called, "Gear's Assembly Language". (I'd love to get a copy of any related docs and/or source code!)

          But my class was never taught C. It was presumed we'd just learn it from the K&R book, and we did.

          I learned every optional computer language they offered: ALGOL-60, Assembler (Gear's, 6800, Z80, CDC 6600, and HP-85), COBOL, FORTRAN, and SNOBOL-4. LISP and BASIC were available on our computers, but weren't specifically taught those in a CS class.

          With the exceptions of Learn Languuage X -type classes, and some Unix-related classes, all our class assignments used Pascal.

        2. RAMChYLD Bronze badge

          Re: Memories...

          Same. When I went to uni, freshman year was Turbo Pascal. However my experience was very different.

          From the second year on, we were migrated to Java. Their explanation was that the world of the future would be Java.

          Yeah right. Out of college, f**king Oracle acquired Sun, and at the same time .net suddenly became a thing and is supposedly the new future (albeit one that I didn't want to partake in, as I had become a full-time Linux user by then). Had to freaking learn VB and C# in 6 months on my own.

        3. fg_swe Silver badge

          Quiche Versus Hamburger

          Truly capable teachers will introduce pupils/students to a proper programming language as opposed to the hamburger dogfood.

    3. PM.

      Re: Memories...

      Give it a try! I dabbled with it recently and loved it !

    4. Lee D Silver badge

      Re: Memories...

      I have yet to see a RAD IDE that I like as much as Delphi and/or the early Visual Basic's.

      You could just... make an app. Then throw in some code. Then it would work.

      I do not understand what toolkit modern app developers are using, but it must suck in comparison because every app looks different and they don't work well and clearly haven't been prototyped for users except the developer himself.

      Last time I bothered to look, I got bogged down in a dozen GUI "frameworks" just on Windows alone.

      Would give my right-arm for a RAD tool like this or early VB plugged into an IDE like Eclipse for C development, though.

      1. Neil Barnes Silver badge

        Re: Memories...

        I just tried the getting started with Lazarus example and have to agree: I'm looking for a simple GUI generator/framework for Linux, handy if it can work on other OSes, and this fits the bill. It did indeed remind me of Windows 16-bit application design.

        Though now I will have to learn Pascal. My only previous experience was working through Dr Crenshaw's compiler guide and converting it - as have so many - into C.

        And the demo example produced a distressingly large executable, but it looks as if it doesn't get too much bigger and can be reduced once it's debugged.

      2. david 12 Silver badge

        Re: Memories...

        have yet to see a RAD IDE that I like as much as Delphi and/or the early Visual Basic's.

        Like "visual", "IDE" is another brand that got copied by someone offering something completely different.

        unix was a "design environment" -- editor, compiler, loader etc. Eclipse is a design environment like unix with X. (or like unix used to be, back when a small unix could fit on a couple of floppies)

        Those other design environments are virtual environments, because the big brother OS has a huge messy file system, with multiple compilers and interpreters and builders, and you need to keep it simple and standard. But they aren't "Integrated" like TPL3 was. They are a design environment with a collection of tools.

      3. fg_swe Silver badge

        So ?

        You are confused by an array of robust GUI toolkits ?

        Just pick one of them and develop your expertise with that.

        Also, avoid Qt if somehow possible. It's a monster of 100 000 files by now.

    5. DoctorPaul Bronze badge

      Re: Memories...

      Bought it the day it came out in the UK, best development environment I ever used. Component based programming was wonderful, especially as you could sell a component in object code form for others to use or sell the full source code.

    6. david 12 Silver badge

      Re: Memories...

      It didn't work! I got the demo and it useless! Demo couldn't save!

      Then I got another copy. B--y D-n floppy disks .... There was -one byte- corrupted in the first copy I got, and it would do everything except save projects.

    7. Evil Auditor Silver badge
      Thumb Up

      Re: Memories...

      I came from Turbo Pascal and then laid my fingers on what I believe (memory's a bit fuzzy) was Pascal for Windows. Which felt like hitting my head on a wall. Repeatedly. I'm not saying that it was bad, just saying I didn't wrap my head around it. Relief and release arrived in the form of Delphi.

    8. StrangerHereMyself Silver badge

      Re: Memories...

      I too was a Delphi convert and made many programs and games with it. But in the end I succumbed to the C / C++ rage and switched to MFC and later wxWidgets.

    9. fortyrunner

      Re: Memories...

      I went to the Windows Show at Olympia and bought a copy on the day it was released - with my own money.

      Went home and built a new app in a couple of days that I had been struggling to write in OWL for about 3 months. The Delphi app was faster, stable and looked 100 times better. It also compiled in seconds rather than multiple minutes.

      My boss took one look and paid me back for the copy I bought. Top bloke.

      Happy days.

    10. news.bot.5543

      Re: Memories...

      As somebody who thinks modern desktop GUI frameworks are absolutely awful, I might also have another look at Lazarus. I did previously, but it was a good 10-15 years ago

    11. anothercynic Silver badge

      Re: Memories...

      I was one of the early adopters of Delphi where many of my peers were struggling with the conversion to Turbo C++ from Turbo Pascal. I found Delphi exceedingly easy to use, and it made way more sense to me than Visual Basic ever did. Being able to build Windows user interfaces *and* getting a proper binary (without the madness of a runtime like VB) was a huge bonus.

      When Delphi 2 arrived, it took me on quite a career path with both Borland and a partner software vendor. -)

  2. steamnut

    Great idea now too pricey

    I started my business with a Turbo Pascal application. I used Paradox too. When Delphi came along is was a no brainer and I used it for a lot of applications.

    When Embarcadero took over the business the costs, even of upgrades, went sky high so I stopped using it.

    Add to that the lack of Linux compatibility and I chose to move to Lazarus.

    1. fg_swe Silver badge

      Pricing

      Even a few thousand dollars are a pittance, compared to what other professionals use at work. A CNC worker will stand in front of a $500 000 machine, for example. If the programming business cannot afford this tiny sum, something about the business must be changed.

  3. Anonymous Coward
    Anonymous Coward

    A colleague of mine uses Delphi/Lazarus

    He says it's much easier and faster to knock up small visual utilities used to make development easier and is currently porting them all from Delphi to Lazarus. I don't doubt it's easier but all I know is that when he retires it's going to be a hell of a problem getting any changes made to them.

    Perhaps Qt Design Studio could be a suitable replacement.

    1. An_Old_Dog Silver badge

      Re: A colleague of mine uses Delphi/Lazarus

      Why do you think getting changes made to your colleague's Lazarus code will be 'a hell of a problem'?

      1. Anonymous Coward
        Anonymous Coward

        Re: A colleague of mine uses Delphi/Lazarus

        Nobody knows Pascal apart from him.

        I'm sure that things can be moved around and a field added, but anything more than that means people who already have more than enough work to do have to find the time to learn... well... Object Pascal. You couldn't even use it for CV bragging rights.

        1. Doctor Syntax Silver badge

          Re: A colleague of mine uses Delphi/Lazarus

          "Nobody knows Pascal apart from him."

          This is certainly untrue. It may be that there are no people with Pascal skills whom you know. Or possibly there are no people you know that you know have Pascal skills that you're aware of.

          However Pascal was designed as a teaching language so it should be easy to learn although IME it's at just the worst distance from C to make learning one from the other tricky.

          Also once your mate retires he could have a nice little earner maintaining all his old stuff.

          1. Richard 12 Silver badge

            Re: A colleague of mine uses Delphi/Lazarus

            Object Pascal is clear enough that anyone understanding object-orientated concepts can pick it up pretty quickly.

            There's some surprising syntax, but nothing all that significant.

            := for assignment, = for equality, and begin...end for blocks are really the main things that get noticed as almost everything that's around today uses =, == and either braces or indentation.

            I found it too "wordy", even compared to C++, but for relatively simple GUI applications it's still hard to beat.

            Shame Borland/Embarcadero effectively killed it by license costs - hence Lazarus, back from the dead...

            1. CommonBloke

              Re: A colleague of mine uses Delphi/Lazarus

              Another thing to keep in mind is that you have to declare everything in the proper blocks and before it is called elsewhere: you can't make a call to "getAverage()" if it's only defined further below in the code. Thankfully, the error messages tend to be very helpful

              1. tamegeek42

                Re: A colleague of mine uses Delphi/Lazarus

                It's been a long while since I wrote any Delphi / Lazarus code (20 years since I last did it professionally, 15 years since I last did it for fun) but I do remember you can do forward declarations of functions and methods. Ah, yes, there it is https://www.freepascal.org/docs-html/ref/refse97.html

                It's a bit of a chore, but it helps catch a ton of problems I frequently see in PHP, and JavaScript which is what I mostly deal with these days. If you are not anal about declaring everything, it won't compile. I prefer catching the problem at compile time than running into head first in production because a unit test didn't actually have as much coverage as its author believed.

              2. Brad Ackerman

                Re: A colleague of mine uses Delphi/Lazarus

                MLs also require declaration before use, and it's pretty much always a good thing.

                1. sabroni Silver badge

                  Re: MLs also require declaration before use, and it's pretty much always a good thing.

                  It's never a good thing. Do two passes. One to get all the function definitions then another to do the compilation.

                  This behaviour (not allowing calls to stuff further down) is just a ball ache and doesn't actually help make your code better.

                  Having all the helper functions at the botton is perfectly sensible. Having them at the top, before the main functional code, is just getting in the way.

                  Can you explain why you think this is good?

                  1. Bitbeisser

                    Re: MLs also require declaration before use, and it's pretty much always a good thing.

                    It's a good thing as it requires you to think more about what you are doing, properly designing your program than just slapping something together.

                    There is more to programming than just slapping together some API stuff as all those Javascript/Python framework monkeys think...

                  2. gnasher729 Silver badge

                    Re: MLs also require declaration before use, and it's pretty much always a good thing.

                    It allows a one-pass compiler. 40 years ago in Pascal that made a significant difference. When I look at Swift code nowadays, I just wonder how it puts all the things together. Don’t even want to know how many passes it needs.

              3. An_Old_Dog Silver badge

                Re: A colleague of mine uses Delphi/Lazarus

                (/me not knowing Object Pascal or Lazarus): does Object Pascal and/or Lazarus not let you use the forward declaration of regular Pascal to work around that problem?

                1. MarkMLl

                  Re: A colleague of mine uses Delphi/Lazarus

                  > (/me not knowing Object Pascal or Lazarus): does Object Pascal and/or Lazarus not let you use the forward declaration of regular Pascal to work around that problem?

                  Yes.

              4. GraXXoR

                Re: A colleague of mine uses Delphi/Lazarus

                IIRC that was called single pass compiling and was one reason why my pascal compiled so much quicker than C back in the day.

            2. Doctor Syntax Silver badge

              Re: A colleague of mine uses Delphi/Lazarus

              "Object Pascal is clear enough that anyone understanding object-orientated concepts can pick it up pretty quickly."

              And anyone not understanding OO concepts will pick thoe up pretty quickly at the same time. That was my experience although it did help that I'd used UCSD Pascal years earlier.

              This was my last gig before retiring and up to then I'd been Informix database and tools. The client decided that Delphi was too old-hat or something and decided to rewrite the application for their flagship contract in C# or C++, can't remember which. The team kept growing and growing by the time I left. My view was that what we'd been doing in Delphi on other contracts was sufficiently flexible that it could have been extended with much less work. I doubt management really understood what they'd got.

              I later heard they lost that contract although I believe some dubious shenanigans to do with re-letting the contract were involved. They now are no more.

            3. fg_swe Silver badge

              Tool Cost

              Compare Delphi license cost to:

              + the toolset+VW bus of a craftsman (probably 100k $)

              + the $500k CNC machine of a modern machinist

              + the $300k truck of a truck driver

              + $30 000 of VisualWorks (noone really knows)

              So the $5000 of Delphi are rather trivial, except if you are totally broke and/or third world.

        2. MarcoV

          Re: A colleague of mine uses Delphi/Lazarus

          So... How many are intimately familiar with QT design Studio?

          The problem is that small programming, specially for windows is a dying art all around. The alternatives superficially might have more buzz, but if they are not already available in the team, the value of it is debatable

          1. Anonymous Coward
            Anonymous Coward

            Re: A colleague of mine uses Delphi/Lazarus

            If forced to choose between an unfamiliar GUI creator and an unfamiliar language or an unfamiliar GUI creator and a familiar language, I figure the second choice is easier to pick up.

            1. MarcoV

              Re: A colleague of mine uses Delphi/Lazarus

              That is a common fallacy. Deep knowledge of libraries is actually usually more limiting than language knowledge.

        3. anothercynic Silver badge

          Re: A colleague of mine uses Delphi/Lazarus

          You'll be ok. ObjectPascal was an absolute doddle to learn (compared to OWL it was child's play), and if you know .NET or C Sharp, you should feel a familiarity when you work in OP... Anders based a lot of his Sharp languages on the likes of Delphi, because it was a very good architectural design.

    2. Knightlie

      Re: A colleague of mine uses Delphi/Lazarus

      Any half-decent developer should be fine maintaining Pascal code. As mentioned it's a bit more wordy than c-likes, but code is code.

      1. kmorwath

        Re: A colleague of mine uses Delphi/Lazarus

        No, Object Pascak and Delphi (and it FPC clone) have their specific semantic, and also you need to know its RTL and libraries. Put it in the hans if a C developer and they will fire into their own feets (saw that). Not long ago I had to fix FPC code where the developer stubbornly avoided to use finally statements to cleanup. And converted exceptions to function boolean return codes...

        1. Rahbut

          Re: A colleague of mine uses Delphi/Lazarus

          It's fairly noddy tbh - it was easy to pick up, and produce things quickly, hence it's popularity back then. If people can read Javascript and/or Python, there's not much to worry about in Delphi or equivalents - it's just a bit more "wordy".

          1. kmorwath

            Re: A colleague of mine uses Delphi/Lazarus

            Try to modify any moderately complex Delphi/FPC code and tell me... it's not garbage collected, and you need to know which RTL functions to call and the class libary structure. You have to know how parameters are passed... and Python doesn't help you here. Do it the wrong wa and you can use too much RAM or leak it. You might re-invent the wheel.

            It's just like starting from Delphi and going to Java (not JavaScript) or Python - even if you can grasp the syntax easily enough, you then need to know a lot more to code efficiently.

        2. Doctor Syntax Silver badge

          Re: A colleague of mine uses Delphi/Lazarus

          "And converted exceptions to function boolean return codes."

          I did that very briefly. You just have to grasp the idioms of any language to use it properly.

          However kudos for your C programmer for returning error codes; s many applications these days give me the impression that many programmers just assume it'll all work fine and plough on regardless.

  4. Anonymous Coward
    Anonymous Coward

    Delphi was awesome back in the day when Borland was in charge. But it all turned to shit when Embarcadero took it over and tried to "modernise" it.

    Some bits of the language did need modernising to work with newer versions of windows, but they went about it all wrong.

    Every new release changed something fundamental and broke all your existing code in ways that were sometimes hard to detect and often time-consuming to fix.

    And when customers complained and asked if they could please have a compile option to keep the old behavior, the answer was always no.

    "You don't have to use the new version. If you don't like it then stick with the old version."

    They didn't seem to understand that customers have deadlines to meet and want to get on with developing their product, not spend months fixing up and testing problems caused by Embarcadero changing the language.

    Contempt for your customers never works out well. Many customers got fed up and moved to other languages that weren't so much hassle.

    1. tony72

      "You don't have to use the new version. If you don't like it then stick with the old version."

      I guess I took that to heart - still using Delphi 2007 in 2025!

      1. Doctor Syntax Silver badge

        I still have a legit Delphi on a W2K VM. Arguably the high point for both products.

    2. kmorwath

      When Borland lost Hejlsberg it never found a real replacement. Allen Bauer was fine, but he had not Hejlsberg control. While a lot of the wrong people started to work on the product design.

      In the past years they borrowed too many langugae features from .NET and Java, and implemented them in a non-OPascal way. That was a mee-too approach, not a sound evolution design of the language. Anyway I didn't found many compatibiliy issues - moved a XE2 application to the last year version and didn't find issues.

      Development was moved to Alicante (Spain) and Iasi (Romania), later when acquired by Idera to Ukraine - don't know what happened when the war started.

    3. anothercynic Silver badge

      When Anders was still at Borland, there was a lot of common sense around.

      Although Anders leaving Borland for Microsoft was like a nuclear bomb went off in the eco system (we were all utterly horrified), it wasn't so much the development teams inside Borland that were at fault. If anything, it was the upper echelons, the C-Suite, that messed with a good company too much, rebranded it multiple times, bought and sold bits, and it was utterly soul destroying to watch.

      We all looked at 'Inprise' as 'WTF!!!', and we all sighed a sigh of relief when they branded back. But all that cost way way too much in a way that Borland never recovered from. :-/

      And we all know what happened after that. I still have a copy of Delphi 4 floating around here somewhere (on CD).

  5. Al fazed
    Facepalm

    Not

    very encouraging.....

    Everything that can go wrong has, and the way to get things right is unfathomable to me at this time.

    I downloaded from Lazarus but it didn't install, just sits in downloads.

    I used Synaptic package manager and downloaded and installed Lazarus.

    No that didn't work either........Upon starting the program I got nothing but error messages.

    MAN pages reckon It could be installed in any number of locations on Linux, with libraries here, other bits go there, and then some go somewhere else.

    Needless to say, if I want to use this IDE I am going to have to dedicated a lot of time to installing it properly first

    SHEESH.........

    ALF

    1. m4r35n357 Silver badge

      Re: Not

      I was intrigued by your report, so I tried myself using the non-gui command: sudo apt-get install lazarus

      It is a BIG install (about 1.4GB), and several of the dependencies take a long time to unpack or install, and look like they are hung. Maybe that is why it looked like synaptic wasn't doing anything?

      It did install, but after seeing a warning about a non-existent lazarus directory, I bailed and uninstalled.

      HTH.

      1. MarkMLl

        Re: Not

        > It did install, but after seeing a warning about a non-existent lazarus directory, I bailed and uninstalled.

        That was probably the warning it gives you when it's about to set up a local configuration directory (~/.lazarus or similar) to hold the IDE's state.

        Most people would consider that a courtesy...

        However I would say that most users get it from the Lazarus repo rather than from Debian/Ubuntu, since that way you've got some level of confidence that you've got a version with bugfixes etc.

        1. m4r35n357 Silver badge

          Re: Not

          So I was being "discourteous" was I? ;)

          I don't even want it myself, I was just trying to give some helpful information to the OP!

        2. Doctor Syntax Silver badge

          Re: Not

          "That was probably the warning it gives you when it's about to set up a local configuration directory"

          The message could usefully be rewritten. The way it's phrased it looks like an error message.

          1. Al fazed
            Facepalm

            Re: Not

            They were definitely error messages which squarely laid the blame on me as well as working out how to fix it.

            Cheers

            ALF

        3. Al fazed
          FAIL

          Re: Not

          I tried both sources actually. First the GUI linked to from the Reg article, then via the MX Synaptic package manager. Both created an install which was broken beyond my capability to fix it

          in my lunch break......

          ALF

      2. Al fazed
        Holmes

        Re: Not

        Yes, that is the problem, left hanging.

        The distro actually did install, twice.........but was broken in a different way each time install was completed. So many missing bits, as I said earlier SHEESH !

        Just for the record, I did like Turbo and Object Pascal and I did use Delphi at university to learn about Object Oriented Programming as well as "safe" programming methods. As opposed to C, etc.

        So much so in fact, I will next attempt the install Lazarus from a command line rather than trying the GUI versions that I tried previously. I feel it would be great to get it working even though I don't yet have a project to use it on. Just need enough hours to read the MAN pages and reverse engineer or maybe re engineer stuff wot iz broke.....

        ALF

    2. tony72

      Re: Not

      I dunno boss, just a dumb Windows guy here, only ever used Lazarus on Windows, but I spun up a Mint VM, downloaded the three .deb packages from the Lazarus site, double-clicked them from my downloads folder to install, in the order it stated to do so on the download page (fpc-laz, then fpc-src, then lazarus-project), then typed startlazarus in a terminal, and it worked perfectly. Only glitch was it didn't show up on the Mint application menu until I went into the menu settings, unticked it, then ticked it again, hence I had to look up how to start it from the command line initially. As a Windows guy, I can't guess what might have gone wrong with your install though, but it certainly was straightforward for me.

  6. heyrick Silver badge
    Happy

    Type-safe C-killer Delphi

    What a trollish subheading.

    I remember there was a time when Delphi was everywhere, and then it just wasn't any more.

    C, meanwhile, is not only still around but the younger devs and random politics are whinging about this and that, like this isn't a known problem...

    1. Mage Silver badge
      Unhappy

      Re: when Delphi was everywhere

      And so was VB6, then MS killed it. But VB.net is pointless compared to C# and neither can do some of the things simple on VB6.

      I shall look at Lazarus, especially as I'm now using Linux instead of Windows.

      Long ago before Windows, I was using Modula-2 on CP/M and MS-DOS.

    2. MarkMLl

      Re: What a trollish subheading.

      Why should that be trollish? It's a statement of fact: it was basically Pascal which introduced the idea of a distinction between floats and integers, and moved the idea of records from being solely related to I/O to being a core part of the language.

      I'm up to here ^ with arguing the merits of different languages, but the fact remains that most of the ideas that were introduced by Wirth in Pascal (and tightened up in Modula-2 etc.) have subsequently been embraced by most other languages- or their successors, or by things that claim to be the same language while in fact being unrecognisable (I'm looking at you, free-form FORTRAN).

      We don't have to like Pascal or use it, but that doesn't mean we shouldn't respect it and recognise its place in history.

      1. kmorwath

        Re: What a trollish subheading.

        The fact that Pascal is strongly typed, parameter passing is well defined, and comes with managed strings make it far less prone to many kind of vulnerabilities common in C/C++. Wasn't NIST that cited it among the safe languages? Unluckily the available development environments are what they are..

        But it looks many people hate Pascal for some reasons, maybe because they were forced to learn it at school, and they believed it wasn't enough incomprensible to make them look like some computer wizards.

  7. Ball boy Silver badge

    Ah, Delphi!

    Back in the day, I needed to build import tools that (mostly) relied on calling functionality in third party apps. so my 'glue' wasn't particularly time-sensitive - there was no need to build it in C/C++ but these tools occasionally needed to call on image manipulation libs. Not all the time, just once every a few thousand iterations.

    In VB, all the libraries for these occasional calls would had to have been bound 100% of the time - soaking up RAM. The magic of Delphi was _late binding_ so I could call a DLL, use it as required then free up the memory again once I'd done. When memory was rare (we're talking 16Mb being about the most anyone ever had) this meant my code could almost always keep ticking away at full speed rather than pause while the OS swapped stuff about to satisfy other tasks. Given an import could take the better part of a week, this was a significant performance difference.

    I miss those days. I rather liked using an IDE and language was alien to other people - made me feel I was doing something 'different'! That was also the downside: calling other API's always needed me to mentally translate everything into Delphi friendly routines before I could cut the code. However, I stuck with it from D1 through to D5 because it was just so elegant and efficient to use.

  8. MarkMLl
    Flame

    The bottom line...

    ...is that "more sexy" languages have nothing remotely comparable with the Lazarus IDE, which as well as including a form designer etc. has fully-integrated debugging.

    Rust, in particular, is going to find that a very high bar to clear.

    1. werdsmith Silver badge

      Re: The bottom line...

      Rust will just be VS Code and an ever growing choice of extensions, which is how it’s done now.

      1. MarkMLl

        Re: The bottom line...

        > Rust will just be VS Code and an ever growing choice of extensions, which is how it’s done now.

        "slow compilation and debugging difficulty remain big challenges."

        https://devclass.com/2025/02/18/state-of-rust-survey-2024-most-rust-developers-worry-about-the-future-of-the-language/, cited by El Reg 20th February.

        However history shows that you can't just stick unrelated plugins into a tool, and expect them to work together. As a specific example it's not too difficult to have a form designer and it's not too difficult to have a debugger, but there are very few IDEs which have managed to integrate a debugger into a form's event handler: and most of those either came from or were heavily influenced by Borland.

    2. Richard 12 Silver badge

      Re: The bottom line...

      Rust seems to be explicitly ignoring GUI.

      Some of its core concepts are basically incompatible with GUIs - no inheritance at all seems to be an explicit choice, and that's pretty much a requirement for GUI.

      C's idea of inheritance is somewhat icky, but it does at least work. Rust couldn't do it like that without the whole damn thing being "unsafe".

      1. kmorwath

        "no inheritance at all seems to be an explicit choice"

        No, it isn't. Win32 for example is plain C, not C++. Still Delphi VCL made it far more easier to use, even without the RAD form designed, than using it directly, or even MFC, which was a tiny OO layer only.

        The adage "you neeed 100 lines of C code to show hello world" with Windows was true, Delphi made it a one line of code.

        It looks to me recent languages are only simplified version of older ones, aimed at more specific use. Desltop development became a more niche sector (albeit large), and more and more application abandon the OS widget set and try to use their own one. Good bye to ease of use...

        1. chololennon

          Re: "no inheritance at all seems to be an explicit choice"

          > The adage "you neeed 100 lines of C code to show hello world" with Windows was true, Delphi made it a one line of code.

          The adage was always false, but I know what you mean, a full application with its own message loop, which is not necessary for a Hello World example (I am sorry for the bad format, The Register's forum is not very friendly with programming code):

          #include <Windows.h>

          int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, PSTR cmdline, int cmdshow)

          {

          return MessageBox(NULL, "Hello World", "Caption", MB_OK | MB_ICONINFORMATION);

          }

          1. kmorwath

            Re: "no inheritance at all seems to be an explicit choice"

            Your just displaying a message box, not a full application window with a hello world string. Otherwise you can also output a string in a console Win32 application.

            1. chololennon
              Facepalm

              Re: "no inheritance at all seems to be an explicit choice"

              > Your just displaying a message box, not a full application window with a hello world string. Otherwise you can also output a string in a console Win32 application.

              Since then a Hello World example is, or must be, a full application? C'mon!. And we are talking about a Hello World example as a GUI application, you know it, so a Win32 application that output a string in a console (basically a program with WinMain + a call to WriteConsole API) is not part of this discussion.

              I am sorry for my CV here, but I have used Delphi/C++ Builder/Plain C and C++ with Windows API, VC++ with MFC/ATL/WTL, VB, and VFP extensively in the past to build any kind of Windows application, so I have some knowledge on those tools/programming languages.

              1. kmorwath

                Re: "no inheritance at all seems to be an explicit choice"

                All those "Hello world" example were designed to show how to initialize the main application window - because that's how you had to start to write a real Windows application. You can'd do anything more with your example - it's just a useless trick leading nowhere, so useless to learn Windows development.

                Keep on braggiing...

                1. chololennon
                  FAIL

                  Re: "no inheritance at all seems to be an explicit choice"

                  >> All those "Hello world" example were designed to show how to initialize the main application window

                  You are soooo wrong.The 1st Hello World example appeared in the famous book from Kernigan and Ritchie, "The C programming language" in 1978! when Windows (and its GUI applications) didn't exist. There is no rule for that kind of example, but the key idea is to show how you can write a minimal working piece of code in a specific programming language/platform, and like it or not, in plain Win16/32/64 C or C++, the MessageBox example is the shortest way. The long way, of course, is to create a window with its own message loop to react to the event messages you want.

                  Last but not least: comparing plain C or C++ with Windows API, and Delphi, is comparing apples and oranges. A fair comparisson would be:

                  - Plain Win16/32/64 C/C++ vs Plain Win16/32/64 (Object) Pascal.

                  - C++ with MFC/WTL/QT/VCL/etc vs Delphi/VCL.

                  >> it's just a useless trick leading nowhere

                  You can write a perfect/useful Windows application with just the functionality of MessageBox API. It just depends on your needs.

                  1. kmorwath

                    Re: "no inheritance at all seems to be an explicit choice"

                    Hello world example predates C probably. But I was talking about the fact you don't need an OOP language for a GUI, but it can make GUI development far easier, citing the example of a Windows application and its long initialization code compared to the simplicity of a class wrapping it in Delphi, since this article was about Delphi.

                    Then if you like we could go back to ENIAC or Colossus... or the way to build silly applications with MessageBox only....

                    "is comparing apples and oranges."

                    No, it isn't. VCL is a OO wrapper over Win32, designed to make easier to use Win32 itself. It's not a separate widget library like FireMonkey (which is portable, VCL is not)

                    " Plain Win16/32/64 C/C++ vs Plain Win16/32/64 (Object) Pascal."

                    That would be identical, but the language syntax. Borland Pascal is ABI compatible with C DLLs.

                    "C++ with MFC/WTL/QT/VCL/etc vs Delphi/VCL."

                    If you wish to compare the merits and demerits of each library yes. If you wish to compare a plain C GUI API and a OO one no.

              2. anothercynic Silver badge

                Re: "no inheritance at all seems to be an explicit choice"

                The poster you're responding to is correct.

                Calling a message box was never a 'hello world' example.

                If you look at the documentation of the time period (and I specifically refer here to the Windows 3.1/Windows 95 era when Delphi first made its appearance), I recall 'hello world' examples instantiating a form/window, and outputting a string onto that, *not* making a WinAPI call to MessageBox. There *were* examples of writing to the command-line too, but those were specifically referred to as 'console applications'.

                And yes, I have extensive Delphi/C++Builder/C/C++/CSharp/VB experience too. And comparing 1970s examples of code to 1990s examples of code that used a different presentation layer to prove your point is just lazy.

  9. shd

    As @Knightlie said, game changer at the time. I came in at something like version 3; mostly used it to write various utility programs - initially for internal use, but they "escaped". Still maintaining them to this day. A big plus point was that the output was a single executable; so simple to "install" (just copy into an appropriate place). Then version 8 appeared to sell its soul to Microsoft - went all "dot net" and suddenly needed an installer and multiple files. So we stopped at version 7.

    Still not sure what to replace it with; unfortunately we used a couple of non-Delphi libraries, so Lazarus isn't an easy way out. I'd also like to drop Pascal, if possible, and have the option of multi-platform support. QT seems the obvious choice, but I'm not sure how our distributing software at no charge in a commercial environment would sit with their free licensing tiers (I've not bothered to check), and there's no way we could afford or justify a paying licence.

    1. Anonymous Coward
  10. kmorwath

    Compared to Delphi, FPC and Lazarus are a joke

    They are mostly stuck at the Delphi 7 era of many eons ago. And they waste resouce in compilers for architecture nobody uses, while missing important features. A lot of code is from old libraries barely maintained. And they of course lack the high-end commercial libraries that could make Delphi very powerful. I'm maintaining right now an application written in FPC (on Linux, which is going to be replaced by a Python one), and regardless how much I like Object Pascal - the IDE, compiler and debugger are very far behind. I also developed a small network utility with a recent verision of Delphi for fun, and while it's clear the IDE and compiler made fewer improvements from the last time I used it for large applications (more than ten years ago), it's still far more advanced than FPC/Lazarus. But current Idera commercial policies are really bad - and since skilled developers became rarer and rarer, it's a suicide to invest in it anymore.

    Unluckily, since Borland fell on its own sword, Delphi development happened at a glacial pace, and many mistakes were made (like turning it into a .NET language). Anyway, it was sold the wrong way, as a VB replacement, while it should have been sold as an "easier C++" - since it was truly compìled and fully OO.

    I do not know why many people didn't like Pascal, just because begin..end while using exoteric character and make code less readable make people look like wizards? Or because it was invented by a Swiss guy (hence probably why characters not common on non-US keyboards were used...) unconsciusly triggered chauvinistc sentiments? Don't know, if Wirth, being a scientist, didn't design new incompatible languages (Modula-2 and Oberon) but had developed Pascal itself, maybe it would have been better accepted. Still the Borland version had a lot of nice features - from COW managed strings (hard to introduce buffer overflows if you didn't try hard) to a C compatible ABI. Also I do not know why Go and Rust get rid of exceptions, that's how to get robust code. Probably because stack unwinding is hard... let the developer check for each error. Object Oriented development is also no longer fashionable, and again I wonder why. Guess it's too complex to grasp for the new generations, used to HTML and Javascript.

    Anyway, it's a pity IDEs so powerful no longer really exist. It is true most applications are web frontends now, but native applications didn't go away. And they got worse because the tools to develop them became worse as well.

    1. Doctor Syntax Silver badge

      Re: Compared to Delphi, FPC and Lazarus are a joke

      "characters not common on non-US keyboards"

      What characters? I use a non-US keyboard & haven't encountered such a problem.

      1. kmorwath

        Re: Compared to Delphi, FPC and Lazarus are a joke

        Which keyboard are you using? A British one?

        Getting curly braces on an Italian keyboard, for example, require EMacs-style key combinations. Other characters may require Alt+xyz sequences A Swiss keyboards needs a lot of accented characters from different languages (remeber Switzerland has four official languages). Unlike C and C++, Pascal uses characters quite common in most Western keyboards. C has been designed with a specific language in mind only. And took many shortcuts to make writing the compiler easier, like case sensitivity. I like Pascal, like people, is not case sensitive. But again German has more complex capitalization rules than English.

        1. Korev Silver badge
          Pint

          Re: Compared to Delphi, FPC and Lazarus are a joke

          > Swiss keyboards needs a lot of accented characters from different languages (remeber Switzerland has four official languages).

          This Swiss laptop's keyboard is set to the Queen's English, Brenda would be proud!

          The nearest thing we have to Gin and Dubonnet -->

          1. druck Silver badge

            Re: Compared to Delphi, FPC and Lazarus are a joke

            It's the King's English these days.

        2. Doctor Syntax Silver badge

          Re: Compared to Delphi, FPC and Lazarus are a joke

          "Getting curly braces on an Italian keyboard, for example, require EMacs-style key combinations."

          That's going to be a pain in C-like languages. It may be why Pascal allows (*....*) as a replacement for {...}. Looking at it again and taking some of your other replies into consideration perhaps what I read in your OP wasn't what you intended to say.

    2. Mage Silver badge

      Re: Compared to Delphi, FPC and Lazarus are a joke

      A lot of Pascal development was also in Belfast, (QUB) and Professor Hoare was also involved.

      What characters not common on non-USA keyboards? The standard US Keyboard has one less letter/punctuation key, some don't have AltGr. It's the least useful On MS Windows/DOS unless you are only using American English and no accents. The US International layout is better on Windows. Linux has both more characters on AltGr and the Compose Key.

      I don't think any version of Pascal or Modula-2 uses characters not used in C.

      Most applications are not Web front ends, unless you are using App versions of websites on phone/tablet or so-called "Cloud" services; both of those are a bad idea.

      1. kmorwath

        What characters not common on non-USA keyboards?

        Most European keyboards have to use key for accented characters and the like that are not used in the English language. And they replace less used keys like curly braces, tildes (but in Spain) and so on. Other characters are moved around. Just look for keyboard layouts and you'll know.

        "The US International layout is better on Windows"

        No, if your PC comes with a specific keyboard - especially laptos, and when you have to use different machines, it's not comfortable to switch from one layout to another.

        "I don't think any version of Pascal or Modula-2 uses characters not used in C."

        Pascal does use culry braces for comments, but it also allowed to use the (* *) sequence. The tilde which is used in C++ for destructos is not used. And it uses "special character" far less. Some were introducer later, i.e. @ instead of a ptr() call - but in Pascal you don't need to access pointer reference continuolsy like in C. "and" "or" "not" are written as such.

        "Most applications are not Web front ends,"

        Today, most LoBs applications are web frontends.

        1. werdsmith Silver badge

          Re: What characters not common on non-USA keyboards?

          When creating passwords for our colleagues in Europe, some folk like to include a couple of £s for a laugh.

          1. Doctor Syntax Silver badge

            Re: What characters not common on non-USA keyboards?

            I suppose those in Europe can get their own back by including a couple of Euros.

            1. kmorwath

              Re: What characters not common on non-USA keyboards?

              No, better to use some accented or specific letters unavailable on a GB keyboard easily - like German ß, or some nordic ø - the euro might be there (the Italian keyboard has the pound key becaue it was used for the lira too). The auhor of this article for example wrote "Cantu" instead of "Cantù" which is the correct way to write Marco last name.

    3. chololennon

      Re: Compared to Delphi, FPC and Lazarus are a joke

      > Unluckily, since Borland fell on its own sword, Delphi development happened at a glacial pace, and many mistakes were made (like turning it into a .NET language). Anyway, it was sold the wrong way, as a VB replacement, while it should have been sold as an "easier C++" - since it was truly compìled and fully OO.

      Delphi was comparable to C++ because it was far better/powerful than VB, but they couldn't sell it as an "easier C++" because, at the same time, they were selling "the easier C++" (C++ Builder).

      1. kmorwath

        Re: Compared to Delphi, FPC and Lazarus are a joke

        C++ builder was RAD but the language was still C++, and IMHO harder to learn than Object Pascal. Still Object Pascal was more powerful but harder to learn than Visual Basic. Borland highlighted the RAD simplicity, but downplayed the language power. This way, the simpler VB won. Then Hejlsberg married Java and Delphi and obtained C#.

        And no matter how they tried hrd to sell C++ first and later Java (remember JBuilder?) it was Object Pascal they fully controlled. Eventually JBuilder was eclipsed by Eclipse (then hailed as the 'last IDE', then we saw new ones) and C++ Builder couldn't keep the pace with VC++ and gcc.

        They sidelined their most successful products to attack new markets where they had no the resources to compete.

        1. chololennon

          Re: Compared to Delphi, FPC and Lazarus are a joke

          > C++ builder was RAD but the language was still C++,

          Well, we could say yes and no: When used alone C++ was the usual language we used to know at that time (*), but when used with VCL library, the language used to had some restrictions/extensions like single inheritance, delegates, properties, extended RTTI, etc, a kind of different language.

          > and IMHO harder to learn than Object Pascal. Still Object Pascal was more powerful but harder to learn than Visual Basic. Borland highlighted the RAD simplicity, but downplayed the language power. This way, the simpler VB won. Then Hejlsberg married Java and Delphi and obtained C#.

          I agree.

          (*) Sadly C++ Builder was more compatible with VC++ extensions (e.g. COM related stuff like #import) than with ISO C++.

          1. kmorwath

            Re: Compared to Delphi, FPC and Lazarus are a joke

            Yes, the VCL C++ Builder used was still the one written in Pascal, it wasn't a C++ implementation, so Borland had to extened the language somehow to allow it to consume and extend that code. Had they the resource to write a C++ VCL, it would have been probably a better path. OWL was a C++ library, but then Borland put all efforts in the VCL, later changed its mind again... this lack of focus, caused by lack of resources, IMHO severely hampered their products.

            C++ Builder was also a Windows tool, so the main competitor was VC++, especially once other competitors like Wacom disappeared.

            C++ itself changed little for a while, but then started to move far more quickly, and keeping a compiler aligned with later standards became a far more intensive task, and they couldn't cope. So switched to LLVM.

            1. chololennon

              Re: Compared to Delphi, FPC and Lazarus are a joke

              > Yes, the VCL C++ Builder used was still the one written in Pascal, it wasn't a C++ implementation, so Borland had to extened the language somehow to allow it to consume and extend that code

              Yeah, the VCL library was written in Pascal with some binding to the extended version of C++. The weired/funny part of this was when debugging a C++ Builder application, the step by step functionality jumps from C++ to Pascal code in order to continue the debug process in the land of Niklaus Wirth.

    4. MarkMLl

      Re: Compared to Delphi, FPC and Lazarus are a joke

      > Compared to Delphi, FPC and Lazarus are a joke

      >

      > They are mostly stuck at the Delphi 7 era of many eons ago.

      In that case make a one-time posting to the forum or mailing list, telling the developers what's gone wrong.

      I use FPC/Lazarus, but that does not necessarily make me a shill for it.

      1. kmorwath

        Re: Compared to Delphi, FPC and Lazarus are a joke

        The problem with FPC is the lack the people to move the language forward, it is mostly a copy of Delph and relied on Delphi developmenti. With Delphi slowed down a lot too, and losing more and more users, FPC is unable to take the lead.

        We abandoned Delphi in the XE2 years. Our desktop Windows development dwindled, and the cost of Delphi itself plus the required third party libraries and tools (i.e. DevExpress, AQTime, etc.) was no longer justified. I used it a couple of years ago again, to quickly create a GUI for a 1553 bus analyzer written in VC++. Still far better than FPC/Lazarus.

        The FPC application I had to mantain was written by developers who stubbornly didn't want to leave it, even if the company no longer bought Delphi licenses. I had to fix a banal error that broke the HTTP data processing - they switched from strings to array, and didn't adjuste the offset (arrays starts from 0, strings from 1...). Made a patch, uploaded to their GitLab, nobody cared for a long time. I wonder why nobody was impacted by it. They were also ignoring additional headers. And while debugging, I saw how much unmantained code is there.

        This application is going to be rewritten in Python. Unluckily, it's easier to find skilled developers, and trying today to ask someone to learn Pascal makes them wonder where they got a job. Often, it's just because the Internet is full of lusers trashing Pascal - for reasons I never understood. I like it, but today there are no tools to rely on for professional work, - FPC/Lazarus are not - nor the developers to take advantage of it.

        If you need a compiler for Amiga or Sinclair you may loot at it, but today if you want a tool for actual and future applications, you can't really waste resources on vintage systems. I know that's how FOSS work, everybody is free to work on what they like - but that's why I don't like FOSS.

    5. Steve Davies 3 Silver badge

      Re: Compared to Delphi, FPC and Lazarus are a joke

      Not a joke but a great tool.

      I use a Lazarus app almost every day to process my server logs and automatically update the system firewall rules. Yes, I could do it via shell scripts but posting the new rules in the GUI allow me to edit the rule based upon the output from a 'whois' command.

      1. kmorwath

        Re: Compared to Delphi, FPC and Lazarus are a joke

        As an internal tool maybe - but today I won't deliver to a customer anything written with FPC. The quality is not there.

  11. Maximus Decimus Meridius
    Unhappy

    Delphi - A fantastic product let down by decades of mismanagement

    I have used Delphi for 25+ years professionally (and all the way back to V1 personally). It really was a fantastic product. Unfortunately, it was owned by Borland who didn't really know what to do with it once they tried to go all Enterprisey and turned themselves into Inprise. After that, it has unfortunately stagnated. Coupled with the loss of community and 3rd party support it languishes in a backwater, used only by companies who invested heavily in it decades ago and now have huge codebases that can't easily be replaced.

    Such a shame. If MS had bought Borland (or at least Delphi) when they poached Anders Hejlsburg, it would have been huge. It had its moment in the sun in the late 90's and early 00's but just ebbed away.

    The joy of receiving The Delphi Magazine every month. The Saturday mornings lost to browsing what was new on Torrys Delphi Page.

    I am sad now.

    1. kmorwath

      Re: Delphi - A fantastic product let down by decades of mismanagement

      I'm sure MS would have made it worse.

      Anyway Borland and its successors remained stuck into 1995 SKUs, while the IT world evolved a lot. Even today, the Professional SKU can't access remote RDBMS out of the box (you need third party libraries). Now in 1995 RDBMS were the like of Oracle, Sybase and DB2 needing Unix boxes, and many applications run on dBase like shared file database. But when MySQL and Postgres became available, that changed completely, RDBMS were no longer the exclusive of big companies with the iron to run Oracle (and even those database got on smaller servers). But today you get an expensive Pro SKU that cannot connect to MySQL or Postgres, but locally. You need to buy the even more expensive Enterpirse SKU.

      And the Enterprise SKU, but some RDBMS drivers, doesn't really offer real "Enterprise" features. Delphi is still inherently a desktop development system, as it was still Windows 3.1 era, and Microsoft didn't sell a server operating system. In Delphi XE2 the Windows service implementation was still limited to Windows NT API only. AD integration, message queues, etc. were unheard of. There was a half backed DCOM server library, very difficult to use. Network and web libraries came only through the third party Indy library, or other commercial ones.

      Now you can target macOS/iOS/Android also - but with a different GUI library since VCL is too tied to the Windows API, and the resources to develop all that were never adequate. And there were many missteps dut to FaDD - Fashion Driven Development, i.e. when they tried to switch to ARC for object management.

      It was a perfect example on how you can get a very good product, and then kill it by bad marketing and bad management, trying to milk customers until they die.

      1. wub

        Re: Delphi - A fantastic product let down by decades of mismanagement

        Pity my memory is so unreliable, I won't have the details, but:

        I used Delphi to make programs that allowed users to share a database. When I started this project, I bought the Enterprise version (D5?), but ended up using Firebird as my SQL server, and I wish I could recall what libraries I needed for that, but I know I did not rely on any of the Enterprise-only features, so I upgraded to plain, vanilla D6 then D7. After D7, to upgrade I would have had to practically rewrite everything, so I never upgraded past that. I tried Lazarus when it came out, but could not find a way to continue with the Firebird lash-up I relied on. I seem to recall that Lazarus used the "features" of D8, so forgot about it. Have to give it another look!

        1. kmorwath

          Re: Delphi - A fantastic product let down by decades of mismanagement

          Firebird was made from an Borland Interbase fork when it was made briefly open source. It could be accessed through the BDE* with the Interbase drivers, and from some version with its own library without the BDE. I don't remember now if in some of the releases the Pro SKU was allowed to call a remote instance of Interbase. Anyway RDBMS access was and is still used to try selling the Enterprise SKU.

          The even more expensive Architect one was just a bundle with other applications that usually lasted a release or two only - making it a waste of money.

          "After D7, to upgrade I would have had to practically rewrite everything"

          Why? The BDE was still supported for a long time, maybe is still in the product. Anyway the past D7 release had a long string of issues, until Delphi 2007. Delphi 8 was .NET only.

          * Borland Database Engine, a dbBase-derived middleware that could manage dBase/Paradox/FoxPro files, or connect to RDBMS with its own driver, and then present a common API to applications. Borland and its successor failed over and over to deliver a good replacement (dbExpress, anyone?) - maybe there's now one since they acquired an external company. Anyway good third party libraries existed, but added to the costs. I was using Direct Oracle Access (DOA) to write applications using Oracle as the backend.

      2. Doctor Syntax Silver badge

        Re: Delphi - A fantastic product let down by decades of mismanagement

        "trying to milk customers until they die"

        There are certain companies that are bad news when they buy a platform you've come to depend on.

        1. MonkeyJuice Bronze badge

          Re: Delphi - A fantastic product let down by decades of mismanagement

          Hello Oracle. Yes, you.

    2. Knightlie

      Re: Delphi - A fantastic product let down by decades of mismanagement

      It was a high point in software development that will never be beaten, IMO. I'm jaded, frustrated and bored by modern development now - but NEVER when I was using Turbo/Borland Pascal and Delphi. Such fun times.

    3. Mage Silver badge
      Unhappy

      Re: Delphi - A fantastic product let down by decades of mismanagement

      I'm sad too.

      I also miss Verity Stob.

    4. HereIAmJH Silver badge

      Re: Delphi - A fantastic product let down by decades of mismanagement

      Unfortunately, it was owned by Borland who didn't really know what to do with it once they tried to go all Enterprisey and turned themselves into Inprise.

      Unfortunately, Delphi's heyday was during Microsoft's monopolistic phase. It's really hard to compete against free. If you need MSDN for your development, and Visual Studio is essentially free, how do you sell management on purchasing Delphi Enterprise and support contracts? Borland/Inprise stumbled over .NET. Had they stuck with VCL and worked on 3rd party library support they would have been better off. But again, fighting against free.

      1. kmorwath

        Re: Delphi - A fantastic product let down by decades of mismanagement

        It wasn't the monopolistic phase, it was the commerciala software phase. For a while, there was a lot of competittion among applications under Windows. and Microsoft didn't have the monopoly it has today. When you have to pay, you choose what gives you the best ROI.

        For a while Borland also made nice money from JBuilder, and invested heavily in it, sidelining Delphi and C++ Builder, because eterprise development was going to Java. When Eclipse came for free, JBuilder was dead. Microsot too started to roll out free version of its IDE, and even the paid-for version were cheaper. Hey, today even a lot of MS-haters use Visual Studio Code because it's free...

        .NET and C# removed many of the Visual Basic linitations, and looked alike Java. Microsoft kept on changing GUI libraries, but a lot of development switched to the web - where Delphi had no place.

        Borland could not adapt - it made money selling development tools, had very little other revenue streams. Buying dBase and Visigenic ended badly, and they didn't even terminate to integrate truly Delphi and C++ Builder with the latter. Interbase was probably the less known of RDBMS, they tried to open source it, than changed their mind quickly.

        The pivot to application lifecycle management tools failed too, but again sidelined the flagship products.

        I advised them back then their attempt to move to .NET was a very bad move (I knew Marco Cantù and others quite well), it would have took away resources from the Windows version where they had full control of the language/library to an environemnt where MS had full control and their applications would have had not any advantage of C# - and C# would have been always ahead. .NET was designed to allow MS take full control from the start, once they couldn't bend Java to their needs. Many switched to C# - and with MS tools, not Borland ones.

        They delivered the .NET only Delphi 8 which was a failure. The IDE rewrite to accomodate .NET lead to a very unstable and buggy one that took three (paid) releases to be fixed, enraging customers. The 64 bit compiler and Unicode support came late, because efforts were in .NET. The JBuilder debacle didn't teach them anything.

        They bought a Delphi-like IDE for PHP (made from a small Spanish company) but didn't believe in it too. IIRC they also atteempted somthing in Ruby, but ignored Python. JetBrains can make money from PyCharm and the like.

        "worked on 3rd party library support"

        There was a large market of 3rd party libraries. Some of the truly excellent, like Developer Express ones. And you can buy most of them with source code too - which made debugging, extending them and fixing bugs far easier. Delphi libraries, unlike Visual Basic OCX, were written in Delphi - which have full access to the Windows API.

        1. HereIAmJH Silver badge

          Re: Delphi - A fantastic product let down by decades of mismanagement

          There was a large market of 3rd party libraries. Some of the truly excellent, like Developer Express ones. And you can buy most of them with source code too - which made debugging, extending them and fixing bugs far easier.

          I had a full bookshelf of 3rd party libraries going back to the TurboPascal days. And nothing matched what became available once I switched to Visual Studio/C#. That bookcase also contained lots of books from people like Marco Cantu and Steve Teixeira that I met at various BorCons. BTW, David Intersimone gave the best demo of Delphi I have ever seen. Mopped the floor with the marketing team trying to sell Visual Basic.

          I worked in Delphi for 20 years while fewer and fewer companies used it. Both companies I worked for had significant application suites used internally, but neither upgraded past Delphi 7. I quit using Delphi 7 in 2015 when I moved to Visual Studio. The first company moved to Microsoft's ERP and the second rewrote their app in C# at a cost of about $3 million because they didn't think they could find Delphi developers.

          Delphi libraries, unlike Visual Basic OCX, were written in Delphi - which have full access to the Windows API.

          Delphi's strength was the VCL, and I see it's DNA all through C#. And even today Microsoft has crappy C# objects for database access compared to Delphi's BDE. 'Object reference not set to an instance of an object.' instead of an integrated BOF/EOF or a decent record count on the base object.

  12. Greybearded old scrote
    WTF?

    Liam, how could you?

    I don't believe you wrote about Delphi without mentioning our blessed Verity.

    1. Liam Proven (Written by Reg staff) Silver badge

      Re: Liam, how could you?

      > I don't believe you wrote about Delphi without mentioning our blessed Verity.

      See my comment further down the page...

  13. kmorwath

    Object Pascal...

    Actually Borland Object Pascal is not exactly Apple Object Pascal (although related), and for a while Borland tried to rename the language itself Delphi but eventually failed.

    It is true that Apple developed Object Pascal first. Borland took inspiration from it, and developed the first version, the one who went into Turbo Pascal 5.5, and was called Object Pascal too.

    When Delphi was designed, changes to the language and object structures were made to ease the RAD approch. The two most notable ones were the use of the "class" keyworrd instead of "object", and the automatic instation of a class instance on the heap. In TurboPascal, like in C++, instances could be created on the stack, or in the heap with the new() function call, that was removed in Delphi. Other changes were made, for example "published" properties can appear in the IDE automatically thanks to RTTI.

    Without a body able to make a standard for commercial Pascal (unlike C and C++, and ISO standard exists but is very limited), every vendor went its own way, and Borland eventually was the only one selling a successful Pascal-based development tool, and kept developing the language on its own.

  14. wub

    The right tool at the right time, for me.

    I worked in a small company, with close to no budget as the entire IT department. I taught myself to code in Turbo Pascal using Jeff Duntemann's excellent book Complete Turbo Pascal, and a lot of trial and error. Initially I made small tools for my own use, so any resulting damage was only self-inflicted. Somewhere around this time Delphi 1.0 came out and since everyone I might code for was using Windows, this was an absolute miracle for me. I am embarrassed to say I never learned all the underpinning of the Windows desktop, but Delphi protected me from that and allowed me to make decent, functional applications that did what we needed. Soon after, I discovered a local user's group with about 20 folks who were far more talented and experienced and who were generous with their time and ideas to help someone like me from time to time.

    Having finally convinced myself that I could become comfortable with Linux, I proceeded to create a network for the other employees, following Paul Sery's excellent Linux Network Toolkit and even more trial and error.

    Eventually I was bold enough to make a multi-user database application to track our workflow, using Firebird as the SQL server. I did hire a consultant to help me get the database schema into good shape Yet another miracle, in my view. I remember searching the SciTech bookstore looking for a book that could help me with Firebird analogous to the other two books I mentioned, but all I found was shelf after shelf of Oracle books, and some about DB2 and friends. Someone at a user's group meeting finally pointed out to me that the reason there were so many large, heavy Oracle books was that Oracle needed a tremendous amount of looking-after. Firebird mostly took care of itself. My biggest maintenance chore was going back and adding the indices that I did not initally realize were needed

    But without Delphi, none of that would have mattered...

    1. fg_swe Silver badge

      So ?

      How is this firebird+Delphi combo going these days for you ?

  15. trevorde Silver badge

    Lest we forget

    Borland C++ Builder which used the same compiler back end as Delphi. You could even use Delphi pascal code and controls seamlessly with Builder. It was truly a killer combo. Used it a few years ago on a small project. It was like meeting an old girlfriend after many years - still looking good, still got it and you still would.

    1. kmorwath

      Re: Lest we forget

      Lack of compiler improvements became a sore point - and highlighted lack of skills inside the company. Even the memory manager at some point came from an external project (FastMM). Eventually they switched to LLVM, but for Delphi on Windows.

      While the single pass compiler was very welcome in DOS/TP days, later it just became too difficult make it generate more optimized code, and it couldn't target a CPU generation.

      FPC may be slightly better for targets, but its debugging facilities aren't very good - too many backends and none really complete. With Delphi I was using AQTime for profiling, don't know if anything alike exists for FPC.

  16. NZ_M
    Unhappy

    Good language but buggy IDE and debugger

    The language itself is reasonable and the Delphi IDE great for simple prototype style apps. I first used Delphi at 1.0/2.0, stopped using it until just over 10 years ago when I started my current job. We use Delphi extensively and it's hard to get good programmers as few want to use it. For our large 64 bit apps the IDE, LSP and debugger are horrible to use, debugger is almost useless and we frequently rely on old school debugging, ie add message boxes to display values etc. I think the last stable/reliable version for us was Delphi 2007 :-( Luckily using VSCode as the main IDE works around some of the huge time wasters of the Delphi IDE, if VSCode had a form editor (ideally and Delphi's debugger worked, was separate and could be used by VSCode) we'd completely drop the Delphi IDE.

    Unfortunately due to forms and a lot of proprietary Delphi only libraries we can't use Lazarus so have been talking for years about a complete rewrite and switching to a new language.

    1. kmorwath

      Re: Good language but buggy IDE and debugger

      The debugger was quite good frankly, down to CPU registers and asm code. It did require the proper compiler options, like any compiled code debugger

      Moreover it came with the libraries source code, and many third party libraries as well.

      And being fully integrated in the IDE, it is only a fwe keystrke away.There were some issues years ago with the 64 bit debugger which no longer worked on later version of Windows.

      In worst cases, OutputDebugStr() was better than message boxes, and unhandled exceptions stack trace too.

      1. NZ_M
        FAIL

        Re: Good language but buggy IDE and debugger

        It was good, unfortunately not for years on our non trivial code bases. The 64bit debugger has improved from completely useless to some features of it work, in practice it's a pain in the @rse and along with the IDE an annoying time waster, as are the crashes and freezes in IDE/Compiler/Debugger. The crashes related to switching between RDP sessions & local sessions are really annoying when working on long running debug sessions and losing work when editing. Who knows, maybe it'll all work better in 12.3. It'll probably only take us a few weeks to upgrade from 12.2 -> 12.3, a hangover from how Delphi developers tend to program their libraries (ie third party libraries) where they don't compile with new Delphi versions and having to check and patch the Delphi source code to put our fixes into it (have given up on providing fixes back to Embarcadero as it takes years for them to implement their own version of the fix and then longer to re-implement the failed reimplementation and reimplement again....)

        Yes we do use console text outputting for debugging, output to files as well as message boxes, temporary asserts etc, just depends on the scenario.

  17. TheMaskedMan Silver badge

    I've always had a soft spot for Pascal as a language - used it from at least v5 of Turbo on to Turbo Pascal for Windows and then Delphi from v1 up to v5. After that I kinda lost touch with coding for a while, but kept v5 around for little personal projects.

    I've been using Lazarus on and off for about 10 years, and it's generally really good. If you want to knock up a quick desktop app that can be distributed as a single exe, without fuss, Lazarus is the way to go.

    It does, however, suffer from lack of up to date libraries for lots of trendy stuff - and even not so trendy stuff. Your chances of finding any class libraries to help out with talking to, say, OpenAI's API are, I should think, virtually zero (I haven't bothered to check, so I might be wrong). For anything like that, python is likely your best bet.

    Still, Lazarus has a lot going for it, and the support forum is busy and helpful. I used Lazarus to write some command line programs a few months ago, and got some very helpful responses to a query about handling command line parameters.

    As for the "community" edition of Delphi, yes, well. Last time I looked, the $5000 limit applied to your total revenue, not just that from Delphi. Screw that, I'll stick to Lazarus.

  18. Anonymous Coward
    Anonymous Coward

    The right tool at the right time

    I was working with Visual Basic to prototype an application when Delphi came out. My work involved careful control over what users could see on a form or information screen, which meant programmatically putting elements into a window - not ideal in VB, bearing in mind a complex set of rules for field (not form) level validation and various rules for what happened when an element gained or lost focus. Delphi proved ideal for this heavily data-driven work, and we moved over to it with a great deal of enthusiasm.

    Alas, the company got taken over by another company with a large team in New Delhi, and my work went out of the window. To this day, I marvel at how a sufficiently large team of Indians was able to brute-force the same set of requirements in an entirely inappropriate language, only slowed down by IBM constantly poaching them for twice the money.

    1. Liam Proven (Written by Reg staff) Silver badge

      Re: The right tool at the right time

      > New Delhi, and my work went out of the window.

      Is it fair to say that Delhi took the P out of your project then?

      1. Anonymous Coward
        Anonymous Coward

        Re: The right tool at the right time

        They took the P and replaced it with an I - replaced all the Delphi Code/Windows applications with terminal-based Informix stored procedure code (using the spaghetti paradigm). It took months to test, debug, and make the team fit for purpose. Kept me in work until a better opportunity came along.

  19. Michael Hoffmann Silver badge
    Happy

    For some reason, I read this article and thread about Delphi and think "whatever happened to Verity Stob?"

    A fair number of her articles dealt with Delphi.

    Hope she has a well-earned retirement!

    1. Liam Proven (Written by Reg staff) Silver badge

      > Hope she has a well-earned retirement!

      I was privileged enough to meet that very author at the Reg Commentards' Ball, 11 years ago -- ulp -- now.

      I would never dare to emulate, etc.

  20. david 12 Silver badge

    Borland's own language

    Borland 5.5 *had* an object-oriented Pascal, written by Anders, but that is not the object-oriented Pascal implemented in Delphi 1.0, which owed less to Pascal and nodded at C++.

    Borland 5.5 implemented Objects in a natural way related to Turbo Pascal "records'. Delphi 1.0 implemented Classes in a natural way similar to the choices made for C++.

    In theory, I liked the more Pascal-like original implementation because it was more Pascal-like, but underneath, I never liked Turbo Pascal's implementation of structured types anyway, because it mixed the otherwise clear distinction between variable names and type names. -- fields are used as variables, but declared as types, and the compiler has to deal with that, which destroys part of the beauty of the clean language definition. (I noticed when I was doing decompilation and cross-version linking)

    So overall I didn't mind grafting C++ onto Pascal as much as I might otherwise have done.

    1. kmorwath

      Re: Borland's own language

      No, Delphi still declares class in a way very similar to Pascal records:

      type

      TMyRecord = record

      A: Integer;

      B: string;

      end;

      TMyClass = class(TObject)

      private

      A: Integer;

      public

      C: string;

      constructor Init;

      procedure SetA(AValue: Integer);

      end;

      Of course there are scope keywords and property/constructor/destructor ones. Now records can have methods too.

      From TP to Delphi class() replaced object(), and instantiating a class on the heap did not require to call New().

  21. Sandgrounder

    Why did Borland choose Pascal?

    Working as a Visual Basic developer at the time Delphi arrived, the industry was crying out for a fixed version of VB. One that did form design, had proper OO support and didn't need a load of Win32 API calls for basic memory management.

    Delphi appeared as it could be exactly what was needed. But it used Pascal. Talk about dissapointing. The promised escape from VBs horrendous syntax scuppered. The world was going C, C++. Java used C syntax. But for reasons unknown, Borland decided to launch a professional development tool with a training language that no-one used except academics.

    If they had use C as their basic language I rather think that Delphi would have swept the world. Everything else was there or thereabouts. We would likely still be writing everything in it today.

    But Pascal? History shows how the world said No thanks.

    1. kmorwath

      Re: Why did Borland choose Pascal?

      Borland was born with TurboPascal - Hejslberg had developed by himself a compiler named Compass Pascal that became Turbo Pascal. TP had a large user base. When I was at the Delphi launch event, the large room was packed.

      Pascal was far more used in the past than it is now, Apple used it a lot - the first version of Photoshop was written in Pascal. Even today, Inno Setup, which is used by a large number of projects, is written in Delphi. Skype had a large part written in Delphi unti MS took it over (and killed it)

      "Borland decided to launch a professional development tool with a training language that no-one used except academics."

      This stupid mindset is what killed Pascal. Pascal came from a proposal for the next version of ALGOL. It is true the Wirth rebadged it as a "training language" - he was an academic, not a startupper - but Apple and Borland Pascal were not. They added a large number of features to turn it into a very useful programming language, those were not UCSD Pascal. Even MS released a Pascal IDE/Compiler.

      By the way, BASIC too was a language "for beginners".

      "Horrendous syntax"? C'mon, I find C syntax horrendous. It's clearly a language designed for systems where each character needed to be saved, because of punched cards, TTYs and magnetic tapes.

      But people out of the university thougt they were cleverer if they used C and Unix. Actually they were not, and blind to many of the outdated designs of both. I think there was a chauvinistic reason too - it is was one of the few languages not invented in US. Then came Ruby, Python...

      Python has a syntax closer to Pascal than C, and became immensely popular. And it too started as moslty a scripting language but became far more poeerful. So the reason wasn't that, really.

      "If they had use C as their basic language"

      No, because with Pascal Borland fully controlled the language. Their RAD approach required a tight integration between the language and the IDE. C needs to be compatibtle with the standard. That's why Sun went with Java, and MS with Visual Basic first and then .NET/C#.

      "how the world said"

      The world makes many mistakes...

    2. Christian Berger

      Re: Why did Borland choose Pascal?

      Well one has to view history from the past in order to understand it.

      1. Borland already had a large customer base fluent in Pascal.

      2. Pascal is flexible and can be extended. For example in Delphi it has features like automatic range checks.

      3. Borland wanted to go OOP and doing that on C is inelegant. C++ was highly cluttered even back then so the number of people who actually understand C++ is in the low 3 digit number.

      4. Java didn't exist back then.

    3. david 12 Silver badge

      Re: Why did Borland choose Pascal?

      l training language

      Insult originated by the same people (IBM system programmers) who thought that unix was worthless because it wasn't a real operating system.

      Niklaus Wirth was an academic: his interest was language design. He taught language design. Pascal was not a language for teaching programming: it was an example of what a properly designed language would look like, when designed by a respected professional language designer at the top of his game.

      It did have some different design ideas to APL and C, but those have stood the test of time: modern VC and GCC etc have adopted the Wirth design internally, and only are required (by specification) to implement compilation "as if" the original structure was in place.

      that no-one used except academics.

      That's just a fact error.

    4. fg_swe Silver badge

      "training language"

      This is proven to be hostile propaganda:

      1.) Apple LISA was programmed in a pascal variant. Highly important machine from a technology development point of view.

      2.) HP MPE/HP3000 was also programmed in a pascal variant. For all but naming this evolved into a mainframe class operating system with multiprocessing and thousands of realtime users. It was only killed by HP management ignoring the wishes of their loyal HP3000 customers. Mindless MBA types at their "best".

      https://en.wikipedia.org/wiki/HP_3000

  22. Wiretrip

    Abolutely love delphi - and still use it.

    I still use Delphi regularly and have ported a number of apps (and VCL components) over to Lazarus. Wonderful language and IDE which peaked at v7.1. Don't forget that the original Skype (and its 'parent' Kazaa media Desktop) were written in Delphi! It was always popular in laboratories for some reason and lives on today in a multitude of medical devices.

  23. Ashto5

    Windows forms programming

    Those were the days.

    Drag and drop, event driven compiled and deployed .exe

    Now I need constant access to NPM to keep all the additional stuff upto date and they still don’t perform as fast as those early RAD languages

    I thought we would be on the same level now with web Development but alas we seem to have gone backwards

    VB & Delphi giants in the history of computing

  24. Christian Berger

    I recently demoed Lazarus at our company

    Essentially while explaining Lazarus I was able to click together a basic CURD application within 8 minutes... without touching the keyboard.

    1. Anonymous Coward
      Anonymous Coward

      Re: I recently demoed Lazarus at our company

      Well, you could do exactly the same with Microsoft Access. And I can't believe I say this but vba is less rubbish than pascal...

  25. Anonymous Coward
    Anonymous Coward

    Please please please let pascal die already... There is absolutely no reason for anyone to learn pascal unless forced by an educational establishment...

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like