Now that Delphi 2005 is out and people are beginning to use it I've seen a number of posts on the Borland public newsgroups regarding the fact that the IDE itself requires the .NET framework and I thought I'd try to clear up a few questions.
Why does the IDE require the .NET framework even for Win32?
First, lets back up to the C#Builder development days or roughly 22-23 months ago when we started working on a .NET IDE one of the most obvious requirements was the need for a CodeDOM (here is a article discussing the “CodeDOM“). At that point, we did a lot of research into developing a CodeDOM which aided us later during the development of the Pascal CodeDOM for Delphi 8 (and now Delphi 2005). The CodeDOM's primary role is supporting the WinForms designer and is required because the source code for a WinForm contains all of the code necessary to instantiate every component on the form as well as set any properties of those components just like Java. The IDE must be capable of writing and rewriting the form's code as the developer modifies the form without messing code added by the developer. This is very different from VCL where the code to instantiate components and set their initial property state is located within the VCL framework itself. The VCL form designer creates a .DFM file that contains component declarations as well as property values but it's the VCL streaming system that handles creating instances of these components and setting their property values.
Now, let's move to the start of 2004 and the beginning of the Delphi 2005 development cycle when we were considering new features for the Delphi IDE. One of the obvious features was Refactoring especially considering that we already had the powerful ability (via the CodeDOM) to read and write Pascal source code. We made the decision that instead of rewriting the CodeDOM to be Win32 based that we would simply leverage our .NET work and provide refactoring for both .NET and Win32 Delphi source code using the .NET based CodeDOM and thus the dependancy. I believe this was the right decision and will continue to benefit the product as we move into the future given that we only have to maintain a CodeDOM on one platform.
If you have further questions please post comments to this entry. Time to move onto the next question.
Why does the IDE require the J# runtime?
This is another good question and the answer is that the IDE itself does not require the J# runtime however the product includes features that do, namely StarTeam and Together. Perhaps that sounds like a bit of a technicality but the reality is that the core IDE does not require nor use the J# runtime. If you don't use either of these features it is possible via the registry to disable the packages that load these features although I won't dive into that in this blog entry.
Now, you might still be wondering why J#? Well, the Together technology came from the Java world and more specifically from supporting JBuilder and thus was written in Java. Once again, rather than rewriting the technology the decision in this case was made to leverage the J# runtime to support this feature. I'm a bit less clear on the specifics regarding StarTeam although I know it supports an addin infrastructure which uses Java.
Hopefully, this helps explain the reasoning behind why the IDE requires the .NET framework. Bare in mind that the Win32 applications developed using Delphi 2005 have no .NET requirements whatsoever and the fact that the IDE requires the .NET framework has no impact on whether or not your users must have it installed.
[BEGIN UPDATE Nov 27, 2004] One thing I wanted to mention is that while the default installation of the IDE requires the .NET framework it does not mean that it's impossible to configure the IDE to function without it. One such example has been documented here
re: Why does Delphi 2005 IDE require the .NET framework? 11/22/2004 12:48 PM
It may be worth noting that the Together Design Surface has two purposes in Delphi2005. One is Code Visualization, i.e. the ability to visualize source code into a UML diagram.
The other is to design models - and generate code - for use with Enterprise Core Objects, ECO. The latter is an Architect edition feature.
re: Why does Delphi 2005 IDE require the .NET framework? 11/22/2004 12:54 PM
I don't want to be too to be pedantic, but the CodeDOM references are slightly off the mark. This in no way diminishes the reasons behind the descisions to continue to use the .NET work behind the code-parsers. In fact, I'd say the reasons go much deeper than strictly to the CodeDOM. To be accurate, there is an internal parser that can generate symbol tables and AST (Abstract Syntax Trees) using its own internal structures. From these structures, you can then obtain an MS spec CodeDOM. These same ASTs are also used to generate an SCI model (ie. a Together spec Source Code Interface). By leveraging this technology, we were also able to gain huge amounts of advancements in functionality with only incremental effort.
re: Why does Delphi 2005 IDE require the .NET framework? 11/22/2004 1:05 PM
"I don't want to be too pedantic, but..." Allen, are you sure about that? :)
re: Why does Delphi 2005 IDE require the .NET framework? 11/22/2004 1:16 PM
Hehe... OK fine... I was being pedantic ;-)...
re: Why does Delphi 2005 IDE require the .NET framework? 11/22/2004 1:53 PM
It would be prudent of Borland to put this somewhere on the requirements so as to aid in the soothing of potential users.
re: Why does Delphi 2005 IDE require the .NET framework? 11/22/2004 2:15 PM
I haven't read the messages, but I sure hope people aren't complaining that the IDE requires .NET. It's a very small price to pay for the number of features the new IDE brings even for Win32 developers.
re: Why does Delphi 2005 IDE require the .NET framework? 11/22/2004 4:38 PM
Technically, the .NET framework isn't a system
requirement since it doesn't have to be installed prior to installing Delphi 2005. If I had to guess, that would be the reason it's not mentioned on the system requirements here: http://www.borland.com/delphi/pdf/del2005_sysreqs.pdf
re: Why does Delphi 2005 IDE require the .NET framework? 11/22/2004 6:52 PM
Is it possible for 3rd party developers to access the CodeDOM Delphi 2005 uses and if so how?
re: Why does Delphi 2005 IDE require the .NET framework? 11/23/2004 2:20 AM
Corbin Dunn has made a blog entry on how to access the CodeDOM: http://blogs.borland.com/corbindunn/archive/2004/09/30/1493.aspx
re: Why does Delphi 2005 IDE require the .NET framework? 11/25/2004 2:12 PM
So Delphi 2005 is also .NET infested. Whatever the reasons, I don't like it. You say it's not 'technically' a syste requirement, is it possible to run the IDE for Win32 without .NET then? (Is it the runtime or the whole framework? Does the command-line compiler work without .NET?) And what features are dependent on .NET? I'd be willing to turn-off some features, if possible, instead of getting the .NET bloat - if I ever move to Delphi 2005, that is.
re: Why does Delphi 2005 IDE require the .NET framework? 11/25/2004 11:44 PM
First, if you're a real Windows user you'd either better get used to the .NET framework or start looking for another OS, it's that easy. Second, check out this post on the TeamB blog regarding how to run D2005 without the .NET framework installed.
re: Why does Delphi 2005 IDE require the .NET framework? 11/26/2004 6:03 AM
Thanks for the link Steve. As I see it, .NET is a 'scripting language' (term used loosely)as opposed to a 'real language' where you program for a real machine/CPU rather than a VM. There's nothing wrong with 'scripting' but it just won't satisfy my programming ambition. Maybe the time has come for a new OS :) Sorry if my comment was on the harsh side, I was quite disappointed with the news.
re: Why does Delphi 2005 IDE require the .NET framework? 11/26/2004 4:11 PM
Hmm, I'm not sure how you equate .NET with a "scripting language" but to each their own. Sounds like perhaps you should dig a bit deeper into what .NET really is and more closely examine all of the different technologies that it encompasses. If not, good luck with that new OS!
re: Why does Delphi 2005 IDE require the .NET framework? 11/27/2004 4:57 PM
I certainly agree with Burak on this issue. As a Delphi lover since version 3, I personally think that .net for Windows desktop applications is (in a crude expression) totally garbage.
Considering the performance and solidness of the applications, while comparing good old win32 and .net, I can surely say that .net is slow, choppy, and resource hogging just because of the dependencies.
We can say nothing about the choice that Borland made about this tech. But I think there must be an alternative way for the conventional programmers. Also, Since Delphi 7, everything is going down, hence the bugs and not-so-fixing update packages for 8th version.
While concluding my entry, I would like to notify you (considering you're not aware of this) that, IntraWeb 7 which comes with Delphi 2005, does not contain an interface that can be integrated into Apache Web Servers. (Libraries are still there but there's no wizard, no generation). I think this is a signal of what's going to happen in the next few years.(Pushing out the Open-source solutions away, and better supporting of other commercial platforms.)
re: Why does Delphi 2005 IDE require the .NET framework? 11/28/2004 10:17 AM
"what .NET really is": judging from Delphi 2005 is just a way to build a sluggish, memory hungry app, with a pathetically slow and strange behaving GUI. Hope what you get in quantity (.NET has a huge "default" library) is lost in quality. Because speed and memory has paramount importance in out up (written in C/C++ and Delphi, on Linux and Windows) we don't mind to have those ASP.NET stuff if we lose what is really important to us. Better to change OS fully, then.
re: Why does Delphi 2005 IDE require the .NET framework? 11/30/2004 5:24 PM
Only thing i hated about the .net framework being incorperated into Delphi was the loss of that amazing IDE that made me choose borland over Microsoft years ago. I utterly HATE the new styles of IDE i stuck with Delphi 7 and by the looks of the trial version of 2005 ill still be sticking with delphi 7, if i want to use what is basically MS VS then ill use that.. utterly shocking
re: Why does Delphi 2005 IDE require the .NET framework? 11/30/2004 5:34 PM
I think you might be throwing the baby out with the bath water. Delphi 2005 supports both the D7 style of form designer as well as the single window IDE. Both designs have their merits and detractors and with D2005 you don't have to choose unlike MSVS.
re: Why does Delphi 2005 IDE require the .NET framework? 12/2/2004 8:52 AM
I admit to overreacting a big on it, id get used to the new IDE in time and probably will but i still feel that the original style was much better, my main gripe is the web editor style form designer. it just doesnt feel as solid to me and i miss the tabbed components list over the floating tool palette, i know there mini gripes but to my the ide is everything if you dont feel comfortable with it your not going to use the development environment to its full potental. i like the inclusion of C# into the package for instance, im sure with a few months of usage of the new IDE i wouldnt have anything to complain about. basically i just miss the Delphi 7 style and im kinda not wanting to move onwards
re: Why does Delphi 2005 IDE require the .NET framework? 12/6/2004 5:26 AM
"First, if you're a real Windows user you'd either better get used to the .NET framework or start looking for another OS, it's that easy."
Why the sarcasm? There are still very few .NET applications out there, and Win32 support will probably have to be part of any new Windows release for the next 10 years, at least.
An example: When do you expect for instance Adobe Photoshop or Discreet 3D Studio Max to run on .NET? Personally I expect never, or at least very far into the future.
That's why I think Borland is moving a bit too fast when it comes to adding support for .NET. I think there is more time to be had than Borland currently seems to think there is.
I viewed Delphi 8 as a kind of prematurely released product, and from my initial glimpse of Delphi 2005 I'm disappointed to say that I have the same initial feeling about this product.
I think Borland ought to be a little more relaxed with it's push for .NET compilance, and I think they ought to pay a LITTLE more respect to their existing Win32 user base... Just my two cents.
re: Why does Delphi 2005 IDE require the .NET framework? 12/7/2004 12:22 AM
I think Borland is doing every .Net sceptic a favor by forcing them to install the .Net Framework/SDK. .Net is a given. Microsoft has decided ages ago that this is the future of Windows development so the faster you get comfortable with it the better.
re: Why does Delphi 2005 IDE require the .NET framework? 12/7/2004 5:18 AM
.NET is kind of given. But it's not given that there's any rush to migrate over to it.
After all .NET is currently for instance VERY slow on GDI operations and screen rendering, and it's generally a resource hog in all kinds of ways, as far as I'm concerned.
Also, it MAY be a mistake to be betting on WinForms right now, since Windows Longhorn will be introducing the Avalon API which will replace WinForms when it comes to development of Longhorn-only applications.
So I don't think it's necessarily stupid to place your bet on Win32 based applications until Longhorn arrives, and then to plan a transition to Avalon/WinFs/Indigo at that point.
I've not got the whole picture, I must admit, but as far as I can see .NET/WinForms can eventually prove to become more like a paranthesis between Windows2000/XP development and Windows Longhorn development.
Sure, a lot of the .NET technology will be present in Windows Longhorn, but still I think that for many types of applications it might be smart to hold your horses a little bit when it comes to starting a migration to .NET.
re: Why does Delphi 2005 IDE require the .NET framework? 12/7/2004 12:11 PM
There is quite a bit more to .NET than just Windows client applications. Take ASP.NET for example, it's really cool technology that solves many of the difficult issues related to bringing true RAD development to Web Applications. WinForms certainly has an adoption issue and perhaps an uncertain future given MS's Avalon plans but from reading MS's channel 9 website they are still working hard on WinForms and it doesn't sound like technology that's just going to disappear.
I really think in terms of Windows client application development it's necessary to take a long term view of .NET because sooner or later, just like Win32 development, the advantages will be clear and compelling. Although for web application development I think .NET is already there and ASP.NET really has a lot to offer and ASP.NET 2.0 looks even better.
Given that .NET isn't some shot in the dark by Microsoft and that it's more of a tidal shift Borland has to respond and provide support for this new technology which I think is appropriate. I would have liked to have seen us include more new things for core Win32 development in D2005 but I think our priorities were right. There were lots of VCL bug fixes and the new IDE includes a lot of new productivity enhancements which are useful regardless of your use of .NET.
re: Why does Delphi 2005 IDE require the .NET framework? 12/30/2004 7:33 AM
I agree. Borland probably had no choice but to add .NET support to the Delphi product.
But I think maybe you could have waited with introducing the unified IDE. Maybe you could have released the first .NET versions of Delphi as Delphi for .NET 1.0 and Delphi for .NET 2.0? And then you could have kept the Win32 version as a separate product for one or two more relase cycles?
I think you MIGHT have benefited from doing that.
First, you would have created less confusion for the existing Win32 developers, and second you would have bought yourself some time in making the unified IDE more stable and Win32 friendly.
Of course... no use in looking back. But still, this is what I think you should have done... :)
re: Why does Delphi 2005 IDE require the .NET framework? 1/20/2005 9:29 AM
My office has buyed the Delphi 8 .net recently and I think that Borland has a great "disturbe at Force" and, since the Dark Side is faster, was a good mistake on his market strategy.
I´m very, very sad with Borland becoming the "Darth Vader" of the software history!! Can anyone remember a video distributed by borland with a companion CD talking about open systems?? Remeber who was darth vader...
That´s all folks... i´m going to java...
Wake up Borland 1/20/2006 8:31 AM
Microsoft is not a technical leader it is a monster that re-creates the wheel. And denies inovation to sell in its next upgrade. Microsoft creates technology to LOCK out the competition WHEN will BORLAND realise this. DON'T follow .NET - instead refine the VCL - give people more power then what they have in all areas of VCL and IDE tools developement - Borland will never beat MS VC/VB/.NET at there game. Follow .NET is like shooting your foot.
re: Why does Delphi 2005 IDE require the .NET framework? 1/20/2006 12:47 PM
All I can think to say is that I'll respectfully disagree.
re: Why does Delphi 2005 IDE require the .NET framework? 3/2/2006 9:09 AM
I do agree with Matrix, this .NET thing is going nowhere.
If .NET is being used is not because of strict technical merit but because the corporate drones will buy anything MS.