Friday, 16 May 2014

Why Delphi and why now?

I've just recently finished up a great contract with a Regional Council, as their Development Team Leader for a great team of developers and business analysts. It was a fun role and it got me to thinking more and more about my pure love for developing great applications.

Those who have been following my blogs and career have seen that I have moved more and more into leadership, and management over the last 10 years. This has been a very enjoyable time, and has taken me into areas that I never thought I’d have opportunities, but I still missed the code.

There’s something special about helping teams to be their best; about making sure that management knows how productive the teams are; and helping others and seeing individuals grow within the teams. But in recent years, I've also realised the “something special” about being able to create.

I'm about to start another contract but this time as a Senior Developer. Now I know what you’re thinking already. I have been a development manager, a software group manager, and even a CIO; why would I want to take what can be perceived as a step back in my career?

I don’t see this as a step back at all. Actually, I see this as a return to what I love and what most drives me. As a team leader and a manager, I was one of many. Yes, I was able to deliver; I was able to make changes resulting in huge improvements; and I was able to assist many along their own career paths; however I was still just one of many. As a Senior Developer I became well known. I was sought after for my skills (let’s hope I still have some), and I made my mark. Through some serious navel gazing that has been ongoing for a few years now, I simply decided that being a developer was my core skill. Like all good management decisions, I decided it was time to focus on my core function.

So, I am very excited and not in the least apprehensive about taking the plunge again and returning to being a Senior Developer.

The company I am going to work the rest of this year for, uses Delphi for its core product development and during the interview stages, I was asked if they should change. Many others have suggested moving to Java or VB .NET. Some felt that C# was the way to go forward. It’s a very valid question and one they should not take lightly. I looked at both their product and their small team. I knew that my answer should be to move to .NET, but I could not think of a valid argument for that; I also knew that if it was a new product, I would be suggesting something like Ruby on Rails, but it's a stable product in daily use by tens of thousands of users who rely on the stability of the product. My eventual answer was that they should upgrade to Delphi XE6.

 

 Yes, I can hear the wails, the howls of indignation, and the gnashing of teeth out there but the team had used Delphi very successfully for more than 20 years (yes, the developers had been with that company for that long and longer), turning around and retraining in another language would require a good and reasonable result and damned if I could give the a single reason other than “it’s expected”.

Also, as I have said many times before, Delphi is a very productive language and changing languages may result in needing a larger team with reduced knowledge. Knowledge in the product itself may even be at risk as the current team may no longer enjoy the experience and move on.

No, Delphi was the answer no matter what others would say. With the recent release of Delphi XE6 they could seriously look at the tablet and smartphone markets as well as normal pure enhancements, all using a small, dedicated, and very experienced team.

So it’s back to being a developer for me and I couldn't be happier at the prospect.

19 comments:

  1. Good choice.

    At a previous place I worked management decided that there were more .NET developer than Delphi developers, so the decision was made to write the next project in C#. Two C# consultants were added to the team. After we got to know them we discovered they actually had more experience as Delphi developers than with .NET, but they believed there were more C# jobs than Delphi jobs, so they updated their resumes.

    Of course the project complexity spiraled up significantly with the use of .NET instead of Delphi (as seems to happen when tools are selected for the wrong reasons.)

    ReplyDelete
  2. Keep on using Delphi if it fits still your needs, but plan an "exit strategy". You'll need it.

    ReplyDelete
  3. Great to hear that some people out there are avoiding the negativity surrounding Delphi. My company has used it to huge success for over 15 years to write our core enterprise desktop product, and we have recently sold a companion mobile apps written using Delphi XE6.

    We've stuck with it through the darker years and emerged with a product that is now allowing us to not only compete but to gain an edge. The mobile apps are reusing code written years and years ago, simply by calling them from a Datasnap web service and then displaying them in a mobile friendly way.

    Welcome back.

    ReplyDelete
    Replies
    1. That's nothing special about Delphi; what language can't run as a web service? You're gaining the edge because you're leveraging existing code. Everyone else can do this too (including C# with ASP.NET).

      Delete
  4. Don't just change the language, but:
    1) learn new way to code (Coding in Delphi book hint ;)
    2) learn new languages
    A wish to myself included :)

    ReplyDelete
  5. I still use delphi 6 some projects. Delphi left us lonely 10 years and i tought to learn c# when i saw wpf. But i have hope again with xe series. I believe delphi is the most powerful compiler. İ think .net is bad copy of vcl. :) i m sure delphi will grow up with programmers. We will code components again for evrything and we will remember torry.net again :)

    ReplyDelete
    Replies
    1. I still using delphi 7 for my project and wrote a framework on top of vcl. twice as fast as .net.

      Delete
  6. For the last 14 years I have been convincing myself into migrating to Java, C#, Python, QT/C++, JavaScript/SPA/HTML5/CSS3. And each time I start migrating. I spend 6-12 man months trying to get out of Delphi. Eventually I find holes in the alternatives (Java - no good UI, .NET - slow, Python - slow, JavaScript/SPA - market not ready to adopt SaaS model).

    And I end up with man years spend on non-completed migrating a bitter taste in my mouth when I think of how much more powerful my Delphi project might have been if I spent that time in features/SEO/gaining new customers and fixes instead of migrating.

    Stick with Delphi. The more we stick with it the better it will become.

    ReplyDelete
    Replies
    1. Are you sure you're not just trying to find holes? For instance, C++ isn't slow and Qt is certainly capable of providing a good UI. C# scored higher than Delphi XE in SciMark2 back in 2011. What did you do about optimizing Python? the Pypy JIT? Bits of C code? Cython?

      Delete
  7. Yeah. agreed with all of the views. Keep using Delphi. - SEO Holic

    ReplyDelete
  8. Most Delphi developers I know have experience in other languages, and we all know that Delphi can be pricey, so most of the people choosing to use Delphi now aren't doing it because they don't know any better or because they are trying to be cheap.

    Use the right tool for a given job. When writing desktop, server (yes, server) and now mobile applications, Delphi is usually a pretty good choice.

    ReplyDelete
  9. Thanks for sharing this- good stuff! Keep up the great work, we look forward to reading more from you in the future!  

    Software development

    ReplyDelete
  10. >Also, as I have said many times before, Delphi is a very productive language

    Everyone always says "I've said this many times before" or "It's been said a million times" but nobody has a link. :-)

    How, in 2014, do you consider Delphi to be very productive compared to market-leading languages (Java, C#, C++) and languages designed to be productive (Ruby, Python) specifically?

    That's the question one needs to answer for a CTO, and I can't find an EMBT employee or MVP or TeamBer who will provide an answer for it. I was in a different situation: I was helping two startups about the same time select their software stacks and despite having been a Pascal user since my teenage years and having chosen to use Delphi in a startup I was part of from '95-'03, I found that I couldn't make a case for Delphi today in either instance. :-(

    >turning around and retraining in another language would require a good and
    >reasonable result

    There's the primary justification for your decision right there.

    > and damned if I could give the a single reason other than “it’s expected”.

    Memory management, decreased development time and increased maintainability from modern language features like LINQ, more secure software not prone to entire classes of errors, a vastly larger ecosystem (less libraries to write on one's own), learning materials readily available, additional developers readily available for hire if necessary, everything is an object (more object-oriented), package managment (NuGet)... One could certainly have made a case much stronger than "it's expected".

    ReplyDelete
  11. Except QT that compiles to an executable and needs no runtime/interpreter/virtual machine, no RAD/productive/modern development environments is comparable with Delphi.

    ReplyDelete
  12. Oh I should say from my point of view that is commercial desktop development.
    For server-side, in-house or open source projects use whatever tool you find fit for the job. I myself use Python for private projects.

    ReplyDelete
  13. I believe that Delphi is the most powerful languages about developing Windows application. I think you did good job.

    ReplyDelete
  14. i want Borland Delphi 7 (Freeware Package Copyright by Kambiz R. Khojasteh) for my project. but im not getting delphi 7.0, plz give me exact link for delphi 7.0 free download

    ReplyDelete
  15. From last 10 year i am using Agile and lean approach. It is little difficult but the result for this technique is very good. You can try to use this technique for your project.

    ReplyDelete

Note: only a member of this blog may post a comment.