I've been wanting to find this post on an old hard drive or thumb drive, and then it occurred to me that I can dig it up on the good old Wayback Machine. The post below was originally written on November 14, 2003, well before I went to Embarcadero. (You can read the original in all its glory, including the original comments on the Wayback Machine) It was also written before the VS Shell program came about. In it I wrote about what eventually would eventually come to pass in the form of Embarcadero Prism.
In digging around on the Wayback Machine, I found quite a few interesting articles I wrote back in the day, and I'll be publishing them here over the next week or two. It is kind of fun to read all the stuff I wrote when I was younger, brasher, and more foolish.
....or, Hoisting Microsoft by Their Own Petard
I've just returned from The 2003 Borland Conference where Borland spent an understandably large amount of time talking about the Microsoft .Net Framework (an precious little about Linux, I noted). Clearly we Delphi developers are standing on the edge of a pretty sharp inflection point, bending pretty radically in the direction of the .Net Framework. Microsoft is moving all of us into the world of managed code, and there doesn't seem to be much we can do about it. But the good news is I don't think we should want them to do anything about it -- .Net is a very, very cool platform, and one that I think we should embrace.
The inflection point doesn't just affect us developers. It actually affects Borland a whole lot more. They are the ones who have to make the tough choices about where to take their products and how to get there once they decide. Right now, all of their .Net plans are in the hands of the .Net Business Unit (formerly called the RAD Business Unit). These guys are responsible for Galileo, the IDE framework that is currently deployed in C#Builder, and will soon be deployed in Delphi 8 for the .Net Framework. Galileo is Borland's next generation IDE that builds on the code base of Delphi/C++Builder, but which clearly is moving into the .Net world.
We got a lot of good looks at Delphi 8 for .Net (hereafter called simply Delphi 8) at Borcon. During the opening keynote, we saw Michael Swindell build an ASP.NET web service, and then consume it with Delphi 8. He also did something many folks appreciated – he compiled an ran the original FishFact.dpr application that shipped with Delphi 1 (yes, Delphi 1 – the 16-bit version). That application compiled and ran just fine in Delphi 8.
But it is the development of Galileo is what provides Borland with it current, very difficult, challenge. As I listened to the Borland folks and talked to developers at Borcon, it became clear that while .Net provides an excellent opportunity for Borland and Delphi, it also makes things difficult for them. For perhaps the first time, Borland is playing catch-up in the IDE arena. Visual Studio.Net has been out for over a year, and the new, improved Version 2.0 is due next summer. While C#Builder offers some advantages in this market, it will almost certainly continue to chase Visual Studio.Net in features and support for future versions of the .Net Framework.
Borland, as we all are aware, has limited resources, and their main competition, Microsoft, has in effect unlimited resources. There is a small but highly skilled group of people developing the DCCIL.EXE compiler, while Microsoft has, literally, hundreds of people working on their compilers. Borland has a lean, mean team of developers working on their IDE, where Microsoft has, again, hundreds. Microsoft's marketing budget for their tools division is likely larger than Borland's yearly revenues. Borland has managed to compete in this environment by providing superior products and technology. However, even the staunchest of Borland groupies will agree that this gap has narrowed, and in some areas, the gap is created by Microsoft's lead.
I pondered all of this during my time in San Jose, and I've come up with a solution – a means for Borland to continue to leverage their technical expertise, to lower their overhead and to increase the return on their R&D dollars. It's not a solution that will seem immediately beneficial to most of you – indeed, I expect that the initial reaction of Delphi developers will be quite negative. Therefore, I ask you to hear me out, to consider what I've said, and weigh my argument before running off to the newsgroups to rant about how I've lost my marbles. I've bounced this idea off of a number of very smart people in the community, including people at Borland, and all of them have said that despite initial appearances, this is not a crazy idea.
First, some bona fides: I am a totally sold-out, completely assimilated Delphi bigot. I love Delphi. I was in on Delphi from the very beginning, I want to code in Delphi for the rest of my life, and I think that anyone who doesn't code in Delphi is crazy. I love Borland. I love using Borland products, I love going to Borland and hanging around the super-smart and super-nice people that work there. My livelihood is directly tied to the success of Delphi and Borland. I am on TeamB and spend interminable hours on the Delphi newsgroups doing what I can to help people use Delphi.
Second, I don't hate Microsoft, but I don't go out of my way to help them out. I like and use Windows almost exclusively, but pretty much don't choose Microsoft products if I don't have to. I buy Quicken, not Money, and I am typing this in OpenOffice, not Microsoft Word (though I confess I have Word on my machine. Who doesn't?). I don't like a lot of the things Microsoft does nor the way they generally do business, but I will defend to the death their right to do with their property what they want.
Thus, having said the above, I hope you believe me when I say that I propose what I do below with the purpose of trying to bring Delphi forward into .Net in the most competitive manner, and in a way that makes Delphi usable and desirable by the whole community of .Net developers and not just existing Delphi developers.
Okay, enough said. Here it is – here's my idea that you all have been waiting for with baited breath: Borland should abandon the Galileo IDE, license the Visual Studio.Net IDE via the Visual Studio Industry Partner program, brand it as their own, and enhance it with their own plug-ins, features, and capabilities, including first class support for the Delphi language.
What do you think?
Okay, hey, stop hyperventilating and remember that you promised me that you'd hear me out.
First, let me flesh out the idea in order to be clear about what I mean. Borland would license the Visual Studio.Net framework and build their own version of Visual Studio.Net. They'd put Borland Developer Studio on the caption, they'd put in their own palette, colors, look and feel, etc. They'd add full and complete Delphi support. They'd sell their own, complete product themselves. Note that I am not talking about building a plug-in to Microsoft's Visual Studio.Net, but a full-blown, “Borlandized” version of the product, into which Borland can add their own value-added features. They could sell it for whatever price they think will maximize their profits.
As far as I can tell, this idea is feasible and well within the licensing of the VSIP Premier Program. In fact, there's every reason to believe that Microsoft actually wants and encourages Borland to make this leap, as I'll discuss below.
I think this is a really good idea and I am going to tell you why. Here are the reasons:
In order for people to choose Delphi, the IDE must be compatible
Delphi is a magnificent language, beautifully mixing ease of use, readability, power, and elegance. It's been marvelously managed by the R&D folks at Borland over the years. It's not messy and overdone – it's just right. That being said, though, I think most Delphi fanatics agree that Delphi is a hard sell. Getting organizations to buy into Delphi isn't easy, as C++, VB, and now C# are all easier to buy into, because, as we all know, “no one ever gets fired for buying Microsoft.”
(Don't you find the rapid adoption of C# rather galling? For years we Delphi people were told that Delphi wasn't used because it wasn't popular enough, that it would be too expensive to migrate code to it, etc. Well, C# wasn't popular either, and it's no cheaper to migrate to C# than it is to Delphi. But I suppose no one ever told us this all would make sense. Anyway....)
Galileo is not compatible with Visual Studio.Net. A Galileo project can't be imported as-is by Visual Studio.Net (you have to export it from Galileo first). Plug-ins for Visual Studio.Net don't plug-in to Galileo. Therefore, if a .NET development shop is using Visual Studio.Net, they have very little reason to buy either C#Builder or Delphi 8 for .NET.
However, if Borland's IDE works seamlessly with existing .NET projects, then many of the reasons not to use Delphi go away. Delphi programmers could work side by side with Visual Studio.Net-based organizations. If those organizations have a set of standard plug-ins for the IDE, Delphi developers can use them. The barriers to using Delphi become very short.
Borland can stop worrying about IDE development and start worrying about IDE enhancement
As it stands right now, Borland has to expend a lot of energy to build their own IDE. They have to play catchup with Microsoft in the area of .Net Framework support. The effort required simply to maintain and enhance the IDE infrastructure is effort that can't be spent on enhancing and adding value to the IDE.
If Borland were to leave the IDE infrastructure development to someone else (i.e. Microsoft), they could unleash their estimable R&D team onto the improvement of the IDE. They'd be free to implement all the things they've been wanting to add to the IDE, but can't because they've had to use up precious R&D resources trying to keep up with Microsoft.
To a large degree, the IDE world is becoming commoditized. Borland's PrimeTime IDE and the open source Eclipse project dominate the Java IDE world. Borland recently took the Java-based PrimeTime IDE and used it as the IDE for their new C++ offering. At this point, it would be crazy for any company to try to build a new Java-based IDE.
The same can be said on the .NET platform. Microsoft will always be a step ahead with their IDE, as they can begin working on it with the knowledge of what coming versions of .Net will do. Think of redoing a bathroom. By using the solid plumbing that Microsoft can provide, Borland can put all of their effort into decorating the bathroom instead of just getting by with cheap fixtures. If the plumbing is all complete when you start, you can afford to add beautiful wallpaper, high-quality fixtures, a jacuzzi, and plush carpeting.
With the commoditization of the IDE, the real selling points of an IDE are the unique value-added items that a company can provide, and if it is one thing Borland knows how to do, it is adding value to an IDE. Freed from all the “plumbing”, Borland could add value by making their version of the IDE a showcase for their technologies like Borland Data Providers, Together, StarTeam, CaliberRM, etc. Borland has plenty of things they could do to make their version of the IDE very attractive, and given the proper resources and time to spend on enhancing rather than building, the IDE, they could provide a very compelling .Net development platform that provides support for the whole application lifecycle management process.
The resulting Borland IDE would be totally compatible with Visual Studio.Net
If Borland were to license Visual Studio.Net, then the Borland IDE would be compatible with all the existing Visual Studio.Net plug-ins and enhancements, as well as with existing features like C# and VB.NET. Borland wouldn't have to expend any more effort in building and maintaining a ToolsAPI. They wouldn't have to make the effort to make their ToolsAPI compatible with Microsoft's – compatibility would come for free. Delphi developers would be able to work side-by-side with C# developers. One of the main arguments against buying Borland's tools – that their IDE's don't mingle well with Visual Studio.Net – would instantly be removed.
Microsoft wants them to do it
This part is all pure conjecture on my part, but I think Microsoft wants Borland to do this. First of all, why would they even allow companies to do so via the VSIP program if they didn't want them to do it? The way I read the general information about the Premier level of the program, they actually encourage companies to “license and distribute” Visual Studio.Net.
Second, Microsoft clearly wants Borland to succeed in selling .Net solutions to developers. Without Borland, they have no real competition in the market space, and they are, to say the least, very sensitive about this. By encouraging Borland to develop their own, competitive version of Visual Studio.Net, they encourage .Net development (and not Java development), keep the Department of Justice off their back, and keep everyone happy. It's a win/win situation for them, and not only do I think they'd be happy to have Borland go this route, I'd be willing to bet that they are actually pushing Borland to do it. Borland could use this fact to negotiate a licensing and price deal favorable to Borland's bottom line.
Profits, Profits, Profits
The only reason Borland will do this is if they think they will make more money.
Right now, I am asked all the time – Why should I buy C#Builder? Well, if we were all honest, it is a tough question to answer. If Borland were to do what I am proposing, however, you could honestly answer back “Whynot buy C#Builder? It's totally compatible with Visual Studio.Net, and it has a huge number of enhancements and improvements over what Microsoft supplies. In addition, you can use it to manage your entire application lifecycle, which you can't even come close to doing with Visual Studio.Net. Plus, you can use the marvelous Delphi language if you want, all in the same package.”
Come on, wouldn't you love to have a ready, compelling answer to the “Why should I buy Borland?” question? You know you would.
And of course, if the answer to the question is a good one, then people will buy Borland, and the more that people buy Borland, the more money Borland makes. The math on that is pretty easy.
Borland already sort of has this product out there
Borland already has a rather extensive set of plug-ins for Visual Studio.Net, including Together Edition for Microsoft Visual Studio .NET, as well as Visual Studio.Net plug-ins for CaliberRM and StarTeam. These products require the consumer to buy Microsoft's IDE. Why simply sell these as part of a Borland IDE, which happens to be compatible with existing IDE's already? Don't continue to give your customers a reason to buy the competition's IDE – give them a fully compatible solution that Borland sells them.
I'm not silly enough to think that you all will simply buy my argument without any objections. So, in an attempt to head you off at the pass, I'll use my years of experience in the Delphi community to list a few of the objections that I know will be forth coming, and address them.
Borland will be giving up control of their bread and butter product.
Yes, in a sense they will. Borland pioneered the concept of the IDE with Turbo Pascal. They have been the leader in IDE enhancement and integration since the beginning. Their reputation for innovation and technical excellence is unmatched, and making this move would be, in a sense, a cop-out.
But in another sense, giving up control may be inevitable; they might not even have a choice. As discussed above, the IDE market is trending towards commoditization. In the Windows/.Net world, this means that the IDE needs to be Visual Studio.Net compatible. Borland's IDE probably never would be compatible, and so it would very likely be marginalized at best. The C++ group gave up the control over their IDE as well, turning to the Java-based PrimeTime IDE, so the move is not unprecedented.
In addition, one could view Borland's bread-and-butter as IDE's, but really it's their ability to build user-friendly, productive IDE's that sells their products, and by not worrying about the guts of the IDE, they can dedicate all their efforts to making the IDE better, leaving the “grunt work,” if you will, to Microsoft. And who wouldn't like to get Microsoft to do all that kind of work for you?
It will end up making Borland's IDE to expensive because they have to pay Microsoft
First, Borland's IDE's are already more expensive. Second, not necessarily.
It totally depends on what kind of deal Borland can negotiate with Microsoft. If, as I said above, Microsoft is quite anxious to get Borland to become a high-level VSI partner, Borland might very well be able to negotiate a very favorable (read 'cheap') deal. Perhaps Borland could use the patents that they own and that Microsoft needs to leverage a good deal. It may very well be that Borland, and not Microsoft, holds the high cards in this deal.
Again, even if Borland can't negotiate a good licensing deal, they still will be creating an IDE that has way more value than Visual Studio.Net, and so a higher price can be justified. Integration with the ALM products like CaliberRM, Together, and StarTeam will alone make any higher price worth it.
Borland's version of Visual Studio.Net will have to be way, way better to get people to buy it
I understand this objection, but I don't think it really bears on the issue at hand, because this is true whether Borland uses the Galileo IDE or the Visual Studio.Net IDE. Either way, Borland has to make their IDE the better deal simply to overcome the inertia that buying Microsoft tools already has. By making themselves compatible with the Visual Studio.Net market, it actually makes it easier to make the value proposition to managers because one of the major hurdles of selling the Galileo IDE is removed.
Borland will never go for it, so why even expend the energy to make the case?
This seems like the hardest objection to get over, but I think it is less of a problem that most would think. Sure, the great, hard, time-consuming work that the R&D team has done on Galileo will pretty much be shelved, and perhaps there will be some resistance inside Borland to that for reasons of pride and because they won't want to throw away the investment.
First, the pride issue. I don't know that this is as big a problem as you might think. While I was at Borcon, I spoke about this idea with a number of Borland people in the .NET Business Unit, and they all were intrigued by it, including the IDE Developers that I talked to. None seems to upset about spending less time developing the IDE infrastructure and more time doing the actual enhancements that they've wanted to do but had to delay because schedules and limited resources held them back. Increasing IDE enhancement time and decreasing IDE nuts and bolts coding time was quite appealing.
Second, the objection that Borland might have about throwing away an investment isn't economically sound. The R&D costs invested in Galileo are sunk – i.e. They can't be recouped no matter what Borland does. The money is spent, and it isn't coming back. The only way Borland can make money is selling the software they've created, and if selling a Visual Studio.Net-based IDE will sell more copies (as I believe it will), then the most profitable route is to do so. Or look at it this way – the R&D time is gone, no matter what Borland sells. At this point, they should sell that which maximizes profits, and selling a Visual Studio.Net product, is, in my opinion, the most profitable way to go. It means more bang for the buck on future R&D expenditures, as much more R&D time can now be spent on enhancement instead of bug fixing and IDE maintenance.
Third, I think it is almost inconceivable that Borland hasn't considered this idea already. As I argued above, I believe that Microsoft has been trying to get them to do it, and if so, this wouldn't be a new idea for them. In addition, my aforementioned conversations with people from Borland gave me reason to believe that my idea wasn't a new one to them. (Let me be clear, they all remained true to whatever NDA's they have and they gave nothing away that they weren't supposed to, but they certainly didn't act like I was talking lunacy). In other words, they may already be taking the idea seriously, and if so, one can't say they'd think it a nutty idea.
Well, there it is – a radical idea to be sure, but one that clearly has merit. I bounced this idea off of a bunch of very smart, very well known people both inside and outside Borland, and not one of them thought my idea outlandish, and everyone outside of Borland thought is was a good idea. (The Borland people were appropriately tight-lipped on the matter, as they should be) All in all, I think it is a sound, reasonable plan that will help push forward the Delphi language, and thus Borland, into the inevitable world of the .Net Framework.