Shareware Beach

Friday, 17 February 2006

The Future of Delphi

Filed under: Software Development — Jan @ 22:03

It’s no surprise that Borland’s recent announcemet to spin off its development tools’ business sparked a new wave of “Delphi is dead” discussions in various newsgroups and online forums. Personally I think that Delphi’s future hasn’t looked brighter for quite some time.

Certainly, until we know who the buyer(s) will be, there is some uncertainty as to the direction they will take with their aquisition. However, it is certain that the people currently developing Borland’s development tools are very focused on driving their products forward. Though Borland has announced the spin-off as a sale, it looks more like a divorce to me.

For quite a number of years now, Borland has spent a lot of time and money on its “Application Lifecycle Management” business. Basically this is a bunch of software that makes it easier to manage large software development projects. This business is quite different from the developer tools business. ALM solutions are sold by salespeople to enterprise decision makers, while developer tools are usually sold through retail channels and web shops (just like shareware). Attempting to serve two quite different markets seems to have led to a split in the company. Another key point is that Borland’s developer tools are mostly home-grown in Scotts Valley, while most of the ALM products have been acquired by buying up other companies. That results in different corporate cultures in the two business units.

There’s also far less synergy between the two parts of Borland’s business then one might think. Surely, tight integration between development and ALM tools is a good thing. But the issue is that customers want choice, and too much integration could be perceived as vendor lock-in. A company using Rational might decide not to use Delphi because Delphi will only work (well) with Borland’s ALM products. Another company using Eclipse might think that Borland’s ALM products only work (well) with JBuilder. Such arguments would be difficult to disprove by salespeople, because any product will always integrate better with other products form the same company than with competing products. By splitting up the businesses, Borland is free to integrate its ALM products as well as it can with whichever development tools are popular, while the development tool business can connect its tools to any ALM solution.

My opinion is that the people creating Delphi, JBuilder, etc. want to leave Borland just as much as Borland’s management wants to sell off the development tools to focus on the sexier ALM business. Though we will never know the full story, I think it’s great that Borland is being open about its plans to sell. Though it may fuel some panicky discussions, it’s better than Borland having to deny rumors and then have to admit that the rumors were true after all when the deal is announced, as often happens.

When there’s talk about Delphi’s future, there are always people saying they’re switching to Microsoft development tools. I fail to see the wisdom in that. Sure, Microsoft’s development tools will always be ahead of all other development tools when it comes to supporting the latest Microsoft technologies. But there’s a flip side to that medal.

In the late ’90s, many developers chose Visual C++ and Visual Basic over Delphi because Microsoft is financially far stronger than Borland (which is true). Ironically, Delphi is still going strong, while Microsoft has pretty much abandoned Visual C++ and Visual Basic. VB is no longer being developed for Win32, and VB.NET is a different programming language. While Visual Studio 2005 supports C++, MFC applications can’t be easily ported to pure managed code.

Delphi, on the other hand, is still in active development for Win32 and Win32 VCL applications can be easily ported to .NET using the .NET version of the VCL. I’ve already ported most of JGsoft’s in-house VCL components to VCL.NET. This turned out to be very straightforward, even though some of the components are very complex (like EditPad’s text editor control). Essentially, any code using pointers needs to be rewritten. The only situation where you’re likely to deal with pointers in Delphi is when dealing with Win32 API calls. This gives me confidence to use Delphi to code for Win32 today, knowing I’ll have a straightforward upgrade path to .NET should I ever want it. Sure, Delphi will support new technologies like Windows Vista later than Visual Studio. Frankly, that’s fine with me. By the time Delphi does support Vista, most of my customers will still be using XP, and that will still be the primary OS I

All this is no surprise to me. Microsoft is a platform vendor. They make money selling Windows. Visual Studio is a complimentary product aimed at helping programmers crank out more stuff that requires Windows. If Microsoft wants to sell a new platform, like .NET to compete with Java, it’s in Microsoft’s best interest for programmers to start cranking out stuff that runs on the new platform, but not on the old one.

Borland on the other hand, or whatever the new home of Delphi will be called, is a developer tool company. They make money selling tools to make it easy for programmers to crank out stuff that runs on whichever platforms people are using. It’s in Borland’s best interest to make Delphi compatible with all the popular platforms out there, and to provide their customer base with an easy upgrade path when new platforms emerge.

Tools from a development tool company will always have greater compatibility with whatever’s out there than tools from a platform company, while tools from a platform company will have better support for that company’s platform than 3rd party tools. Which one is best for you depends on your goals.

12 Comments

  1. Whatever you gonna do Jan, look out for the potential of Linux desktop market. I think anything can happen - thumbs up or thumbs down: it all depends on the prospective buyer.
    cheers
    tibor

    Comment by teeb — Saturday, 18 February 2006 @ 1:08

  2. Jan, what a pleasure to read a well thought out and rational reaction to the Delphi announcement. There has been so much knee-jerk reaction stuff written in the last week that it can make a Delphi-phile become depressed. People have been saying “Delphi is dead” since version 2.0 so I suppose we should not take them too seriously. I wish David I and his team all the very best.

    Comment by Harvey — Saturday, 18 February 2006 @ 15:40

  3. Good Post on DevCo

    Trackback by Nick's Delphi Blog — Thursday, 23 February 2006 @ 22:59

  4. Thanks for sharing your thoughts. Good insight on the ALM/Dev dynamics. I have not gotten quite this perspective in any of the other blogs/newsgroup postings concerning DevCo.

    Delphi is my tool of choice. I try to stay current on other technologies. Python, PHP and Ruby/Rails are all interesting. Personally, I would rather switch careers than code in C++ or Java. Just my personal bias. So I certainly hope that the Delphi team can find a home to grow and prosper in.

    Comment by J Swanson — Friday, 24 February 2006 @ 0:24

  5. Good post:-) I also feel that Delphi future looks better now, than before the announcement. And the divorce comment is also to the point. Both parties will feel better without having to worry about the other, so different part. Win32 and .NET source code compatibility is one the Delphi’s strongest stories. With the latest Delphi version, support for VCL in C++ has been updated. Looking forward to make Delphi for Linux compiler up to date, and having Delphi on Mac platform.
    Is there any other serious OS out there?

    Comment by pglowacki — Friday, 24 February 2006 @ 3:04

  6. My company was just about to buy D2006, but we’re going to wait for the first product of NewDevCo and buy that. We’re a proud Delphi shop and we will support the new company. Keep up the good, passionate work David I. et al!

    Comment by T Wray — Friday, 24 February 2006 @ 3:25

  7. Microsoft is not abandoning Visual C++ at all, quite the opposite. They are putting some of the best people in the industry (Sutter, Lippman,) behind the product and give them a lot of freedom to pursue their goals…
    It seems like their size and their deep pockets make it possible to fight on all fronts.

    Comment by Fritz Huber — Saturday, 25 February 2006 @ 4:21

  8. Fritz: poor choice of words on my behalf. I know that Microsoft still supports and advances the C++ language on both the Win32 and .NET platforms. The argument I was trying to make is that there is no easy way to port a Win32 C++ using MFC to .NET, since there’s no .NET version of MFC. Rewriting an MFC application using WinForms is a huge job.

    MFC, WinForms and Borland’s VCL have the same purpose: abstracting the Win32 API into a nice class library. Yes, WinForms relies just as heavily on the Win32 API as MFC and VCL do. The difference is that the VCL is available in two versions, one for Win32, and one for .NET. This enables Delphi developers to easily migrate code from Win32 to .NET, and more importantly, share code between Win32 and .NET applications. In addition, Delphi developers can also use WinForms if they want to.

    Comment by Jan Goyvaerts — Saturday, 25 February 2006 @ 16:52

  9. “The only situation where you’re likely to deal with pointers in Delphi is when dealing with Win32 API calls”
    You didn’t really used all Delphi power… Delphi can go much further than Windows APIs. I did and do a lot of development that without pointers would be much harder to do.

    Comment by Kent Morwath — Saturday, 25 February 2006 @ 22:47

  10. Kent: When I say “pointer”, I mean an untyped pointer. I haven’t used untyped pointers or pointer arithmetic ever since dynamic arrays were added to the Delphi language. I only use them for Win32 API calls that take pointers as parameters.

    If your definition of “pointer” includes object references, then yes, I use object references all the time. Technically, object references are pointers too. The difference is that they can be type checked by the compiler.

    Comment by Jan Goyvaerts — Sunday, 26 February 2006 @ 12:51

  11. Usually I use a technology when it’s useful for my activity.
    I buyed Delphi 2006 (and all preceding version from 1) because it’s a very good product (finally) and it’s useful to me to compile my code and writing code in little time.
    My opinion is that (from a developer point of view)our problem is implementing our customers needings and not to be on the last operating system.
    Who knows it manager (or dba) that does an immediate software upgrade (for OS or DB server) when a new release is available?
    Many times, programming for the newest platform has high risk and maybe it’s a good choise only for producer of the platform.
    What i know is that my old (10 years, too) applications (written in delphi) is still working and my customers are happy.
    What i know is that i’m using delphi and some tools (ModelMaker, Intraweb, Rave Report, Instant Objects and ECO) that solve most of my needs.
    What i know is that i’ll buy delphi from NewCo.
    Thanks borland, thanks community.
    gverdile

    Comment by gverdile — Tuesday, 28 February 2006 @ 4:42

  12. Unlike MS where upgrades are necessary, Borland’s Delphi being such a good product you dont need to upgrade. I still use Delphi 6 & 7. Why bother upgrading? I’m focused on the business requirements -> solutions, not the technology.

    Comment by Mark L — Friday, 31 March 2006 @ 11:56

Sorry, the comment form is closed at this time.