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'.
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.
ReplyDeleteActually 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).
ReplyDeleteThere 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".
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>> What ... are the selling points of Delphi
ReplyDelete>> 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.
@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.
ReplyDeleteDelphi 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.
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).
ReplyDeleteMight 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#.
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.
ReplyDeleteYes, 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.
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.
DeleteYou 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?
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