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 ;-)..

32 comments:

  1. Hi


    I cannot see WHY anybody would want to encumber Delphi with VS!!!!!


    Delphi is of itself a completely useful and creative "tool". I have never ever been a fan of overly slow an bloated software. I detest the use of some software that needs another piece of software to complete it's functionality - a dll is my preferred limit and this is only due to Windows. I fail to see the need VBX's OCX's ADO's DAO's ODBC's etc etc. (Yes, I know ODBC did help the DB world). I see them as "fixes" for the shortcommings in Microsoft's development process. Compounding this was/is the continual change of these "fixes" consequntly causing more and more fixups by/for the developer.


    I selcted Delphi for the super development tool that it is. I progressed through various interations of the BASIC language - including VB and AccessVB.


    Delphi (IMHO) is much quicker and more able out of the box (for me) than another language. I would hate to see it "kneecapped" by the diverse range of progammers at MS, after all they (MS) cannot really tie their own development into a fully coherent package - I guess this facet can now be covered by the fact that there are way too many people in the MS development team(s), and there are only so many ways you can achieve a particular result. Take Windows itself for example. We had flat buttons (win 3.x), 3D buttons (Win 9.x) and now coloured 3D buttons - with the option of Win 9.x buttons. I mean, yes it looks nice BUT it still only does the job of a button!


    regards


    Peter

    ReplyDelete
  2. Hi Allen


    interesting. What about Eclipse?


    Grahame

    ReplyDelete
  3. Microsoft is too big and has more concern for other things than what developers need, which is why it's not safe to depend on them. Borland has just the right strategy to exploit Microsoft platforms but not put all the eggs in one basket. Everything Microsoft does is irredeemably messy, and unsatisfactory, and well I have to say half-assed. It's not that I like Delphi with religious devotion, but I have never, ever been disappointed or depressed by it, and I still feel as excited by it as I did for version 1. It's just got it. That's really what I feel, and believe, and I do know some other languages. None of them has ever appealed to me this way. So to conclude, don't give away the shop. That is my state of the Delphi nation address.

    ReplyDelete
  4. DDDD - David the Disgruntled Delphi DeveloperFebruary 2, 2005 at 1:24 PM

    The reason so many people are posting the problem is Delphi developers are sick of waiting for Delphi to catch up with the rest of the development world. The amount of time we had to wait for .NET support was crazy and the end result was buggy and useless (crash, crash, crash, crash).


    Visual Studio is a slick editor with more productivity features. The standard edition of Visual C# has more features than Delphi 8/2005 Enterprise and is more reliable to work with 8 hours a day. Delphi has become a waste of money for todays professional developer and Borland need to look at lifting their game.


    David

    ReplyDelete
  5. I have both VS and Delphi and much prefer Delphi. Though I must agree with "DDDD" about the delay in *certain* productivity features in Delphi.

    ReplyDelete
  6. So, DDDD... tell us how you really feel ;-) I do, however, think you are speaking in a bit of hyperbole, WRT VS standard.

    ReplyDelete
  7. I have been using Delphi since version 2 up to 7. Well I learned Delphi on my own using books, manuals and help. Well up to now we were into windows development world. Now suddenly the web thing caught up. Well Borland came up with Delhi 8 and Delphi 2005 as answer for web development. But guess what.. it suddenly looks like a Greek language. Hmm.. so what did Borland did wrong. Well there is no book, no manual not even good help files which guides enough towards web development. I am honestly thinking of moving to C#. Trust me, if this is how Borland functions.. then in another few years there won't be Delphi any more .. Sadly ... Regards

    ReplyDelete
  8. Allen,


    You are right on! Borland has chose, created, and controls much more of their course vs. piggybacking on Microsoft. Great job!


    DDDD -

    While Delphi might be missing some useful features that VS has, the converse is true too. Got Eco? Got refactoring? Not yet in VS. Delphi has it _now_.


    Arun singh -

    Look in Delphi help for numerous topics on building web applications in .NET and Win32. And since you have used D2-7 for web development, you will be happy to know WebBroker and WebSnap are in Delphi 2005. When you are ready for IntraWeb and ASP.NET, they will be there.


    Remember, you can use a non-Delphi ASP.NET book because ASP.NET is a framework, not a language. Not too difficult to translate C# into Delphi. You can also get the Delphi.Net Developers Guide which has an ASP.NET chapter or two.

    http://tinyurl.com/6j39g

    ReplyDelete
  9. I for sure won't be switching from Delphi 7.0 until newer versions get CodeRush support again. I'm currently playing with VS.Net + CRush and it's not bad, unlike previous VS encarnations.

    ReplyDelete
  10. furtheron,


    I see Eiffel-software (www.eiffel.com) as a customer friendly role model. They offer both their own IDE (EiffelStudio) and a plugin for VS.Net (Eiffel Envision). From a customer point of view it is all about choice, the freedom to choose the IDE you would like to work with, and still have your preferred language available.


    In a perfect world, Borland would offer its own Galileo-based IDE and in addition Delphi-plugins for VS.Net and Eclipse.


    In reality, this is probably not going to happen...

    ReplyDelete
  11. Visual Delphi?


    I think not. First VB x then VD 1


    VD 1


    How would one market a product that unfortunate title.


    Ralph

    ReplyDelete
  12. Current Delphi release is unstable. It's sad to say, but it is.


    It's bad to feel like a beta tester, using commercial product, you have paid for.


    Borland should give 2005 for a small amount of money (if, you guys so hury to roll it out), ask customers to forgive you for delay and work, work and still work on polishing product.

    We can wait.

    The worst thing is ask people to pay for a half ready product. And you guys did it twice in row. MS realize it very well. The do not hesitate postpone the product and have a lot of betas. It's their marketing strategy.


    Seems like Borland doesn't understand that.

    You have to do something or product will be dead in the close future.


    We can talk a lot about thechnical advantages, but management always measure money only (IMHO). For them Borland is far behind MS on NET platform, and it really is, because MS in in charge, not Borland.


    On the other hand D2005 Win32 hasn't anything we can't do in D7. Significant i mean. Not a bells and wistles.


    We evaluated D2005, and reported to management that it is great, but have some problems. We tryed to be polite and temperate as much as possible. But upgrade program is wrapped up.


    For me, Delphi IDE is one of the best on the market! It's definitely better then VS. But Borland still need to show it to the people somehow.

    ReplyDelete
  13. last post, shows that every community has sense in relation to Borland in Delphi8/2005.

    ReplyDelete
  14. Allen,


    I'm sure you all have considered this, but I'll mention it anyway: I'll bet if Borland went to the MS VS team and said, "hey, we're thinking of dropping our IDE and using yours instead," a lot of doors would open. Your post kind of implies that you would have to integrate with VS as if you were just another dime-a-dozen GUI widget vendor. I would bet you could have a very serious discussion with MS about creating a co-branded Borland/MS version of VS. I would bet you could convince them to open more of the kimono and make greater business and R&D commitments than those normally available to your average (or even above average) VSIP member.


    It's true that you've already paid the price of entry, so to speak, for Galileo IDE, but it's not like you would throw all of that away tomorrow. That IDE would still have at least a couple of years of life even if you decided today to integrate with VS. I can only think of the cool things that you, Dave, Chris, and everyone else could be doing if you weren't so busy with the care and feeding of stuff that already exists in VS. Instead of looking at this from the point of view of "what work we would have to do to integrate with VS?" I think it's worth looking at things from the standpoint of "what concessions could MS offer that would make using VS a better strategy?" Then, on the business side, you try to get those things from MS. If you can accept that there is some set of things MS can do for you that would change the landscape enough that VS integration totally makes semse, then you are accepting that this is a business problem, not a technical one. It's just a matter trying to get the right terms.


    There's no doubt that hitching your major releases to VS releases would present new business challenges. While some might say this makes such a plan incompatible with Borland's IDE business model, I would suggest that the model needs changing. I'm not sure the "let's pass an elephant every 12-18 months" model for developers tools is still the best way to go. Breaking out of it would force the business to smooth out the inevitable revenue dips of the annual release model, which might not be such a bad thing. It could also spawn a greater degree of creativity and willingness to take risks on smaller releases where less is at stake -- the best of these could grow into bigger, more important products.


    -steve

    ReplyDelete
  15. Steve,


    You'd think that wouldn't you? While I cannot comment on the specifics, I can most surely say that this has not been the case. What I presented was, in fact, the current state of affairs WRT VS. There have been little to no "consessions" that I'm aware of.

    ReplyDelete
  16. Allen


    Good points all. Mind you, I'd have to say that professional developers would already have Visual Studio: it's part of the various MSDN subscriptions from Professional on up.


    All the professional developers I know of already have this (either personally purchased or as part of their work) since it gives them the operating systems, server products, SQL Server, etc, as well as VS.


    So it's not as if professional developers would have to specially buy VS for Delphi/VS.


    Cheers, Julian

    ReplyDelete
  17. Julian,


    That is an issue we've yet to qualitify. It is unclear that a large enough percentage of the existing Delphi customer-base has VS. In theory, it seems to make sense because the MSDN provides a lot of value for the Windows developers in general. However, I also think there is a large contingent of our customer base that does *not* have VS, nor the MSDN. Especially in the regions outside the US. Which is where a huge portion of Delphi sales are generated.

    ReplyDelete
  18. It's funny to see the comparison, saying that Visual Studio Core elements = Galileo Core elements.


    Allen, you forgot that in VS-case you don't need to reinvent C# wheels for Galileo IDE, C++, C++ 64-bit, CF designers, it's all already there. And Borland could concentrate on Delphi part and spare resources on C# stuff.


    The only real thing Borland has in .NET world is ECO.

    Make it available for all VS.NET developers and it'll make Borland rich.


    As for Object Pascal, if it stays in its current shape it will be replaced by fast evolving C# in next few years.


    Even here, in Europe, where Borland has its last bastion.

    ReplyDelete
  19. John,

    Did you not read the article? All those bits you mention do *not* come with the redist version of VS. Basically what you get is the core I mentioned, the rest is left as an excercise for Borland. I have also outlined the reason Delphi shouldn't be "just a plug-in," which is what it would be relegated to being should we require that the user already have installed VS obtained separately.

    ReplyDelete
  20. Allen


    you made good points. I feel the main reason why people keep bringing up VS is the robust OTA it supports. If the IDE for Delphi achieved that level , this talk would die down.

    If you surpassed it , the posibilities are immensense.


    Also your achive list is annoying lol, it sorts by month then year and not the other way around!!


    Best wishes

    joe

    ReplyDelete
  21. re: Julian Bucknall's post: I am a professional developer, and I do not use or own VS, either at home or at my work place, and I doubt that I will any time soon, if ever. We are a Delphi shop, and have no need or desire for VS.


    I doubt that I'm the only person in this situation.

    ReplyDelete
  22. Allen


    Thanks for the article. I support Borland on continuing to work on Galileo, the implications of having Delphi attached to VS in the future can be devastating. MS controls it, there is a level of common sharing and participation, giving too much to MS, is shifting the balance on MS side, not sharing, will move it to Borland's and to isolation, which we dont want.


    Galileo gives that balanced feeling.


    Also, in our case, we dont have VS nor any of the MS development products. We are a pure Borland shop.


    Thank you.

    ReplyDelete
  23. Not everyone here is enamored with the VS IDE. I happen to think their editor sucks; it doesn't do Brief compatibility, it's slow, and it does annoying things with moving code around that I don't want (I don't WANT you to move my #ifdef code to column 0, thank you very much!!).


    Those pointing out the deficiency of the VCL might consider that there are tons of classes in the VCL that Windows.Forms doesn't do or does very poorly. Where are action lists? Where are Frames? These are all things that evolved in the VCL when people realized that as applications get bigger, it becomes useful to organize them differently. Finally, from a UI perspective, not all UI development work belongs in Windows.Forms.


    It sounds to me like the real complaint is that people want it to be as STABLE as it can be. I don't care about matching VS feature for feature. Whoever thought it was a good idea to be able to drag a menu and reposition it in an application in an IDE? Do you know many times I've screwed up my VS or C++ Builder ide by dragging a menu when I went to select it?


    Get the IDE stable and as practically bug-free as possible, I say. That will alleviate much of the basis for complaints.

    ReplyDelete
  24. I'm a long time supporter of Delphi. It's been quick, reliable and resource friendly. Since Borland's move to dotnet that's totally changed. I don't see any advantage in contining with Delphi. It's prone to crashing, neads a ton of resources, gives me a ton of features I don't need. I don't understand why C++,c#,etc components are loaded when I don't need to use these. If I just wanted to use Win32, I should have the option to just use these(It makes the menu system cumborsome, not to mention memory usage).I think the main issue that users have is the reliabity issue. It's always been the best feature of Delphi. Here in South Africa just about none of the book stores stock Delphi books. It indicates to me that Delphi is dying. Unless Borland sorts out these reliabilty issues and differentiates itself from VS I don't see it lasting 5 years.

    ReplyDelete
  25. Allen, this topic is a good one but I feel like there is a core element that is missing in your argument. Focus on delivery. Your latest release does have the features that you describe plus more however they don't work. Delphi 8 and D2005 remind me of sequels to Star Wars, a lot of high tech special effects but it still stunk in comparison to the original ones. I think it will be in Borland's best interest to do whatever it takes to make a better product at release. If Delphi delivered what it was selling we wouldn't be talking visual studio right now would we. Instead of looking at the competition so much how about looking at your product and your customers.

    ReplyDelete
  26. I have used Turbo Pascal/C++, Delphi 5,6,7,2005.


    As far as quality goes, none of the Delphi versions I have used are a patch on the Turbo Pascal IDEs.


    I like the idea of Delphi but have repeatedly found in lacking as our project has grown bigger. The help files and documentation are paltry. The language is verbose and the debugger is very very flaky. The form-inheritance has been a stumbling block for us. Changes to a base DFM file do not reflect in the DFM files of the derived forms. We have found very serious bugs in the VCL. We have had to fix almost all of our third-party controls and the some of the VCL. We have been unable to automate our builds with DCC32. The command-line compiler complains of syntax errors where the IDE compiler does not. The larger our project has grown, the more trouble we have had upgrading to newer versions of third party controls. We have to change the DFMs along with the PAS files. We cannot depend on the compiler to report problems in the DFM files. The compiler, linker and debugger repeatedly crash during builds.


    I hold no opinion on the future of Delphi. But if you could spare some resources, please endeavour to address these issues in forthcoming releases of your Delphi product.


    We do not have an urgent need for features such as ECO and refactoring. All I would very much like to see is a robust compiler, linker and debugger.


    Thank you

    ReplyDelete
  27. Thats ok, we dumped Delphi in favour of Oberon and looking at the successor to Oberon next. It integrates with VS.NET very well and its a very capable language.


    We already have skills and investments in the VS.NET IDE including our own tools that integrate with it. We dont need another VB type IDE ala Delphi.


    Bye bye Delphi in your own IDE.


    ReplyDelete
  28. Standardise or dieMarch 20, 2005 at 2:17 AM

    Use VS.NET or Eclipse or die in your own IDE.


    If we want a non standard IDE we would use Notepad.

    ReplyDelete
  29. Improve freedom and flexibility is always good, i think the Delphi idea is good. Using Delphi from VS and vice versa is a demostration of good compatibiliy but is not a good idea for Borland lose the market of IDE. A company need to be much more indipendent as possible from competitors to be free.


    bst rgds

    ivan


    P.S. : i don't speak eanglish well, sorry.

    ReplyDelete
  30. i know, becuse i'm a developer, that Borland and the technical team worked hard to do Delphi.Net compiler and the new IDE and maintain the compatibility with past. Improving in the Object Pascal some features of .Net was an hard work. Now Borland have the same languge in a new contest, if you speak with a VB developer you can see a developer who need to learn a new programming tool.... Now yuo can write an application in Pascal and you can have a compiler for W32s, .Net and Linux.


    * W32s <-- machine dependant x86

    * Linux <-- machine dependant x86

    * .Net <-- like java




    rgds

    ivan ...

    ReplyDelete
  31. I understand the business motivations behind Borland's decisions to keep the IDE separate from VS, but your arguments about independence from Microsoft releases does not hold up. You can't ship C# 2.0 or .NET 2.0 capabilities in Delphi until MS does; nor can you leverage Indigo, Avalon, or any other Longhorn technology until MS releases Longhorn. VS releases will ultimately be coordinated with the release of the new frameworks and compilers, I simply don't see the logic. However, I DO understand the need for developers to use one and ONLY one environment for developing software, which is why there's a lot of us out here clamoring for an integrated solution. Sure, you can require us to purchase VS, because those of us who want VS integration already have VS installed.

    ReplyDelete
  32. Hello

    Pretty good a blog, that`s the stuff ! :)

    Good Luck

    Regards Sex Fotki

    ReplyDelete

Please keep your comments related to the post on which you are commenting. No spam, personal attacks, or general nastiness. I will be watching and will delete comments I find irrelevant, offensive and unnecessary.