What is Delphi’s DNA?

I was chatting with someone today who was less familiar with Delphi. He asked what is it about Delphi that makes so many people continue to love it. I thought I would share my answer and see what everyone else thinks.

  1. Developer productivity – When Delphi was first introduced it was going head to head with Visual Basic in getting things done fast, and most of the time Delphi was faster for getting things done, and the rest of the time it was still really fast. That continues today. I’ve done presentations for people and they blown away with how fast I can do things with Delphi.
  2. Fast native apps – When it comes to app performance Delphi was way faster than VB and is competitive with Visual C++ and any other compiler out there. This is because it builds native apps that run fast.
  3. Database access – One of the original goal of Delphi was first class database connectivity. That is something Delphi continues to deliver. BDE was ahead of its time, but FireDAC is a whole new breed. And the great thing is there are so many 3rd party data access libraries to choose from, to give you just the right set of features you need.
  4. Platform API access – I remember the first time I needed to access some Windows messages and a Windows API that wasn’t exposed through the RTL. I kind of expected it to be a lot of work. I was pleasantly surprised with how easy and natural it was to add that to my program. I love that Delphi lets you work at the nice high productive level, and then reach down to “touch the metal” and access the APIs.
  5. Visual form designers – I’ll admit it, Delphi has spoiled me. I’ve checked out a number of other programming tools, and it is rare to find one that works as good. The ability to design your user interface and preview what it will look like so easily is so useful.
  6. Reliable applications – I’ve heard stories about when they demonstrated Delphi’s ability to handle exceptions and people were falling out of their chairs. I don’t know what it is about Delphi, it might just be that the developers who use it are amazing, but I am frequently impressed with how reliable programs are that are developed with Delphi.
  7. Good strong community – All the Tech Partners, MVPs, authors, trainers, and developers make the Delphi community amazing. It is always great to see all the amazing projects everyone is working on. So many people willing to help and just be fantastic. It is a great community to be part of.

I made this graphic a while ago to explain why developing with Delphi was so awesome. I call it the three levels of development. The idea is each level builds on the one beneath it. The higher levels provide great productivity benefits.

3 Levels of Development

The great thing about Delphi is it lets you easily move between these levels. You can do so much in code, even at design time, but it doesn’t keep you at that high level. When you need it you can move down to a lower level, even to the point of writing inline assembly code on Win32.

Most other development tools are stuck at just one level, or with just bits and pieces of the other levels. Delphi gives you all 3 working together. This is really amazing, especially for a cross platform development tool.

What did I miss? What else is in Delphi’s DNA? What is the one thing that makes Delphi the tool of choice for you?

Update: A few more characteristics of Delphi’s DNA from the comments

  1. Readability and Maintainability – This is really important since most programs spend way more time being maintained than in the initial writing. Code that is easier to read is easier to maintain. This is aided by the fact Delphi is easy to read and has a strong type system.
  2. Backward Compatibility – This is something Delphi really spoils us with. Even when there are breaking changes they are typically minor and easy to work around when compared to other development technologies.
  3. Speed – Delphi has this in spades: Speed of development, speed of compilation, and speed of execution. Sure, you may be able to find some situations where something is faster in one area, but over all Delphi is very well rounded in the speed department.

Delphi DNA Wordcloud

This entry was posted in Article. Bookmark the permalink.

11 Responses to What is Delphi’s DNA?

  1. Bob says:

    I also like not to ship runtimes.

  2. NolaSpeaker says:

    Delphi is easy to learn. You can start with a basic idea and a basic knowledge and build on it. This allows developers to build confidence in their abilities.

  3. SilverWarior says:

    The main reason why I stick with Delphi are its fast compile times which are achieved by having a precompiled units so only units that have actually changed since the last compile time are recompiled. There are very few development tools that allow this. That is if we discard development tools that use interpreted languages like C# or JAVA.

    Another reason is the Object Pascal language which seems much more logical to me than any C like variants

    And final reason is that Delphi (Object Pascal) is heavily type oriented which on my opinion increases the code readability a lot. Some people certainly sees this as disadvantage and were so happy when support for generics has been added to Delphi.

    Now Delphi also has few disadvantages. I mostly dislike its code editor do to several bugs present in it which actually prevent you from normally using code-folding feature
    -if syntax error is detected by Error Insight all the code beneath it is unfolded
    -same happens when you start a multiline comment with {

    Another reason is its price which is pretty high especially for a beginner who doesn’t even know if he/she would like programming in it. Sure there is a one month trial version available.
    But can you really find out if you would like some language or some development tool in one month time? I doubt it.
    Also the starter edition is too limited. I mean Embarcadero should at least add 64 bit support to the starter edition. Nowadays no one would consider switching to any development tool if it has no 64 bit support since 64 bit applications are becoming mainstream.

  4. Petero says:

    Runs legacy code: compiler upgrades are usually nonbreaking.

  5. SilverWarrior: In my experience, DCUs cause enough problems that they’re more trouble than they’re worth. DCUs are essentially caches of the results of previous compilation work, and there’s a reason why they call caching one of the two truly hard problems in computer science.

    Thing is, even without them, the compiler is incredibly fast. I’ve seen Delphi churn through a 4 million line codebase in under 3 minutes; a C++ compiler would take *hours* to build a project that large!

  6. SilverWarior says:

    @Mason You are forgetting that Delphi already has lots of precompiled code. You see every standard Delphi library (VCL, RTL, RTTI) is already precompiled. So even when you are doing full build you are only compiling your own code.
    Now I bet that those standard libraries contain several millions lines of code on their own. But since they are already precompiled they don’t hinder the compilation time.

  7. @Petero, yes, I find it extraordinary that my apps in Seattle still include code I wrote back in D1 and D2 days.

  8. Bruce McGee says:

    Extremely readable and therefore maintainable code.

  9. Scott says:

    I totally agree! I have been programming in Delphi for 15 years, and I have used many other languages, but I will always choose Delphi when I have the option. Developing in Delphi is like driving a high performance vehicle in the city, you rarely need to go over 60 kph, but you can get there much faster than other vehicles, and all the power is immediately available to you to get you through safely and with confidence when those tricky situations arise. I am encouraged that Delphi is continually improving and that the community is still strong after all these years.

  10. Pingback: Delphi’s DNA Infographic | The Podcast at Delphi.org

  11. David Izada Rodriguez says:

    Delphi started changing paradigms, as was already mentioned, but after Embarcadero bought the company, it continued adding existing features and some of its own. Anonymous methods, improved RTTI, better generics, multi-platform development with the same code base, etc. Finally, after losing many 3rd-party products, now we also enjoy Spring4D (with Dependency Injection, better collections, extended RTTI), DUnitX, uniGUI, and many other fantastic products!

Leave a Reply