Wednesday, February 2, 2005

Whither or not Delphi....

OK.. I've have a few days to digest, mull over, and otherwise consume Julian's post regarding the reasons Delphi should be migrated into Visual Studio.  All in all it was a well reasoned article and on the surface it looks like a “no-brainer.”  However, I'm going to toss the proverbial “spanner” into the works.

First of all, does anybody really think that Borland hasn't ever looked into what it would look like for Delphi to be hosted in the Visual Studio IDE?  I mean, we're in business to make money.  And as much of it as we think we can.  It only makes sense to explore every avenue of opportunity, no matter what you're emotional ties are to a particular way of doing things.  Of course I cannot comment on anything specific regarding any kinds of future plans regarding Delphi and Visual Studio.  I will however outline a few things in order to dispell several myths surrounding the notion that moving to VS somehow magically gives us a huge boost.

First, lets outline some rules of engagement.  First of all, I'm not talking about a “Delphi language plug-in.”  On the surface that seems like a very simple and “no-brainer” kind of thing to do.  However, I'm not interested in having Delphi be simply another “also-ran” in the sea of Visual Studio plugins and third-party languages.  Delphi has an identity all its own, both in its market and its overall look and feel.  Delphi would have to retain a lot of this identity.  This raises the bar to a level beyond simply installing Delphi into an existing VS installation.  Yes, Microsoft does offer a program that allows third-parties to deliver and install the core VS bits in addition to that vendor's specific enhancements.  The problem is that it still has the Microsoft identity plastered all over it in such a way that Delphi would still be relegated to “also-ran” status.

OK, so we've outlined some of the up-front intangible costs associated with moving Delphi into VS.  Now lets looks at some of the real costs.  Let's define what Visual Studio really is.  Basically, VS is simply a shell that provides some core services, such as a text editor, menu and window/docking management, some core-debugger services, and some core project management services.  Other things like the compilers, expression evaluators, syntax highlighting, Intellisense, etc.. are all items that are pushed out to the “language plug-in”  These are things Borland would have to provide.  What about the designers, like the WinForm,  ASP.NET  and let's throw in the CF designers?  So far it is unclear whether or not these items are actually part of the core VS redist bits.  Especially the CF designer bits.  You know that it won't include any kind of support for VCL (Win32 or .NET), so that is something only Borland can provide.  Then there is the notion of the smart device emulators (for running and debugging CF applications without the need for a physical device).  These don't come with the core VS redist bits.

So far, you might be saying, “So? Just require that the user purchase VS to get all those extra bits.”  Hmm... good idea... not! How can we, with a straight face, tell our customers, you, that you need to toss a chunk of cash at MS and at Borland?  No, you want to buy one product, install it, and be good to go.  So then we're stuck with selling into VS shops, which has it's own brand of issues... well you get the picture.

So let's do a little math and check the score:

Visual Studio Core

    1. Editor
    2. Debugger (Win32/.NET/CF)
    3. Menus/Windows/docking
    4. Project Manager

Galileo Core (present Delphi IDE core)

  1. Editor
  2. Debugger(Win32/.NET).
  3. Menus/Windows/docking
  4. Project Manager

I'm sure that's not quite an exhaustive list, but you get the idea here.  There are probably several things that the Galileo core provides that the VS core does not, and vice versa.  Now let's look at what Borland must supply:

Visual Studio Core

  1. Delphi Compilers (.NET & Win32)
  2. Delphi language bindings (syntax highlighting, error insight, Intellisense, etc...).
  3. ASP.NET Designer
  4. WinForm designer.
  5. Expression evaluator (for debugging).
  6. VCL design-time package management
  7. VCL/Win32 Designer
  8. VCL/.NET Designer
  9. CodeDOM
  10. ECO
  11. Modelling
  12. Refactoring engine and code for specific refactorings

Galileo Core

  1. Delphi Compilers (.NET & Win32)
  2. Delphi language bindings (syntax highlighting, error insight, Intellisense, etc...).
  3. ASP.NET Designer
  4. WinForm Designer
  5. Expression evaluator (for debugging).
  6. VCL design-time package management
  7. VCL/Win32 Designer
  8. VCL/.NET Designer
  9. CodeDOM
  10. ECO
  11. Modelling
  12. Refactoring engine and code for specific refactorings

Hm... That's interesting.  I'm not seeing the advantage here.  The VS core and the Galileo core are essentially done.  They're sunk costs.  What the above list doesn't depict is the team cost involved in just moving what we have today onto VS.  That would be a very large task to just get to where we are today.  That doesn't include any new features.  Sure, there would be some increase in feature-set simply from the move to VS, but what those features would be I can't say because I don't know.  Yes, we'd be freed from the task of maintaining the IDE core, but to put that into perspective, in the Delphi 2005 product release, I imagine that there was only about 1-2 man-months of real core IDE work.  There was some core work to add some features, but quite honestly these were features that would not have come from some VS core either.

Now comes the argument, “what about all those third-party VS add-ons you can now leverage?”  Sounds great, in theory, however in practice I'm much more skeptical.  I know how development works and I know developers.  I can see that the following scenario would become all too common:  I install some whiz-bang VS add-on and point it at some Delphi source file.  I tell the add-in to “do it's thing”... Now I watch in horror as I see C# or VB code injected into my Delphi source code module!  Then there's this one, I try and point some hot new add-in at the VCL form designer, and all it can do is sit there twiddling it's thumbs.

How about, “what happens if MS slips the next release of VS?“  Well that's a good question.  Borland has a fiduciary responsibility to its stockholders to be profitable.  Much of that ability to make a profit is being in control of one's own destiny.  If we cannot meet revenue targets, we let down not only ourselves and our customers, but also our stockholders.  So now we're relegated into always delivering on the previous rev of VS.  Not a very attractive prospect in today's market.  Of course we may end up wrestling with a very similar issue with the recent unsubstantiated rumor that MS has slipped the delivery of .NET 2.0 into late summer or early fall of 2005!

Here's another one I've heard, “Oh that Allen guy is the Galileo IDE architect.  He's just protecting his code and his job.”  No.  I'd like to think that I'm not that shallow or egocentric.  Sure I have an ego, and it can be bruised, but I'm also very pragmatic.  As soon as I see the benefit to Delphi, the product, and to Borland the company, you bet I'd be on board.

Finally, and I hesitate to even mention this because it tends to bring out the worst in folks, there is the notion of whether or not our existing Delphi customers would accept a Delphi release built on VS?  What would they be willing to pay?  What if they already have VS, do they pay the same price?  These are not questions I'm prepared to answer or even profess to to answer.  I know what my gut tells me.  I'm a developer, so I'd like to think I know developers and have a little insight into what makes them tick.  We share much of the same passions and ideas.  I don't know, maybe the Delphi folks will surprise me.

Oh.. BTW, Julian used to work for Microsoft in the Visual Studio group... but, he, as am I, are certainly not biased in any way ;-)..