Friday, 14 September 2018

Does Delphi have a future?

I've been using Delphi for almost 20 years now, I have worked in various industries and have also used other languages and IDEs like C#, Xcode, VB.Net, but while developing in other languages I have always been doing something with Delphi and I am a big fan of it. There are many reasons why I enjoy and have a preference to develop some applications in Delphi, but recently I have one problem with it.

The problem I have with Delphi is its future and the question that gets raised 'how easy is it to employ new developers?'. In the UK it is almost impossible to employ a good Delphi developer and can take years to find one. The other option is to employ a developer with good OOP skills and knowledge of a similar language like C# and for them to learn the language (currently no Pluralsight courses). The problem with employing a developer who does not know Delphi is they do not want to learn Delphi, it is not a big enough carrot on the stick and salaries in the UK are less than other languages.

What I would like to know are the selling points of Delphi to a young person who knows OOP and has some experience in software development. I asked myself the question, 'if I was young and needed to choose a language and development environment, would I invest my future in Delphi?' The short and current answer is 'No'.

10 comments:

  1. I struggled 2 years to find a Delphi job. There were always others with more experience or younger(!). And a (younger) C++ developer who's position I (finally) took said he found Delphi easy to learn if you have C++ experience. Just doesn't look good on his CV. Delphi has been dying since Anders H. left. And devs with skills in Python, R, Clojure and all the new languages springing up now are also thin on the ground.

    ReplyDelete
  2. Actually Delphi has been dying since it's inception in the 1990ies (first, it was Visual Basic (non-dotNet) that was supposed to kill it, then Java, then it was C#, no idea what it is nowadays, I have stopped listening).
    There has never been a large number of people who put it on their CV. But over the recent years, the number of job offerings listing Delphi have dwindled to nearly nothing and it has become really difficult to find developers who are younger then 40 and have Delphi experience or are even prepared to learn it. Older developers are expensive because they (at least think) they are good. So companies face the decision to either just pay what these developers want or to switch to a development environment where developers are plenty and cheap. Since this decision is rarely made by technical people (who might understand that migrating a code base to a different language is a lot of work) but by people who only see the bottom line (and ignore the cost involved to get there), the decision is usually to drop Delphi and switch to something more "modern".

    ReplyDelete
  3. The other side of the coin is staff turnover. We have Java, C#, Delphi and Web projects. The Delphi projects are the core products and are done by only 2 guys, one has been with the company 15 years. We have been told our change requests, fixes and upgrades are fast and reliable. Customers do notice and say that's why they come back to us. Our other teams experience delays and we even had a project cancellation. Yes, C# and Java guys are easier to find but it takes a year or so to really get into a project. But they stay a while and then leave, so the search starts again.

    ReplyDelete
  4. >> What ... are the selling points of Delphi
    >> to a young person who knows OOP and has
    >> some experience in software development.

    From the "Did You Know" department:
    The same guy invented C# and Typescript.

    Job Security?
    You are a rarity and so less likely to get replaced.

    Will I find another job?
    There are not so many Delphi jobs. Fact.
    BUT:
    You won't be competing with hundreds of JavaScript/Java/C# developers.

    What if Delphi disappears?
    You are unlikely to be affected for a long time
    BECAUSE:
    1. Most companies use older versions of Delphi.

    2. Companies do launch projects to port Delphi to another language.
    But be secure in the knowledge that the difficulties are often underestimated and after a time are abandoned.

    3. Delphi is a good foundation for C# (but the gap is growing...)

    4. You can take your experience to Lazarus/FPC or REMObjects.

    Most positions will be maintenance jobs.
    Boring?
    Depends.

    An existing project is almost by definition a going concern (more job security).
    The mistakes will have already been made (and blame apportioned).
    All you have to do is get into proven, working (hopefully!) code.

    You will very often be the only person maintaining the project,
    meaning you do not have layers of managers, architects, product
    owners etc. to battle through. (This is the bane of being in a team
    developing with a language where developers are cheap and plentiful.)

    You will often have direct access to the people that know and matter.
    And they will come directly to you.
    And they will take the time to teach you what they know so you can do your job.
    And you will show genuine interest and they will be happy to teach you more.

    This can provide way more job satisfaction than just getting to play with the latest language.
    It also raises your chances should you decide to move on to, say, a Java position and your Java know-how is weak.

    There are old Delphi-programs-that-just-won't-die in Engineering, Pharmaceuticals, Publishing, Law Enforcement,
    Telecommunications, Defense - all just waiting for a solid, non-prima donna type like you.

    ReplyDelete
  5. @Anonymous makes an excellent point, if you are able/willing to move to find work, there are maintenance jobs available that pay well and offer some security. Just like Cobol, if you can find a job it will pay well, and you are likely secure for some time. Unlike Cobol, Delphi line of business applications do tend to get migrated to "newer" aka more mainstream technologies. C# now supports native compilation, .NET core provides cross platform abilities, and .NET itself is more performant than it once was. With a shift towards "Fullstack" developers and web centric applications, more companies are moving away form the desktop applications that is the mainstay of Delphi.

    Delphi developers are on average older, have families, and are unable or unwilling to move. If you cannot find jobs in your backyard any more, then Delphi will slowly perish.

    EMBT faces a difficult problem, and I am not sure what the answer is. Delphi cannot compete on price, so it must provide a better development experience with better results. The latter can be difficult to prove when the majority of the cost of development is when the product is under maintenance.

    Getting Delphi into Computer Science courses would be a good start. The tools people use in school are often the ones they adopt in the work place. The Community Edition is a great start, but I don't think it's enough. EMBT needs to steward the open source community and build an evangelical following similar to what Apple has. Only then will Delphi have a bright future.

    ReplyDelete
  6. I m looking Delphi job listings on LinkedIn. They are getting more. If you do search this month ( sep 2018 ) for US, at least you will see more than 20 which is suprising to me ( previous years was 3-4).

    Might be the reason that Companies are looking to move to another language or they need to upgrade.

    EMBT had good move with free community edition. Also Delphi should close gap with C#.

    ReplyDelete
  7. If you want to get out of touch with responsibility use anything else. That's the best argument against Delphi.

    ---

    No one these days designed technologies or environments with young people in mind. Most people simply started something because it had been simple to start with almost everything, long time before Windows 3.x was introduced. Technologies attract people and people decide for environments they feel comfortable with.

    Delphi lowered the initial hurdle to get into Windows programming. The web frameworks and a nice as well as neat IDEs serve this role pretty well today.

    The bigger issue of having to choose between C/C++ and '4GL' environments who benefited from the rise of the relational DB is gone and some elements from the systemic perspective (Smalltalk - Design Patterns) have been added. There have been certain issues of being too limited when access to the OS level was required. Java is the synthesis of everything that went wrong in the 90s finally fixed and .net is a certain kind of clone. Delphi is no child of the 'systemic' view, which dominates most well known technologies still. Today you can choose from a wide range of working technologies and environments caught between the UNIX/C/C++ side of things and the integrated systemic appraoches.

    Big technologies tend to stick and surprisingly Delphi is pretty sticky too.

    Business in industries simply have to present their capability of being in the position to manage even bigger complexity the closer they reside to their customer. No matter if introducing such a complexity ever did make sense, it made their business. As result of this the quick change is no longer en vogue.

    As long as the trend continues to hand over every responsibility to a solution provider I do see fairly a chance the systemic perspective's dominance.

    We do live in a polarized IT world where small apps reside closer to the customer and complex on the provider side. The C/C++ environments are rock solid today compared to the 90s.

    From my perspective Delphi is great if you want to avoid contact to (external) developers especially as a customer. The organizations of bigger companies are simply setup with no longer having to cope with responsibility. See first paragraph.

    Maybe Delphi's time finally did have to come. We will see. As long as people use it.

    Anyone else will not talk a lot about.

    ReplyDelete
  8. I'm fed up with articles or blog posts like these. They have been posted for many many years already, and they were all wrong. Delphi's future has been bleak for some time in the past, when Borland more or less neglected it, but since then, it is doing well again.

    Yes, I think that Delphi has a great future. It will probably never be market leader, but that's OK, it never has been.

    The job market may have changed (fewer Delphi jobs here, more Delphi jobs there), but all in all, many indicators show that Delphi itself seems to be doing better than ever, despite the personal job troubles some may have with it.

    ReplyDelete
    Replies
    1. I have written this blog post asking a relevant question about the future of Delphi and pointing out a major problem, that is how can a language survive without new developers? Recently I have been asked about the benefits of using Delphi and why would a company want to develop a new product using Delphi, the unfortunate answer is that I would recommend not to use Delphi, partly because of the difficulty in employing new developers.

      You say that you are fed up with blogs like this and all the other blogs that discuss the future of Delphi, and say that they are all wrong, I find it hard to believe that they are all wrong. I think it is important to discuss this topic as even though there have been blogs for many many years about this, things change and it is good to know recent opinions. Could you please expand why you think Delphi is 'doing better than ever', are more young developers using it? and which companies are moving from one IDE to Delphi?

      Delete
    2. You may find it hard to believe, but that ime has shown them to be wrong. And there are new developers. Take a look at forums or communities like Stack Overflow and the like, or take a look at sites like „begin end“, to see evidence of this.

      Delete