Friday, 2 September 2016

Delphi Vs Visual Studio

This is a comparison between developing software in Delphi XE+ vs Visual Studio 2015 (C#). I’ve decided not to go to in-depth with regards to syntax or run time dependencies of executables. I have experience in both although I have mainly developed web service and WCF services in C#, and mainly developed desktop applications in Delph, so that might affect some of my opinions.

Delphi Pros

  •          Quick and easy to develop desktop applications.
  •          I prefer the form designer, because I find it easier to use.
  •          Quick to compile projects.
  •          I like the code structure of interface and implementation in the same file.
  •          You can develop mobile apps.

Delphi Cons

  •          Code insight is slow and could be significantly improved.
  •          Some areas of the IDE look dated and it needs investment to keep it up to date with its competitors.
  •          Find declaration does not always work, finding the function or procedure is more time consuming than Visual Studio.
  •          Hard to employ developers as there are not many about.
  •          Code insight is slow to update, for example add a new property to a class and sometimes you need to compile to make that property available for code insight.
  •         Unit testing using DUnit feels old and there has been little development of it over the years.


Visual Studio Pros

  •          IDE has a more modern interface, like the option for a dark color theme.
  •          Code IntelliSense is great, and I like the ‘potential fixes’ option which is very useful for adding directive or assembly reference.
  •         Unit testing is easy and integrated into the IDE, making it easy to run tests while you are developing.
  •          Debugging services is easier than when I have developed services in Delphi, this might have changed recently in later versions of Delphi.
  •         Peek definition is a nice feature.

Visual Studio Cons

  •         Slow to start-up.
  •          Sometimes freezes and it is best just to wait.


  1. You should take a look at TestInsight.

    It does exactly what you know from Visual Studio where you can run your tests directly from the IDE and get the results displayed in a docked windows without being interrupted while writing code/tests.

    1. Just started looking at TestInsight, and I like the way it integrates into the IDE. I have noticed that it does not like multiple instances of Delphi, when I run XE and then try to start another instance of XE or XE5 I receive a 'TestInsight listener could not be statrted' error and I need to end the process in Task Manager.

    2. The issue relates to the port range I specified. Why does TestInsight need 10 ports to listen on?

    3. It only needs one port. But when you start a second instance of it obviously it needs a different port than the already running one listens to, right? It then picks one from the specified range.

  2. Debugging services in Delphi hasn't become much easier. The remote debugger is better than it used to be (I have been told), so you don't need the IDE to run on the computer that runs the service. Still, it's a pain.

  3. Honestly. Agreed on what you said.

    A product's shape is a result of priorities considered too. Delphi only to a certain degree supports what we call 'Schottern' here - gravel running down a hill while the developer wants to go or run up at the same time.

    Usually shoveling this kind of gravel should be supported. In practice such features do matter a lot less than people may think in a first place but a certain kind of pleasure and positive feeling does come along together with fast coding - the moment the developer wants to embrace the whole world. In that case it can really happen that a developer stumbles over his code. In Visual Studio that point in time is delayed to a later point in time. That's true.

    Please consider DUnitX and TestInsight. I agree that Visual Studio to a certain degree does allow you to go beyond especially combined with some of the most shining jewels found in the .net framework. There are cases in which Visual Studio rocks for C# developers the same way Eclipse rocks for the Java people.

    I personally succeed in leveraging the full potential of the .net framework by relying on SharpDevelop too especially when not having to cope with GUI or simple GUI.