Why We Use the .Net Framework for Our IDE
A couple of years ago, we released a product called C#Builder. It was the first release using our new IDE framework called Galileo. Since then we’ve used Galileo to produce Delphi 8, BDS2005, and BDS2006. Galileo was the first major overhaul of our Windows IDE since Delphi 1 was released. It started out as a single personality IDE, but BDS2005 saw it become a multi-personality release, including C#, Delphi for Win32, Delphi for .Net and C++Builder. It’s has served us fairly well so far, and I expect it to do so going forward.
One key feature of Galileo is that it relies on the .Net Framework. All the versions so far rely on the 1.1 version of the framework, but the forthcoming version will use the .Net 2.0 framework. This fact has caused a certain amount of consternation for some folks, particularly Win32 developers who, for whatever reason, disdain .Net.
There are really two ways to look at .Net. Both of those ways come into play for us. One comes into play if you look at us as a producer of development tools. The other if you look at us as a company that sells a rather complicated software package.
First, .Net is a platform against which developers write code. It is a large library of functionality that is exposed in a way that makes it pretty easy for developers to build applications on top of. As a Developer Tools vendor, we want to produce tools that you can use to code for .Net. Thus, for us, .Net is a place where our customers want to go, and so we produce tools so that hey can create .Net applications. To do that, of course, we naturally have to install the .Net framework on your machine. Makes sense — you can’t develop for the .Net framework without have it installed on your development machine.
But the second way to look at .Net is as a really powerful library of code. There’s tons of functionality in it that is useful and obviously reusable. And of course, the .Net framework is a whole lot of functionality that a developer of a large software package doesn’t have to reproduce or build themselves. Sort of like the VCL/RTL in Delphi, the .Net framework does a lot of heavy lifting when it comes to providing a lot of code that developers want to use.
It is this second reason that Galileo uses the .Net framework. There is just simply too much great stuff in there not to take advantage of it. If we didn’t use it, we’d have to reproduce a ton of the functionality that already exists, and that we’d have to deliver anyway. We’d have to maintain it and continue developing it. By using it, we don’t have to do that. And that’s the whole point of code libraries, right? In addition, if we are going to support .Net development, then it makes sense to use a common code base so that we don’t have to implement the same thing on Win32 and on .Net.
So, if you are a Win32 developer only, yes, you have to load up the .Net framework to run the IDE. But if you just think of it as a code library, maybe it won’t be as bad as you think. (You also have to load up a bunch of VCL packages as well. There’s really no way to get around code libraries when you get right down to it.) The .Net framework comes installed as part of Vista, and so it is pretty much going to be part of the operating system going forward. And why wouldn’t we want to take advantage of the operating system rather than creating our own libraries? In addition, it runs natively – it’s not a virtual machine or interpreted code. The assemblies are JITed into asm code native to your machine.
So if you look at the .Net Framwork that way — as a code library that is part of the OS — it makes sense to take advantage of it and use it to build a complicated piece of software like our Developer Studio.
Updated: Steve Trefethen of the BDS R&D team blogged about this very topic a couple of years ago. His blog goes a bit more specifically into what the IDE uses from the .Net framewor and the benefits gained from it. (Thanks, Steve, for pointing that out.)



I guess the only reason why there are some argues about this is because most Delphi developers see .NET as some kind of "competitor" to Delphi and the way stuff always have worked, which is totally wrong. It also tend to be that many Delphi developers in their ages 40 to 55 dont like new technology very much. (I guess I will be lynched now)
My father is 51 years old and gets upset when he dont understand the new things that keep popping up all the time - and I can understand him. It’s the "If it aint broke, why fix it"-mentality.
December 14th, 2006 at 3:01 pmThanks for taking time to comment this topic. Besides .NET runtime, Turbo Win32 IDE requires 2 more runtime packages to be installed to work.
Why I use Win32 and not .NET is because of control I have over my applications. They are fast, robust and work. I can change them to do exactly what I need. If I need to write more code, I will, because it will result better application. It is easy to deploy and update — the less 3rd party external dependencies you have, the better.
Why I don’t like that IDE uses these additional runtimes is that I see you have just wanted to cut corners on some lines of code, instead of spending some more time and effort to build more robust stand-alone Delphi application. I think this is contrary to the original Delphi concept (robust, integrated, independent).
If I see big applications for download on the Internet that I know can be done much better and smaller, I just don’t use or buy them (see ATI Catalyst Control Center for example of bloatware). I know they are made by people who don’t care about me, otherwise they should have put a bit more effort into their product. Delphi IDE looks about the same now to me, sorry to say.
December 14th, 2006 at 3:05 pmEven I know the answer in advance I can not stop saying this.
Sorry to insists but making the IDE based on .NET will make the posibility to migrate to LINUX/OSX more diffcult isn’t it?
I’m sure many Delphi Community guys will be happy to help CodeGear to get the same result without .Net
December 14th, 2006 at 3:24 pmAnother week, another (different) story, and just as unconvincing as the others to date.
On the one hand .net is used because the product started out in life as a .net development tool so it just kind makes obvious sense.
Then on the other hand .net is used because Borland decided that that is what their customers wanted : "FOR US .net is where our customers want to go", not "our customers have told us .net is where they want to go".
Then on a third hand, .net is just this insanely great idea that only an idiot would ignore, and to make this point the same arguments come up again - ones that really don’t stand any form of intelligent scrutiny.
".net is native" - hogwash.
This was said about .net 1.0 yet each major new release of .net proclaims performance improvements as one of the advances in that release.
So .net 1.0 was just as fast as native, and .net 2.0 is just as fast as native, yet .net 2.0 is faster than .net 1.0
Something does not compute.
The "we do not need to maintain" it argument is complete nonesense as well.
That only works if the thing you don’t need to maintain does not itself intrinsically need any maintenance - as soon as it does, then the "not maintaining it yourself" benefit becomes a huge disadvantage - you have to wait for someone else to maintain it for you.
Are we really saying that .net represents the state of the art in all things that it delivers?
If so, why are any of us bothering to write any code at all? We should be leaving it to Microsoft to deliver the components from which applications can be assembled by business analysts.
And for that matter - if the Microsoft library is the best there can be, doesn’t it also rather naturally follow that their tools would be too?
Are we sure this is the message CodeGear want to send?
Just imho, as ever.
December 14th, 2006 at 4:14 pmPerhaps some people blame the AV’s and general errors in BDS (2005 was BAD, still see them sometimes in 2006, though not nearly as bad) on the fact that .net is mixed in? Personally I do not, but I could see that mentality from hardcore win32 developers when those issues did not occur in a pure win32 IDE like Delphi 7.
BTW, I use Turbo Win32 Delphi 2006 and enjoy my refactoring (one of the many pieces written in .Net from what I hear).
December 14th, 2006 at 5:25 pmNick, you claim that .NET is so useful (in building the IDE), but you don’t mention a single specific thing that the IDE gains from .NET. It is a credit to the Delphi team at DevCo, and the Delphi community in general, that Delphi Win32 is such a powerful development tool. I find it hard to believe that .NET really helped you build the (newer features of the) IDE, but I have an open mind. Just give a couple of specific examples. That might go a good way to convincing folks. So far you haven’t convinced me.
December 14th, 2006 at 5:25 pmNick -> I suppose some people feel the same way about dotNet as others do about Java (oh Java, how I hate thee!) The most rational excuse I hear is about the delay involved in JITing. You might want to consider adding a pre-JIT of required assemblies into the GAC as a speed improvement. It would make sense for the core borland assemblies.
Jolyon Smith -> how can someone smart enough to notice the symantic issues be so dumb? Of course there are speed improvements with each version - improvements in JIT means better native code that runs more efficiently, better optimized framework means the same thing. I don’t know about you, but I try to improve the performance of my apps as they go even if they ARE native code. How you write code can have a significant impact on performance. Deliberately ignoring obvious facts like that to support a dubious argument undermines your credibility when do you make a valid point.
DotNet does indeed have some very good points, but people have embraced framework religiously in the same way they approach OS and language. It is stupid, petty and just absurd. In fact, if anyone except MS had come up with dotNet, it would probably get a fraction of the hate it currently does. Each tool, each framework, each OS has areas in which it performs best.
Yes, dotNet’s framework IS a competitor to the VCL, and yes, that can be scarey to members of a small, insular community like Delphi Developers. However, you should at least investigate it HONESTLY as a possiblity for coding just like you did for Delphi. Maybe there are some projects that work better in dotNet than Delphi, and vice versa.
Daniel Luyo -> good point. However, I suspect that IDE on alternate platforms is no longer the plan. It has failed multiple times now after all. That said, there is always MONO, so maybe it isn’t as large a barrier as you might think.
December 14th, 2006 at 5:48 pmI’ll probably never understand these people that complain about the fact that the BDS uses .NET. They can still create stand-alone Win32 applications that don’t require .NET. They don’t have to "drink the KoolAid" if they don’t want to.
Even before Borland tools started requiring the installation of .NET to run the installations were long. It doesn’t seem to me that .NET being used in BDS has really qualitatively changed the installation process, and as far as the operation of the IDE is concerned, I find it quite satisfactory for the most part.
I think a ilttle perspective is needed. Basic economics tells us that if the Delphi team only has to write functionality once that we will get twice as much new functionality than if they have to write everything twice, once for the .NET version of the IDE and once for a non-.NET version of the IDE. I myself would rather see twice as much new functionality and live through the .NET run-time download. In fact, I have a hard time understanding why anyone would prefer to get half as much new functionality just to save themselves a few minutes at installation time.
December 14th, 2006 at 5:50 pmYOU (borland/codegear) made a choice, but did not let US(me/other developer) to make a similar choice: how dificult it is for BORLAND/CODEGEAR to check the .NET framework presence at the end of the setup, and if not found, disable .NET dependent parts of IDE?

December 14th, 2006 at 9:30 pmThis should give everyone a chance to understand the "need" for .NET framework, and choose between the IDE functionality and a .NET free computer
If IDE allows us to write native WIN32 and .NET applications, provided it provides all functionality then it’s up to you to write your IDE in any platform.
As for me, I like native code without any Microsoft’s JIT’ers. Experience shows us that Microsoft changes things drammatically without thinking of developers, even their own developers. There is a fresh example: VB developers.
I know that the most part of developers use .NET only for creating ASP.NET pages. The reason for it is that there is a design support for creating ASP.NET pages. Though I’d like design support in Delphi for WIN32, too. Yes, of course, there is Intraweb and I sould say I like it. For other things people use native code.
I think you should provide developers with all functionalities in all platforms. It’s up to them to deside which way they prifer. Give them freedom and they will appreciate what you do. You compiler team do this. Thanks them for it. But your Web technologies need to be improved, espesially in WIN32. I remember, once I liked WEB broker, Websnap. For their time they were great. There is a long time we don’t see any improvement in this area. You’ve cut Apachie support. Statistics shows that it’s the most widespread Web server and it’s the only one running on other platforms.
It doesn’t mean that I want to teach you what you should and what not. These are thoughts of a developer who like writing in Delphi, who lives with it.
December 14th, 2006 at 10:32 pmWell, it seems this is the right path !
December 15th, 2006 at 12:13 amThe number one problem with .Net for desktop apps is security. I was thinking of writing a Firebird BDP however when I used Reflector.exe on the Interbase assembly to get some clues, I found that the code was so open (even having been obfurscated) that I feared a copyright problem.
Also there is backward compatibility, execution speed, memory footprint, redistribution of linked assemblies… Totally a non starter.
Maybe ASP.Net and Mono are plus points if you want to go this way and I am glad that CodeGear are supporting the technology however Win64 support is more likely to make me put my hand in my pocket to upgrade my BDS.
December 15th, 2006 at 12:25 amPs The Interbase BDP uses a DLL for a lot of functionality - so so when is .Net actually .Net anyway?
December 15th, 2006 at 12:30 amShouldn’t it be "Eat your own dogfood"?
Isn’t that like implying: look, .NET is so much cooler, so much better than the VCL?
Instead of advancing the VCL (because you need new stuff for the VCL-IDE) that could be reused by every other Delphi developer, you improve your .NET skills?
What kind of message is that sending?
How many people would start a new .NET project using a Borland IDE? I wouldn’t, I’d use C# and the MS IDE.
December 15th, 2006 at 12:37 amI have been developing in .NET (C# and C++) for 3 years now. I also have been developing in Delphi for 7 years now. I know both Win32/VCL/NET/ worlds, and I still do not understand why people are so resistant to .NET since it is clearly the way to go.
All arguments against .NET are purely psychological based. I call it the “BIG SCARE” of new technology. Afraid to realize that everything you have learned so far, that all your expertise is being swapped with something far more easy to use, and far more robust with improved security.
At this moment, .NET and VCL are equals, both in performance and in functionality. But making a program is .NET is easier if you need security at the executable level and in regard to forgetting to free memory. Even you code gets simpler since you do not to keep track who created the class and who should dispose it. Less chance to access violations and easier to share a class to multiple lists. (And you should use dispose to close files instead of doing this in the destructor).
Why should you have to compete with Microsoft? Use their code and build on top of it. Not only will your .NET program become faster when a new .Net is released without need of recompiling, you can also create (.NET 2.0) neutral applications that will run as 32 bit on a 32 bit machine and 64 bit on a 64 bit machine without need of recompiling. One executable that will run on both 32/64 and who knows also Linux and maybe Mac…?
If you argue that it is better to create your own VCL that is the duplicate of the .NET then I wonder why stop there? Why not replace the Windows API with your own VCL components? We would then have our own NTFS file component and bypasses Windows API???
I say, lose that scare of the .NET since it is really the best way to go.
December 15th, 2006 at 1:17 amI have been developing in .NET (C# and C++) for 3 years now. I also have been developing in Delphi for 7 years now. I know both Win32/VCL/NET/ worlds, and I still do not understand why people are so resistant to .NET since it is clearly the way to go.
All arguments against .NET are purely psychological based. I call it the “BIG SCARE” of new technology. Afraid to realize that everything you have learned so far, that all your expertise is being swapped with something far more easy to use, and far more robust with improved security.
At this moment, .NET and VCL are equals, both in performance and in functionality. But making a program is .NET is easier if you need security at the executable level and in regard to forgetting to free memory. Even you code gets simpler since you do not to keep track who created the class and who should dispose it. Less chance to access violations and easier to share a class to multiple lists. (And you should use dispose to close files instead of doing this in the destructor).
Why should you have to compete with Microsoft? Use their code and build on top of it. Not only will your .NET program become faster when a new .Net is released without need of recompiling, you can also create (.NET 2.0) neutral applications that will run as 32 bit on a 32 bit machine and 64 bit on a 64 bit machine without need of recompiling. One executable that will run on both 32/64 and who knows also Linux and maybe Mac…?
If you argue that it is better to create your own VCL that is the duplicate of the .NET then I wonder why stop there? Why not replace the Windows API with your own VCL components? We would then have our own NTFS file component and bypasses Windows API???
I say, lose that scare of the .NET since it is really the best way to go.
December 15th, 2006 at 1:17 amFirst off, I don’t (yet) have a problem with having .NET runtime installed on my PC. And, the framework that a particular piece of software uses is fundamentally irrelevant to me , unless it actively causes problems.
However, current wisdom seems to be that there’s typically NO point in porting ANY existing app or codebase from Win32 to .NET, but if you’re lucky to be starting with a totally blank sheet of paper, then .NET *must* be strongly considered. (But, as others say, so must C#)
Given the above, I’d like to know what you think the "Top Ten Advantages that .NET has given BDS" are - and in more detail than above - if you consider .NET richer than VCL, then say where and why. Maybe it’s the GC stuff, maybe it’s some .NET-only APIs, whatever…
- Roddy
December 15th, 2006 at 1:28 amConverting existing win32 applications to be recompiled is not a wise choice, since you will encounter big problems. Only very small and simple programs can be ported this way.
Migration should be a step by step process. And one possible way is to start writing newer code in .NET as part of an ActiveX (In .NET this is stupidly simply done by setting a flag to true and not the boring very labor extensive old way).
Delphi to C# is a bit more complicated but C++ to C# is mostly a search and replace of ‘->’ to ‘.’ And removing all free’s. Only care must be taken that when resources or files are used, that they get disposed in the dispose() function and now wait until the GC calls up the destructors since that is in a none-determined way. You could get a locked file because the previous destructor was not called yet and you are opening the file.
But you will notice that your code gets far less complicated for classes that does not use resources.
At this moment .NET 2.0 and VCL is equivalent in performance and in functionality. So if the compiler developer team uses the .NET for the IDE, then they will have far more time and resources to add new functionality. Also this way they are actually testing their own classes against the .NET and will improve the quality of the CodeGear products.
It seems that the .NET framework becomes more and more the API of Windows of the future. At this moment most of the framework is a wrapper around the existing API, but in the future this will become part of the Windows API on its own. Why? Because the security is built in on every level of every function of the .NET CLR. Improved security and stability. It is much complicated to explain in detail, but let’s say that I create a calculator that has no need of Internet access, then I can set the permissions to only work locally in the executable, and if some worm/virus finds a buffer overflow in the calculator, it cannot be misused to access the Internet to download a payload to be executed. Technically you can make the program allowed to access only one URL (let’s say the company URL for updates) and the rest of the Internet is off limits. Try this in a Win32 executable.
The biggest advantage of .NET is that (except for creating ActiveX very easy) is that the dll’s (assemblies) generated by Delphi can freely be intermixed with C# and (managed) C++ and VB.NET and Microsoft C#… So even from programmers point of view, in a team, I could hire a C# programmer, and a VB.Net programmer and they all work together at one project but they do not have to relearn a new language. Also in the VS 2005 you can intermix C# and C++ and VB.NET within the same executable. No need in having multiple dll’s.
Regarding to performance, some things will be faster, some will be slower, but I have looked at the JIT compiled code and it is impressive how the assembly code is nearly the same as a normal C++ program. Only one thing, in the case of C++, the code could be even a bit more optimized since the compiler has more time to compile, what is a 10 or 20 minutes more? But in the JIT situation, the time of compilation and loading must be balanced between faster execution and faster loading.
Note: I did image processing on the .NET and it was only 5% slower that the C++ variant but much simpler to program. (Actually I ported the C++ to C#).
December 15th, 2006 at 2:24 amI don’t have a problem that BDS uses .NET, from my point of view it can use any library as long as it works fine (read: fast and stable).
If I load a really big application (it’s very poorly designed -> all code in one unit) in BDS 2006 and try to make some changes there BDS eats all my memory! When it reaches 1.1 GB the IDE is *stuck* for about 15 second every 45 seconds or something!
When I load the same program in Delphi 7 it does’t even need 200 MB of RAM and I can work the whole day without any interruption. Almost the same is the case if I disable the .NET parts of the BDS IDE. I know that this might not be an issue of the .NET framework itself, but some memory leak in the BDS code.
The .NET framework may be easier to develop with, but the features of BDS that make use of it don’t leave a very good impression to me. I’m also not a fan of garbage collection and I sometimes think that the GC of the .NET framework is the culprit here, …
The question is, why didn’t you use the VCL when you developed the Galileo IDE? What can the .NET framework do that the VCL can’t. Is it the GC? Is it the code security? Is it easy support for 64 Bit? You will have to write a 64 Bit VCL anyway and an IDE doesn’t need code security does it?
I really hope that the .NET parts in CDS 2007 work better than the .NET parts of BDS 2006.
About the Galileo IDE in general: Delphi 8 and BDS 2005 were a pretty clear example that the Galileo IDE didn’t work that well until recently (BDS 2006 with all the fixes), so I don’t know if it was worth it to write a complete new IDE. So why do you say that it served you well?
On the other hand: When BDS works, it does a pretty impressive job (refactoring, live templates and all that), but you really should have set quality the number one priority.
December 15th, 2006 at 2:32 amOther advantages are these:
· I create a .NET dll (assembly) and mark it as ActiveX. This means that older win32 programs in Delphi x could use these modern functionality (if you install the .NET framework of course). So older programs could be easily extended with the modern needs without need to recompile on a modern compiler.
· Also programming in .NET does not mean that you lose the WINAPI functionality! You have direct access to every WINAPI that currently exist or in the future including your dll’s. All you have to do is prototype it similar like you normally do in the interface part.
· Compared to ActiveX, if you do not use the ActiveX part, then no need of registration to the registry.
· Also performance, if you really need speed, then you can freely mix managed and unmanaged C++ code within the same executable. This is not part of C++ but inside the CLR itself. No dirty tricks. Just make sure that your managed memory gets pinned otherwise it might move when you access it in unmanaged code. Also make sure that the transition between managed and unmanaged is kept to a minimum.
I have been wondering for many years why people think it is slower than win32, and the only explanation I can give is that it loads slower (because of the JIT) but that is only 1 time. Once it is loaded, that it runs at native speeds. For some people if a application loads in 1 second instead of 1.5 second that this proves that the first application if faster. But in reality it only proves that the loading is faster not the execution.
But look ahead of the future, since the executable is JIT, that means that the JIT might optimize it even further during the running by analyzing what functions are used the most. The more you use the program the faster it starts to execute. Try this with a precompiled win32.
Win32 applications are compiled for the now. But the .NET program will be compiled for the Pentium 5,6 triple core.
Also imagine this, I create the application in .NET now for .NET 2.0, and .NET 4.0 starts to use multithreading to for parts of it’s library, Well my single threaded application will suddenly have far better performance on a Intel Quad processor without need of rewriting.
Too many advantages in the near future and far future. The only negative thing is that you have to relearn things, especially about permissions and policies, but it is really worth it.
December 15th, 2006 at 2:51 am“I’m also not a fan of garbage collection and I sometimes think that the GC of the .NET framework is the culprit here, …”
I too was not very fond of the GC. I was wondering if it is safe enough for the complex code of multiple lists holding the same object. I didn’t trust it.
But when I wrote in VC# 2003 then I discovered that it really is very stable an trustworthy. So I lost my scare and now actually relies on it.
Interesting side effects of the GC is that it can improve the performance since it does not have to free memory every time you free it, so not time loss. And when it starts to GC, then it is even faster than all individual free’s I discovered since it is optimized. Only at some time interval it will start the GC and your program light get a hiccup.
I did program in Microsoft VS during my .NET time so Borland might have some issues regarding to stability and compatibility, but I am amazed that they got this far. I looked at the C# part and the pure .NET part of Delphi and it seems to be good
Sadly I do not have enough time to explain all details, but I propose take a C# compiler and just try it! See it for yourself before saying that .NET is bad or slow. Don’t judge on rumours of people that have no clue what they talk about and based on 5 year old stories. But test on the .NET 2.0 since the 1.1 is already outdated technology.
December 15th, 2006 at 3:02 amPeople typically fear the unknown.
If at some point the IDE acts slowly or has consumed a lot of RAM for some reason people see this as the fault of .NET.
".NET is slow" is one of those statements I have seen so often yet I have never seen any evidence of it in my own applications.
You’re not forcing .NET into your customers’ applications, so I don’t really see why anyone should care.
December 15th, 2006 at 3:20 amOlaf wrote: Why not replace the Windows API with your own VCL components.
Please I don’t want Windows API on my windows! I have API and .NET free Windows!

December 15th, 2006 at 3:41 am.NET is the normal path to future versions of Windows and i REALLY think .NET will be not just a part, but a BIG part of the OS. It will ‘kill’ Win32 API and ‘maybe’ Win32 deployment (wich is a bad thing for ‘old’ devs). I am a Win32 dev. since D1 and of course i will try to do more .NET softwares instead of Win32 softwares. If market points to a direction wich is not my direction (or my company directions), i assume that we have to re-plan our bussines to decide wich language will support our products. I’ve seen new clients asking about ASP.NET versions of our products and this really makes me think of upgrade them to .NET world.
December 15th, 2006 at 4:03 am".NET is easier…in regard to forgetting to free memory. Even you code gets simpler since you do not to keep track who created the class and who should dispose it."
I actually have the same complaint, but against .NET and not Win32. The above statement is only true for memory resources that are referenced outside dynamic arrays, strings and, most importantly, interfaced objects.
I develop and use a library built for Delphi/Win32 that uses interfaced objects for things like database connections, queries (datasets), sockets, streams, etc. These are automatically closed (or pooled, in the case of database connections) when the last reference is released. This is not possible in .NET without the use of try-finally-Dispose.
I work in a company that uses Delphi for almost all business application development. We have a central database that serves hundreds of users via tens of applications that process thousands of financial transactions and administer hundreds of financial instruments. In Win32, our developers don’t need to worry about forgetting to close a database connection. Automatically reference-counted interfaces take care of that for us.
If we switch to .NET, then every developer has to remember to try-finally-Dispose those connections every time or there will be a resource leak *in the database*. Which would you rather have, a memory leak in application code that affects one app, or a connection leak that can ultimately bring down the database for an entire company? As a developer of the library code that dozens of other developers use, I know which feature I’d rather give them (and it’s not even an either-or, since everyone developer can use interfaced objects).
As to tracking who should dispose an object, the answer is also the opposite of what the prior poster mentioned (for non-memory resources). In .NET some bit of code that is through with a resource needs to know whether it should Dispose it or not. In Win32, that code can simply release its reference to the interfaced object (automatically managed by Delphi, thank you). Again, I know which feature I’d rather give to our developers.
Don’t get me wrong. MS has provided some nice libraries with .NET. I just can’t see my company switching without something much more compelling than that because we’d be giving up "deterministic finalization". If we were using C++, then it would be another story. Delphi is just so much quicker and easier for most of our folks to use. If Delphi provided a mechanism for DF like we’ve gotten used to with interfaced objects, we’d be all over .NET (something like C++’s stack-based objects that have destructors, not finalizers, even in .NET).
December 15th, 2006 at 4:18 amI have been there when COM/Corba/ActiveX & Co have been introduced and in the beginning I was also thinking that it would be that bad to learn and implement but boy was I wrong. This is clearly a path to the future and will become a big part of the OS.
Only device drivers might not be useful for .NET applications but the rest I would be very happy that they speeded up.
In my opinion the big mistakes regarding .NET that Microsoft made were:

December 15th, 2006 at 4:25 am· Call it .NET, now everybody thinks it that it is only for Internet stuff but it is totally not true.
· Not to install it automatically when they had the chance with XP SP2! Now it is harder for the developers to convince the people that they need this additional installation procedure and this gives resistance.
· Make the error reporting of a .Net program be more user-friendly. A message with some obscure error like “mscore.dll not found” will scare away even a hardcore IT and developer. All they had to do was put up a friendly message box with the text ”I am sorry but this program needs .Net v1.1 in order to run, do you want me to install it?”
· The same is true for incorrect permissions and policies. Try to run a C# program from a shared network folder and observer the debugger kicking in with assembly code in front of your nose. It should be illegal to scare users like that. I would design a message box with following text “I am sorry but it appears that either this program is either designed to run only from a local hard disk or you do not have enough permissions to run the program. Please contact your IT and ask him to give you more execute rights”.
· Making their developer tools C#/C++/ faaaaaaaar too expensive for the home user. The express version is too simple for a home user.
· Not to tell the developers that you do not need an expert IT degree to install a .NET program with enough security rights. This can be easily done by creating a .NET class specific for the installer that will be executed from the installer with enough security settings to modify the security policies automatically.
Yes in the case of using resoucres (files, database,…) you need to call dispose and then you have the same problem as a normal class object.
I do know that .NET also supports Interfaces but I have no idea yet how they are compared to the Delphi variant. I am about to learn this now.
I never said that .NET is good for allsituations.
December 15th, 2006 at 4:44 amNick, what a thread! I guess this should be discussed on a Delpi Hour. Personally, I do not understand the following:
- If .NET is SO GOOD, why IDE is so BAD (as discussed in other blog entries)?
- If .NET is the way to go, why Java is NOT?
- Why .NET 1.1 MUST be installed to run the IDE even when .NET 2.0 is installed?
December 15th, 2006 at 5:00 amNote 1 : IDE<>.NET (actually .NET = framework + CLR + C#)
Note 2 : .NET is created by the same creator of Delphi 1
Note 3 : Because the IDE is created for the v1.1 only and not the v2.0. But applications should be able to run on v2.0 even when built as v1.1 with the exceptions of some code breaks. But an .NET application can force to use the v1.1 if it insists on it. Luckily you can redirect the application to use v2.0 instead by changing the application.exe.config –> There you can reroute the versions if you whish to.
In the original discussion they are talking about writing the IDE in .NET, they ar not saying that you need to change your win32 applications to .NET! It is only your editor. You, know that thing you use to type the source in and have many colors as you type. You can still make pure none-.NET programs!
December 15th, 2006 at 5:19 am"So, if you are a Win32 developer only, yes, you have to load up the .Net framework to run the IDE."
This is in the tekst of the blog. They are saying that you need the .NET installed on your machine to run the editor (IDE)!
That does not mean that you need to ship .NET on your pure win32 program compiled in that IDE. Big difference.
December 15th, 2006 at 5:25 am"Sadly I do not have enough time to explain all details, but I propose take a C# compiler and just try it!"
I have tried GC in Java, C# and Chrome before and I’m not saying that it doesn’t work. What I really meant was that the .NET part of BDS 2006 is doing something really bad, so that there are big memory leaks on my machine (1.1 GB memory usage).
If I just had the IDE sourcecode it possibly would even be easy to fix ;-).
The point is that it *looks* like .NET is the culprit and I can understand why many people got the impression .NET is bad technology.
To get back to GC: I don’t need it myself, memory management in our apps works fine using the "old-fashioned" allocate -> use -> deallocate mechanism. GC may have some advantages like getting less AV’s and making it easier to write code, but well I’m just used to clean up after me and that’s not going to change in the near future.
December 15th, 2006 at 5:29 amAs long as we can compile Win32 appl and the code is not broken, why whinning ? Anyway, we need to install .Net 1.1 and J# redistribuables with BDS2006. I really to see any problems on installing .Net 2.0 for then new 2007 IDE.
JFPicard
December 15th, 2006 at 6:08 amNick,
I am afraid that thinking is all wrong! Where is the innovation? It is just so easy to say "Why not piggy back on someone else’s intellectual property. Just imagine all those code libraries that are already there." That becomes the wrong mentality because your company becomes reliant on another company’s innovation. From a customer’s point of view, why in the world would I use your development tools when I can use the dev’t tool of the company that innovated the core technology in the first place.
Continuing this mindset and CodeGear will become extinct.
IDL
December 15th, 2006 at 6:54 amI’ve been using Borland products since Turbo Basic 1.0. But I am still using Delphi 6!
Because of three reasons:
BDS x.0 (witch is using .net) is slow
BDS x.0 (witch is using .net) is slow
BDS x.0 (witch is using .net) is slow
.net and C# are a kind of java virtual machine. Sure, the code is jitted. But nevertheless it’s still slow.
December 15th, 2006 at 7:16 am.NET is slow beast and it eats ton of memory just to do simple things.
December 15th, 2006 at 7:47 amMaybe my point has not point for you people of the first world, but I live/work in Perú (for you that never were in Machu Pichu, a country in South America) and here the average machine is a Pentium 4 with no more than 256 mb of RAM and a huge park of Pentium III, many many company and goverment agencies are stuck in Win98. We are not considering .Net (and of course not VISTA) for new developments. We use Delphi 6 because its efficient fast, and will not each my machine and the result exe will work in ALL my potencial customers.
Yes you can have an American Muscle Car with a massive 6 lt. motor and the weigth of a truck, but what will be the really difference with a efficient well designed japanesse or european car with a 1.8 lt motor?? Only the noise and gas bill….
December 15th, 2006 at 7:47 amIf I to develop software in C# for ".NET", I will use Visual Studio, because it is the native development IDE for C# and ".NET". C# Builder is just imitation.
Nick Hodges I think that you should read book "22 Immutable Laws of Marketing". Managment of Borland Delphi is clasic example of breaking most of the marketing laws.
And I am still using Delphi 6 for development.
December 15th, 2006 at 7:58 amBe honest I dont care Delphi IDE uses or not .net, more important is why it uses dotnet and what advangtages it brings. As we see it only decreases performance and I must say that IDE features those are written in .net is not really satisfactory, some parts are incomplete, for example refactoring. Also I am absolutely sure that these features could be written in native VCL without more effort than on .net. so .net is not bringing really valuable advantage.
December 15th, 2006 at 8:06 am.NET is so GOOD that Microsoft do NOT use it for MS Office 2007.
December 15th, 2006 at 8:37 amFace it - .NET Framework has several times more functionality then VCL (networking, remoting, advanced 2D graphics, CodeDom, cryptography, generic collections, advanced UI components (taken from MSOffice), regular expressions, XML goodies, reflection) - it would be suicide for Borland/CodeGear to reimplement all that. So they chose wisely and started using .NET - I don’t see any problem with that (I hope to get .NET 2.0 in BDS ASAP!!!).
To Jolyon Smith: do you realize that native code can run at different speeds? And native code from .NET 2 can be twice as faster as native code from .NET 1!
December 15th, 2006 at 8:52 amLOL, where was Borland when .net development was started? why they did not compete MS? Suicide is to focus on .net, because in .net is nothing to improve. Again, If I decide to deveop in .net area I will choose MS VS in any case!
December 15th, 2006 at 9:15 am> networking, remoting, advanced 2D graphics, CodeDom, cryptography, generic collections, advanced UI components (taken from MSOffice), regular expressions, XML goodies, reflection
And what from this list is really needed in creating IDE? I suppose nothing.
You don’t understand difference between .Net in developing Delphi IDE and creating .Net application using Delphi IDE.
December 15th, 2006 at 9:23 amNick -> This gives me an idea for an upcoming Delphi Hour discussion. Would you be able to discuss what materials your team uses in the analysis of the .NET Framework without giving away trade secrets? Are there books/training materials that you and/or your team would suggest? I realize, like most developers, that taking on a huge task like BDS, there is some trial-by-fire involved. In my usage of both BDS 2005 & 2006, it appears to me as if the BDS software is a hybrid approach. It may initially load using the .NET Framework, but during the course of a session (software development/debugging) it would appear that Win32 is also used. I know there are things like COM wrappers around the .NET Framework and others on the internet have mentioned being able to activate .NET components and classes via COM+ from Win32 and utilize Win32 functionality from within .NET applications. I think this might be an interesting topic for discussion on an upcoming Delphi Hour. I hope I am making sense on this.
December 15th, 2006 at 9:29 amDear my God.
I’m a Pascal Professional programmer.
I build executables and code libraries for windows from 1989 with Borland Pascal 3.3.
In 1992, I supported Borland with Delphi 1, I pay 500$ (do you remember after wrong step with Pascal for Windows)?
After this I support every Delphi IDE release:
Delphi 2 about 600 $
Delphi 3 about 600 $
Delphi 4 about 600 $
Delphi 5 about 600 $
Delphi 6 about 600 $
Delphi 7 about 600 $
Oh God, this is the last release of my favourite IDE.
Before 3 years my favourite company (Borland) took some College Boys to make my favourite IDE (Delphi 7) better and to replace it with new one, this arrives to by life when Microsoft buys 40% of Borland.
These College Boys make an IDE called Delphi 8 but Sir this was NOT like my favourite IDE Delphi.
These College Boys release before 2 years the IDE called BDS 2005, and my God is my first time where I buy Beta release executable for 3000 $, but I support Borland.
I buy, and the next Beta release from this Transsexual IDE, BDS 2006 for 3000$, but I support Borland.
Now, the Master College Boy said to me that this Transsexual IDE is good IDE with correct philosophy,
but my God after so many years I have so much code to build my own IDE, is Open source and it has the VISION OF some PROFESSIONALS PASCAL PROGRAMMERS…
For all College Boys I found my PASCAL IDE…
December 15th, 2006 at 9:41 am.NET is a technology….as with all technology, once it will be deprecated and be replaced by another technology…..I just don’t like .NET because it treats programmers more like children, who can’t take care of themselves….
CodeGear can use .NET if they like, I don’t care…as long as the product will be of high quality….in case of an IDE, it should be fast, responsive and use as least resources as possible…the current IDE uses quite a lot of resources and it is bad when you’re debugging an application which itself consumes quite a lot of resources - debugging is almost impossible, most of the time you’re waiting for page swaps…the IDE is a Native/.NET hybrid, at least according to Process Explorer, since sometimes it shows BDS as managed application and sometimes as a native (or maybe it’s a bug?
)…..
so supporting .NET is not bad as long as it does not affect quality, my point….
December 15th, 2006 at 10:13 amI have just installed Delphi 3 on my PC just for fun. It’s so great an innovative!!! BDS 2006 is an old man….
December 15th, 2006 at 11:55 amSternas Stefanos you are absolutely right.
Same story but with C/C++ Builder instead of Delphi, for me the best IDE remains with version 6 of the tool.
Now about .NET IDE, Yes I hate it (and it’s worth my hate for now)! BUT I think Borland made a safe decision to invest on the future, they developed (developing to be precise) an IDE that will last for the next, 10 or more, years when native Window applications (Win32/Win64) could be extinct in the form we know them today and it’s a safe decision even if finally (for now seems unlikely) .NET ends up been another flop.
December 15th, 2006 at 12:10 pmWe dream a platform independent IDE.. Not as good as .NET but better than .NET for all platforms.. May be imposible.. CG always says they have budget limits…May be we expect more than CodeGear can give..
Creativity should not be limited with budget.. And could not be limited anyway. Creativity what we are looking for..
Some people claims, some programmers does not like new things, that’s why they don’t like .NET… I think that is what MS wants us to think to.. MS is not creative.. MS has money power, if they can not invent something than buy it.. They are not like an inventer, more like a bussinesman. I do not respect this attitude as an independent programmer…
December 15th, 2006 at 12:15 pmSorry, but I see a lot of posts here by IDIOTS that are commenting about .NET and obviously proving their IGNORANCE and BIAS, without any real factual basis. It is clear that most who have posted comments here know absolutely nothing about .NET. The amount of stupidity posted here is so much that I cannot even begin the long effort to refute the dumb assertions made with the real facts. It would take me many hours.
My suggestion to those who know nothing about .NET except for what they heard from a friend or read in a blog somewhere, but insist on posting drivel here - GO LEARN SOMETHING ABOUT .NET BEFORE YOU POST IGNORANT COMMENTS HERE.
December 15th, 2006 at 12:45 pm@Ahto >>Why I don’t like that IDE uses these additional runtimes is that I see you have just wanted to cut corners on some lines of code, instead of spending some more time and effort to build more robust stand-alone Delphi application. I think this is contrary to the original Delphi concept (robust, integrated, independent).<<
Wrong - .NET is a robust, well-tested, secure, and performant code base that can make your applications more robust. You cannot be great and an expert at everything, so this is why we use libraries like .NET, because Microsoft hires experts to work in each area - like WinForms, or file systems, or data structures, etc. If you were to try to avoid "saving a few lines of code" and do that same kind of work in your code, you will end up with a worse application, because (a) you are not an expert in everything, and (b) you need to focus on what is important for your users, not on low-level code that .NET can provide for you.
December 15th, 2006 at 12:50 pm@Daniel Luyo >>Sorry to insists but making the IDE based on .NET will make the posibility to migrate to LINUX/OSX more diffcult isn’t it?<<
Wrong, there is almost no market available to companies like Borland for commercial development tools for Linux or OSX. Therefore, any desire to port tools to these environments is a moot point. Remember Borland’s past attempts to sell multi-platform tools? Didn’t go so well. People using Linux have a strong expectation of a free IDE and compiler - there’s not much chance of selling commercial tools to those folks.
Anyway, Delphi, etc. clearly bind heavily to Win32 - so how do you think adding a dependency to .NET is really any different?
December 15th, 2006 at 12:55 pm@Jolyon Smith >>On the one hand .net is used because the product started out in life as a .net development tool so it just kind makes obvious sense.<<
No, that is not the reason. If you are writing a development tool for .NET, there is no reason it has to also use .NET in its implementation. For example, does the C# compiler use .NET? The decision to use .NET is based on whether you want to write a managed app and if you want the productivity and security benefits of .NET. If you wanted, you could write a .NET development tool in native code, managed code, or Java for that matter.
>>Then on the other hand .net is used because Borland decided that that is what their customers wanted <<
Again, you are confusing different things. If Borland customers are asking for .NET support, they mean they want to be able to write applications that support .NET - they are not asking Borland to use .NET in their applications. End customers mostly don’t care what technologies that Borland uses to write their IDE. Any interest is mainly academic.
>>Are we really saying that .net represents the state of the art in all things that it delivers?<<
Anyone who follows these technologies would say "yes." Because .NET is better than Java, and clearly .NET 2.0 is better than .NET 1.x - then you can conclude the same. To compare with native code, you have to look in a few areas - performance, productivity, quality of the resultant application, developer protoductivity. In the hands of an expert, native apps can be more performant than managed apps, but not in all cases, and also many developers have neither the skills nor the time to optimize all aspects of a native app to get it to run better than a manged app - at least in commercial development. And in the areas of quality, productivity, and security, managed apps are far better than native apps. I’ve done both, and there is a clear difference - and there are lots of benchmarks and studies that show the same. To ignore these compelling benefits of managed development is depriving yourself of a powerful tool.
>>The "we do not need to maintain" it argument is complete nonesense as well. <<
Your arument here makes no sense at all. Borland is responsible for maintaining the code it writes, and if it can write far less code by using .NET, then they have less code to maintain. Get it? Microsoft, on the other hand, has millions of customers using .NET, and so the cost of maintaining the core .NET is amortized across all those customers. What part is not clear?
>>And for that matter - if the Microsoft library is the best there can be, doesn’t it also rather naturally follow that their tools would be too?<<
What does one have to do with the other? .NET is a platform, and an IDE is an application. MS has a much larger potential customer base than Borland for doing a platform like .NET, which is why it makes sense for MS, and not Borland, to do the same. But if Borland did, I’m sure technically they could do just as well (if they could afford the investment) - but it just wouldn’t be a business success. But the IDE, being an application, each company can innovate and invest as much as they can, and if Borland has come better ideas, maybe they can come up with a better IDE.
December 15th, 2006 at 1:10 pm@eduard >>YOU (borland/codegear) made a choice, but did not let US(me/other developer) to make a similar choice: how dificult it is for BORLAND/CODEGEAR to check the .NET framework presence at the end of the setup, and if not found, disable .NET dependent parts of IDE?<<
Sorry, but this is wrong. WHEN EVER, does your $500 (or whatever) purchase of Delphi entitle you to dictate to Borland what development tools and technologies they can use in their tool? Especially when your basis for such bias is not rooted in any technical reasons whatsoever. Borland creates a tool to the best of their capabilities using whatever tools they want, and your choice as a customer, is yes/no - whether it meets your needs at the price offered, etc. To try to dictate beyond that is childish.
December 15th, 2006 at 1:15 pm@Leslie Kaye >>The number one problem with .Net for desktop apps is security. I was thinking of writing a Firebird BDP however when I used Reflector.exe on the Interbase assembly to get some clues, I found that the code was so open (even having been obfurscated) that I feared a copyright problem.<<
This is true of all managed code, but it is also a problem for native code, right? In other words, if you write your proprietary algorithm in C++ and compile it to assembly, it is still pretty easy to reverse assemble the code to figure out your algorithm. It is easier with native code than managed code (.NET and Java are the same in this repsect), but the problem is the same.
Also, native code can be compiled and distributed as native code with NGEN, and obfuscators are pretty effective as well.
Finally, what does this have to do with Borland’s choice to use .NET in implementing their IDE?
>>Also there is backward compatibility, execution speed, memory footprint, redistribution of linked assemblies<<
Huh? Backward compatibility a problem in .NET? Redistribution of linked assemblies? Regarding execution speed, you should search the Internet for benchmarks - for the most part, managed code is typically within 5-10% of the run-time performance of native code, so that is a non-issue for most applications. And memory usage is probably a bit higher, but our hardware capabilities have far exceeded any native memory requirements anyway (most machines now have 512MB - 2GB RAM).
December 15th, 2006 at 1:25 pm@Holger Dors >>Isn’t that like implying: look, .NET is so much cooler, so much better than the VCL?<<
Wrong - read up on .NET - it is also a managed execution environment, not just a class library. .NET and JVM are approximately the same, not .NET and VCL. VCL is like a small part of .NET (WinForms) or a small part of Java (Swing).
>>How many people would start a new .NET project using a Borland IDE? I wouldn’t, I’d use C# and the MS IDE.<<
December 15th, 2006 at 1:28 pmMe, too. There is no reason to start a new app today in VCL - there is no benefit relative to C#/WinForms/.NET/VS2005. This is the challenge for Borland - how will they create a compelling value to compete with Microsoft in this area?
Is Visual Studio written completely in .NET or is some C++ used. I think this is an important question, that is, is MS using the .NET technologuy in their IDE
December 15th, 2006 at 1:35 pm@ Jens Mühlenhoff >> I have tried GC in Java, C# and Chrome before and I’m not saying that it doesn’t work. What I really meant was that the .NET part of BDS 2006 is doing something really bad, so that there are big memory leaks on my machine (1.1 GB memory usage). <<
LOL, that is a funny and ironic statement. Clearly, any memory leak, BY DEFINITION, must be in the native code, and not in the .NET code - since the .NET code cannot have a memory leak - there is no such thing.
In any case, such a programming mistake is clearly not the fault of the underlying tools (e.g., compiler, .NET, etc.) - it is the fault of the application that has the problem. There are literally thousands of apps out there using .NET that do not have memory leaks.
December 15th, 2006 at 1:40 pm@ Andrei Gerasimenko >>If .NET is SO GOOD, why IDE is so BAD (as discussed in other blog entries)?<<
You can use good tools to write bad applications, and bad tools to write good applications. Many Borland IDEs have had problems in the past, that have no use of .NET. Similarly, other IDEs that use .NET, work really well.
>>If .NET is the way to go, why Java is NOT?<<
Because the designers of .NET were able to study Java before doing their own implementation. They avoided some of Java’s mistakes, and created a more elegant and robust implementation. This includes both the runtime environment and language. I’ve programmed in both Java and C#, and C# is clearly better.
>>Why .NET 1.1 MUST be installed to run the IDE even when .NET 2.0 is installed?<<
Because .NET 1.1 applications bind against the .NET 1.1 runtime, and .NET 2.0 applications bind against the .NET 2.0 runtime. Basically, an application may be able to be source-compatible with both framework versions, but you have to compile for a particular level of the framework. This avoids many of the JVM compatibility you see in Java over the years, e.g., "I just upgraded to a newer JVM version and my XYZ Java app no longer runs."
December 15th, 2006 at 1:47 pm@Simon Dex >>.NET is slow beast and it eats ton of memory just to do simple things.<<
Sorry, this is just a completely ignorant statement (and you know it). There is nothing grossly inefficient in .NET - generally apps will run a tiny bit slower and consume a bit more memory - but nothing like you describe.
We recently re-wrote an application from C++/VCL to C#/WinForms, and it took far less time to develop, the memory usage was about the same, the performance was a little better, and the quality was a little better.
December 15th, 2006 at 1:53 pm@ Impatient Delphi Loyalist >>I am afraid that thinking is all wrong! Where is the innovation? It is just so easy to say "Why not piggy back on someone else’s intellectual property. Just imagine all those code libraries that are already there." That becomes the wrong mentality because your company becomes reliant on another company’s innovation. From a customer’s point of view, why in the world would I use your development tools when I can use the dev’t tool of the company that innovated the core technology in the first place. <<
Sorry, you are the one who has it all backwards! By using .NET, it frees up Borland to innovate MORE NOT LESS, since it means they can spend LESS TIME writing low-level code and MORE TIME writing high-level code that adds innovation and functionality for end users.
December 15th, 2006 at 2:03 pm.Net code pollutes the mid/longterm crossplatform potential. Delphi will have to become a Linux gear too in order to prosper well, imho.
December 15th, 2006 at 2:07 pm@Rich Ratklif: >>NET is so GOOD that Microsoft do NOT use it for MS Office 2007.<<
This is not a big surprise - after all, why would any company completely re-write an application in a new technology? It makes no economic sense.
It is more educational to look at new programs that Microsoft is developing. For example, portions of VS2005 are written in .NET, and many new programs that Microsoft is developing are completely based on .NET (e.g., Team Foundation Server, Share Point, etc.).
December 15th, 2006 at 2:09 pm@Irakli >>LOL, where was Borland when .net development was started? why they did not compete MS? Suicide is to focus on .net, because in .net is nothing to improve. Again, If I decide to deveop in .net area I will choose MS VS in any case!<<
If that is true, then why did you pick NATIVE Borland tools over native Microsoft tools? Why would that be any different than picking .NET Borland tools over .NET Microsoft tools? What difference does it make?
December 15th, 2006 at 2:12 pm@Jeff Carbello >>Is Visual Studio written completely in .NET or is some C++ used. I think this is an important question, that is, is MS using the .NET technologuy in their IDE<<
Portions of VS2005 are written in .NET (C# AFAIK), but the majority is legacy, native code written in C++.
December 15th, 2006 at 2:13 pm@Hans-Peter >>.Net code pollutes the mid/longterm crossplatform potential. Delphi will have to become a Linux gear too in order to prosper well, imho.<<
Wrong - If you are writing a Windows app, your choice is to write against Win32 or .NET. Why would .NET be any harder to implement in Linux than Win32? If anything, it would be easier.
December 15th, 2006 at 2:16 pm@ Peter Kovac >>.NET is a technology….as with all technology, once it will be deprecated and be replaced by another technology…..I just don’t like .NET because it treats programmers more like children, who can’t take care of themselves….<<
Huh? How did you get to this conclusion? .NET is just a programming platform like any other - it is more efficient than others, but it doesn’t treat programmers like children. That is just stupid. If you are talking about things like GC, well then you are underestimating the real burden that manual memory management has, and the history of all the "professional" programmers through the years that wrote applications with memory leaks. But I’m sure you don’t count yourself in that group.
In any case, .NET lets you program at a just-slightly higher level of abstration, and to not have to worry about unimportant things like when memory gets deallocated. You can then, in turn, use the time for more useful tasks in your program.
December 15th, 2006 at 2:21 pmi did not know that the delphi ide is a .net application, i have reasons to believe that it’s actually a hybrid application, over 80% native… but sure… it makes perfect sense
December 15th, 2006 at 2:26 pm@Tugrul Tamturk >>We dream a platform independent IDE.. Not as good as .NET but better than .NET for all platforms..<<
What are you talking about? .NET is a platform - you might as well argue that Borland should try to make Delphi better than Windows - how much sense would that make?
December 15th, 2006 at 2:40 pm@Tugrul Tamturk
Anyway, you have a platform-independent IDE - it’s called Eclipse. Go download it now! If you think it is as good as Delphi, then you’ll be disappointed. Ever heard of "least common denominator"?
December 15th, 2006 at 2:43 pmHey Nick,
I addressed this same issue on my blog a little over two years ago. I’ve updated the post to include comments that people made so if people are interested that link is here:
http://www.stevetrefethen.com/blog/WhyDoesDelphi2005IDERequireTheNETFramework.aspx
or
http://tinyurl.com/ymcnes
-Steve
December 15th, 2006 at 2:44 pmcomparing the amount of "pre-jitted" .net between 2.0 (xp) and 3.0 (vista) i noticed no differences… @ least 2 me, 3.0 looked more like a 2.0 with lipstick… bus sure, your speech makes perfect sense…
December 15th, 2006 at 2:47 pm@Tom: If that is true, then why did you pick NATIVE Borland tools over native Microsoft tools? Why would that be any different than picking .NET Borland tools over .NET Microsoft tools? What difference does it make?
In NATIVE it is Pascal/Delphi/VCL vs. C++/MFC and the winner is clear. In .NET it’s the same and the looser is clear. I don’t think that CG can change this, they are not in control.
@Tom2: Wrong - If you are writing a Windows app, your choice is to write against Win32 or .NET. Why would .NET be any harder to implement in Linux than Win32?
A VCL (for Linux) would be easy to use and wouldn’t force linux users to install the .net (mono) library. Why accept dependencies if they are not necessary?
December 15th, 2006 at 2:47 pm@Hans-Peter:
>>In NATIVE it is Pascal/Delphi/VCL vs. C++/MFC and the winner is clear. In .NET it’s the same and the looser is clear. I don’t think that CG can change this, they are not in control.<<
I’m not sure what you mean by this. Borland is still in control of their features and implementation - the only loss of control they have is that their customers are demanding tools that can work with .NET, and so they are forced to follow Microsoft’s lead. But that shouldn’t prevent them from being able to create a better tool than Microsoft, should it?
>>A VCL (for Linux) would be easy to use and wouldn’t force linux users to install the .net (mono) library. Why accept dependencies if they are not necessary?<<
Discussions of cross-platform VCL are academic, because the market has already been offered this (CLX) and was not interested. If one wants to program a cross-platform GUI, they already have a good solution with Java + Swing.
Anyway, what is the difference, if your application had a VCL dependency, it would have to deploy VCL, or if it has a .NET dependency, it might have to deploy .NET. What’s the difference - it’s the same in the end.
December 15th, 2006 at 2:56 pm@daniel
>>comparing the amount of "pre-jitted" .net between 2.0 (xp) and 3.0 (vista) i noticed no differences… @ least 2 me, 3.0 looked more like a 2.0 with lipstick… bus sure, your speech makes perfect sense…<<
I’m not sure what you mean, but I will say that .NET 3.0 has .NET 2.0 at its core, but then adds some additional libraries, e.g., WCF, WPF, etc. The core part of the framework is UNCHANGED in .NET 3.0.
December 15th, 2006 at 2:58 pm@Ralf Stocker >>I have just installed Delphi 3 on my PC just for fun. It’s so great an innovative!!! BDS 2006 is an old man….<<
Any time you load old software on modern hardware, it will run FAST. For example, if I loaded Turbo Pascal for DOS on my dual-core, 3GHz, 2GB PC, it would run SUPER FAST. But would that make me any more productive than the current version of the same IDE? No way!
Borland (and other) software engineers have for the most part consumed additional hardware resources through the years to develop functionality that makes development faster and easier. Sure, there are some mistakes along the way, but that is the general trend, and as a software engineer, I am glad for it.
With no progress, we’d all still be programming in assembly, and do you think we’d be able to create anywhere near the kind of software that is possible or even easy to write today?
December 15th, 2006 at 3:04 pmGo ahead this way, Borland/DevCo/CodeGear, whatever you are. You’re lost to most of your customers.
December 15th, 2006 at 3:08 pm@Tom: …create a better tool than Microsoft, should it:
don’t know. I agree that they have to try and who knows? I like in principle that I can program in .net with BDS and so, yes, a "net-poluted" BDS is fine with me as long as the native things work well. And if they would integrate CrossKylix, well, …
about crossplatform:
It was 5? years ago, premature, expensive, didn’t like the CLX/VCL separation. I don’t think that it was a total failure, they had incredible engaged users, but broke promises and many hopes. - My code has to be native I cannot deploy .net on Linux. The alternative would be Freepascal or C (brr.). And I don’t talk about GUI apps.
Sorry it’s getting off topic and I stop now.
December 15th, 2006 at 3:36 pm@Excessive: Go ahead this way, Borland/DevCo/CodeGear, whatever you are. You’re lost to most of your customers.
What would be your way?
December 15th, 2006 at 3:40 pm@Hans-Peter: Why not use Java + Swing? It’s cross-platform today, and pretty easy to develop in, as long as you use NetBeans with Swing. Java is readily available on many platforms.
December 15th, 2006 at 4:53 pmIt is all wrong. Net is not library, and using it this way only indicate what many developers level dropped significantly.
December 15th, 2006 at 4:58 pmUsing business apps rules (faster is better even if ugly) in IDE business is WRONG. Really WRONG! Believe me, you do not need this NET for IDE, if your developers say they can’t write IDE without NET you just need to fire them and hire better ones.
@Vitaliy >>It is all wrong. Net is not library, and using it this way only indicate what many developers level dropped significantly. Using business apps rules (faster is better even if ugly) in IDE business is WRONG. Really WRONG! Believe me, you do not need this NET for IDE, if your developers say they can’t write IDE without NET you just need to fire them and hire better ones. <<
Developer productivity is an issue for ALL BUSINESSES, even Borland. This allows Borland developers to get the job done quickly and focus on other areas. Why would that not be appropriate for IDEs?
Do you think that all IDEs should be developed with only performance in mind, e.g., they should be written entirely in assembly language, whatever the cost, so that the performance is the best possible? That is silly.
Performance is important, but so is getting the job done quickly and doing a good job.
December 15th, 2006 at 5:07 pm@Excessive >>Go ahead this way, Borland/DevCo/CodeGear, whatever you are. You’re lost to most of your customers.<<
How does this decision affect Borland customers at all? I mean, who cares how Borland implemented their IDE, as long as it works well? I mean, if it were written in SmallTalk for OS/2 with a Windows emulation layer (I made that up of course), and it performed nicely, would you decide to not buy it because of that? Don’t you think that most customers are focused on the END RESULT, i.e., the quality of the product, rather than how it is implemented?
December 15th, 2006 at 5:16 pm@Jon & @Tom
Customers use Visual Studio for .NET development. They used Borland’s tools in the past because:
- They were superior compared to other tools.
- They were superior in productivity.
- They were the fastest tools on the planet.
- Nothing could beat Borland’s tools at stability.
- Feature set of Borland tools were unmatchable.
- Borland had the innovation, Microsoft and others were imitating and following them.
Now, this is the situation:
Nick asked for comments before (Most of you may remember) about why old Delphi users weren’t upgrading to new versions. They got 40 pages of feedback. Most of the people were complaining about:
- Unstable, slow, and buggy IDE
- Lack of innovation on new tools to switch.
- .NET crap.
- Lack of VCL enchancements (including Unicode support)
- Following Microsoft innovations, instead of innovating.
- MS Style IDE (Borland is copying Microsoft even on IDE design. Where’s innovation?)
- Almost every feature on IDE line exists (and working better) at Visual Studio.
Personally I hate .NET. Why should I install a 120 mb framework for a 2 mb application? Security? Stability? Nothing can explain this. Also, depending on other companies’ technology means death, as the other company can change the technology into whatever they want. And believe me, Microsoft did this before, and will continue to do so. They gave wrong information about their technology to others, to break competetion.
Now, what if I was CodeGear?
- Leave the .NET stuff, as I’m not the one who controls this technology.
- I would create a superior product compared to Visual Studio.
- Instead of copying and following, I would start innovating. Borland did this before, and I don’t see any reason for this to not happen.
- I would create a web based language for scripting, based on Borland’s innovations. This way, people will get familier with Borland’s tools.
- I would care what our customers say. After 40 pages of comments, Nick posted "You are more than heard, believe me." After that, nothing is changed, and lots of posts started to show up "why should we upgrade to newer versions." This is a communication problem, or IDE tools came into a bloativity level which can’t be managed anymore. If this is the case, I would start one of the most used languages (Delphi and C++) from stratch.
Anyway, I switched to Free Pascal already, for Pascal development. It works on 10+ platforms, without changing my code. This will be the case for me, if CodeGear continues this way, as this company doesn’t have a future with this kind of thinking.
Best regards,
December 15th, 2006 at 11:21 pmNative cross platform development (Win/Linux/Mac) with 32/64 bit is the future.
December 16th, 2006 at 4:12 amMoreover a powerful GUI library (e.g. Qt). dotnet is the wrong Microsoft/java way.
@Excessive
Great post - I think you are right on most of your points. When it comes to transitioning from native development to .NET or to Java, I think that is where Borland loses most of its customers. And I agree, that it is a self-inflicted wound due to years of buggy IDEs and neglected products (e.g., C++Builder). The nice work Borland did in times past can only convince a customer to take so much, and at some breaking point we realize that Microsoft is back on top of their game, and we get tired waiting for Borland to figure out "which end is up."
Regarding .NET, you may hate it, but I think that is irrational. .NET is a high-quality, high-productivity development platform, and it is a part of Windows going forward. If you are targeting Windows, there is no reason to avoid it. I can tell you that the productivity gains are real. At our shop, we saw 30-40% average productivity gains when we switched from C++Builder to VS2005/C# - that is huge, and it exceeded our expectations greatly. In addition, it is easier to write stable apps in C# compared to C++. These are all big benefits for us, and I can’t imagine not using .NET.
As to the future, I agree with a lot of your ideas for CodeGear, and I would add that transitioning their products to Eclipse is ENTIRELY THE WRONG DIRECTION. How can you innovate on that platform? How can you get ahead of your competition (esp. Microsoft) on Eclipse? I don’t see how the "if you can’t beat ‘em, join ‘em" strategy does anything for CodeGear, except to hasten their demise.
Microsoft is currently working on Orcas, which is going to roll out next-gen tools for Vista. There is an opportunity for CodeGear to participate in that generation of tools if they want to, but there is no way such tools can be based on old-style thinking and old-style platforms like Eclipse. The platform technologies are already available (i.e., Vista), so there is no reason that CodeGear can’t participate. But I suspect that, just like with .NET 1.1 and .NET 2.0, CodeGear is going to wait it out for a few years and take the time to catch up. I also see a hint of resistance to supporting new Microsoft platform technologies, and some degree of pause to see whether they will "really happen." But experience has taught us that when Microsoft invests in technologies like this, they DO HAPPEN. I’d like to see CodeGear get more proactive and get ahead of the curve for once.
December 16th, 2006 at 7:32 am@Ralf: >>Native cross platform development (Win/Linux/Mac) with 32/64 bit is the future. Moreover a powerful GUI library (e.g. Qt). dotnet is the wrong Microsoft/java way.<<
Well, then most developers are wrong, based on your views. Most developers are transitioning from native code to .NET (for Windows) and Java (for cross-platform). Maybe tools like Qt are the way of the future, but today they can’t compare to .NET and Java in terms of productivity, robustness, or quality of the result at all. It starts at C++, which should be eliminated and C# or Java used in instead (this is coming from a guy with 15 years’ experience) - C++ Considered Harmful to Software Development would be a good way to put it.
Next, when you look at cross-platform GUI libraries, you cannot avoid the terrible compromise between using OS native controls or the GUI library providing its own. If it uses OS native controls, then your application looks and behaves differently on each platform, which creates testing problems, lots of bugs in your application, and lots of workaround code (e.g., if platform is Windows, do this, if Linux, do that, etc.). If you use the GUI library controls, then you have low-performance, and your application does not have consistency with the look-and-feel native to the OS. So how do you avoid this? We saw all this play out with Java over the years, which has been unusable for most cross-platform GUI development over this time period.
December 16th, 2006 at 7:46 amTom >> Sorry, you are the one who has it all backwards! By using .NET, it frees up Borland to innovate MORE NOT LESS, since it means they can spend LESS TIME writing low-level code and MORE TIME writing high-level code that adds innovation and functionality for end users.
Since it seems you have all the time to rebuff other posts here. Answer me these: Why in the world would a company invest in CodeGear for developing .Net applications when they can go for the company who has been innovating the .Net technology, has the manpower 1000 times CodeGear and has the monetary resources? All this time MS was writing this "low level code" you mentioned what was CodeGear/DTG doing? As I recall CodeGear was working on D2008, D2005, D2006. Where was the innovation in that??
IDL
December 16th, 2006 at 1:08 pmWho is "TOM"?
I think he is “Microsoft pay-monkey” or he is a “C# script College Boy who is learning now how to make beautiful forms for .NET”…
“A Death with Personality…” I am writing this for 3 years now, Nick.
December 17th, 2006 at 1:46 amYou have lost the train man…
I think he is “Microsoft pay-monkey” or he is a “C# script College Boy who is learning now how to make beautiful forms for .NET”…
“A Death with Personality…” I am writing this for 3 years now Nick.
December 17th, 2006 at 1:49 amYou have lost the "train" man…
Tom, please consider other people’s opinions too, no need to jump on all others with your *personal* opinion.
BTW, .NET has been now out for years — where is all that great commercial software that exclusively takes advantage of it? Macromedia, Adobe, Corel, Symantec, Microsoft, Nero, CyberLink, ULead etc — do you know any popular key applications that are built on .NET?
You can force your .NET application in house because there is no competition. Outside, seems things are different.
December 17th, 2006 at 2:42 amTom.. you saw productivity improvements from C/C++ Builder (VCL) to .NET framework porting, based on the fact that you did not utilize the excellent Borland components that C/C++ Builder and Delphi offers by default, to its programmers or you found (or bought?) equivalent functioning ones in the .NET framework.
But that is not always the case..
For example, I shall speak about my self, my (non database –yes I tent to write non-database centric software from time to time :-p) application uses TStringGrid component (you should know it.. don’t you?) heavily by owning drawing it and etc..
If I decide to port it on the .NET C# then I will definitely miss my excellent TStringGrid in .NET framework, damn it! Except if I a) develop it by my self or b) for productivity sanity (since you mention it)
buy it ready for extra money from a 3rd party company since the default provided .NET String Grid component does not cover MY needs -so from that perspective porting MY Application to .NET framework bores my productivity (do not you agree?) or costs me extra money..
So VCL to .NET porting does not always magically guarantee productivity gains
December 17th, 2006 at 3:27 amTom.. you saw productivity improvements from C/C++ Builder (VCL) to .NET framework porting, based on the fact that you did not utilize the excellent Borland components that C/C++ Builder and Delphi offers by default, to its programmers or you found (or bought?) equivalent functioning ones in the .NET framework.
But that is not always the case..
For example, I shall speak about my self, my (non database –yes I tent to write non-database centric software from time to time :-p) application uses TStringGrid component (you should know it.. don’t you?) heavily by owning drawing it and etc..
If I decide to port it on the .NET C# then I will definitely miss my excellent TStringGrid in .NET framework, damn it! Except if I a) develop it by my self or b) for productivity sanity (since you mention it)
buy it ready for extra money from a 3rd party company since the default provided .NET String Grid component does not cover MY needs -so from that perspective porting MY Application to .NET framework bores my productivity (do not you agree?) or costs me extra money..
So VCL to .NET porting does not always magically guarantee productivity gains
December 17th, 2006 at 3:27 amto clarify my previous post: I wish for Xmas a new setup program who installs what I want from turbo/bds, but does not force me install xxx MB of .NET prerequisites, unless I want/need those beautyful features like refactorings/etc; all those discutions would never happened
December 17th, 2006 at 4:45 am@Impatient Delphi Loyalist >>Why in the world would a company invest in CodeGear for developing .Net applications<<
I don’t know - after Borland "hung us out to dry" with C++Builder, we switched to Microsoft tools. We just couldn’t take C++Builder, its bugs, and its lack of attention from Borland (since addressed) for so long.
@Sternas Stefanos >>Who is "TOM"? I think he is “Microsoft pay-monkey” or he is a “C# script College Boy who is learning now how to make beautiful forms for .NET”…<<
Not quite - I’m a professional developer with 15+ years experience, and I used Borland tools for most of my career.
@Ahto >>Tom, please consider other people’s opinions too, no need to jump on all others with your *personal* opinion.<<
Well, the point of my posts is to state FACTS, since the majority of posters talking about .NET don’t know WTF they are talking about.
>>BTW, .NET has been now out for years — where is all that great commercial software that exclusively takes advantage of it? Macromedia, Adobe, Corel, Symantec, Microsoft, Nero, CyberLink, ULead etc — do you know any popular key applications that are built on .NET?<<
.NET is still in its infancy, so apps are just now being developed for it. Most of the companies you mentioned have legacy apps, and clearly it makes no sense to re-write an existing application in order to take advantage of a new technology. But Microsoft is using .NET for its newer programs, including Office Accounting, Visual Studio 2005 (partial), SharePoint server, Team Foundation Server, and probably lots more. In the industry I work in, I also know for a fact that nearly all next-generation application development for Windows desktop is .NET - almost every company I am aware of is transitioning from Visual Studio 6 to Visual Studio .NET/2003/2005.
>>You can force your .NET application in house because there is no competition. Outside, seems things are different.<<
How did you figure that out? Anyway, our apps are sold to and used by external customers, and of course we have competition, too.
@Poor Coder >>Tom.. you saw productivity improvements from C/C++ Builder (VCL) to .NET framework porting, based on the fact that you did not utilize the excellent Borland components that C/C++ Builder and Delphi offers by default, to its programmers or you found (or bought?) equivalent functioning ones in the .NET framework.<<
I’m not sure what you mean - we used a mix of Borland and third-party components in C++Builder, and we use a mix of native Microsoft and third-party components in .NET as well. Also, we didn’t do a line-by-line port of our application. We re-wrote it based on the original requirements specification.
Sure, I agree, if you have an application that relies heavily on a the API and capabilities of a particular VCL component, and you don’t see a close match in .NET, you are going to have some problems. Of course, the components will be pretty different. But I don’t think there is anything "missing" in .NET, AFAIK.
December 17th, 2006 at 5:36 am@Tom
>>.NET is a high-quality, high-productivity development platform, and it is a part of Windows going forward. If you are targeting Windows, there is no reason to avoid it."
For me, the reasons to avoid .NET are:
1. It’s not cross platform. (Forget Mono, its useless.)
2. It’s Microsoft technology, and I have to use Microsoft tools to build applications which takes advantage of the latest .NET framework. (or wait 2 years for CodeGear to complete its .NET 2 capable tools)
3. From history, we learned not to trust Microsoft in any way. It’s pure evil.
4. Control. Microsoft controls the framework which your software depends. The developer doesn’t.
5. Unable to make optimizations. Where are Windows API’s and integrated assembly?
Microsoft doesn’t release "Microsoft sponsored case studies" on a product unless the product is clearly superior compared to Microsoft’s products. Look at the history, what was the last case study on Microsoft-Borland competetion? Delphi 3?
>> .NET is still in its infancy, so apps are just now being developed for it.
If a platform is really valuable, it gets widespread usage immediately. Look at Java and VCL for example. The release of Delphi 1 shaked the planet. Hundreds of web pages appeared to support Delphi and Delphi users. Thousands of components are written for it. It was so good, that it hurts. Damn, it even had SQL links, transaction support, and RDBMS support in 1995!
Now look at .NET. It’s available since 2001, and if it was so good, where are the applications written with it? All we can see is almost void. The people who create cross platform solutions don’t even bother thinking of it.
I suppose these explains this case a bit further. If CodeGear should support a framework, it should be its own. This is where innovation comes, right? If not, they are lost. If you ask me, they have lost already anyway.
Best Regards,
December 17th, 2006 at 6:23 amBad choice ! Message to developers : If DevCo even uses NET to develop its IDE, it is that it is more difficult to do it with the framework Delphi/VCL. Thus it is necessary to better develop the programs to use the FCL/NET and … to forget Delphi and move to VS2005. Not good for CG.
December 17th, 2006 at 7:03 am@Tom >>I don’t know - after Borland "hung us out to dry" with C++Builder, we switched to Microsoft tools. We just couldn’t take C++Builder, its bugs, and its lack of attention from Borland (since addressed) for so long.
You are absolutely right, it took Borland 4 years to update C/C++ Builder, this was a really big Borland mistake
December 17th, 2006 at 10:44 amSaddly, I agree with Excessive and Sternas. CodeGear must shake their heads and PUT THEIR SOFTWARE STANDARTS for adoptable to all platforms.
December 17th, 2006 at 10:49 amThey should not forget Linux. I would pay +1 BDS Enterprise package price for fully featured Kylix (2007 ?). Today %35 of the world using Linux. And you can bet on this ratio increasing. Government are passing to Linux already. Don’t see this?
Corporates fed up to pay ten thousands dollars to MS for open licences every year. They always look for the Linux option, ready to pay half price!..
Just do not look at MS dreamland! They are very successful salers.. We already know that…
The bottom line is CodeGear needs to differentiate itself with its tools. It is the only way to win market share and attract new developers. If it is to fully embrace the .Net platform, how much innovation can CodeGear add on top of it? There is only a finite number of developers on the Windows platform. Developers would certainly gravitate towards Microsoft who is innovating the platform. I don’t buy the argument that CodeGear can concentrate on "high level stuff" and not have to rewrite "low level stuff" because Microsoft with its thousands of developers can do the same plus they have the advantage of knowing the guts of .Net. There is no way CodeGear can compete with that. It disappoints me that Nick doesn’t realize this.
Do you know why Betmax vs. VHS, Blueray vs. HD DVD wars take place? It’s because these companies have the guts to chart their own destiny and not rely on someone else’s technology to rule them. If you fail like what happened to Kylix, you learn from it and use what you learn to create something better but don’t abandon what you learned or else you are bound to repeat the same mistakes again.
I posted this on Allens blog. Hopefully more people can see this and know what innovation is all about.
http://ted.com/tedtalks/tedtalksplayer.cfm?key=j_han
December 17th, 2006 at 12:54 pmCongratulations on CodeGear for finally getting their website up and running!
It’s important for us developers to get your message so I would appreciate it if you can also include updated roadmaps and chart out the course of CodeGear. This is important for us to do our future planning (software purchases, our software releases, etc.) but more importantly, this will give us a sense of hope!!
IDL
December 17th, 2006 at 1:11 pmPerhaps the reason why Borland first supported .NET in Delphi was that it was then new and promising (?) technology? At that time, perhaps many developers answered to Borland questionnaires that they were interested to develop in .NET, because they had high hopes. So Borland got impression that it will be really useful to most developers. Now, years have gone and seems many developers are not that optimistic any more about .NET? Of course I’m only speculating here. Actually I would like to see results of the recent Delphi questionnaire, and perhaps compare it to one from 4-5 years ago, to see what Delphi developers really think about .NET now and then.
December 17th, 2006 at 3:58 pmFor those pointing out that more efficient code is fast code, whether that be .net or native.
Of course.
But anyone using .net 1.0 because it was just as fast as native was hitching the performance of their apps to .net performance.
Customer: "Why is your app so slow? Is it because of .NET"
Reply: "No. .NET is just as fast as native code - the application is simply very complex. You need to upgrade your hardware"
Customer: "Oh, OK"
(months pass)
Customer: "Hey guys this is a great release!! It’s so much faster than before. What did you do?"
Reply: "Well, in this release we moved to the .NET 2.0 framework"
Customer: "But I thought you said it wasn’t .NET that was slow?"
Reply: "It wasn’t, but this .NET is faster"
Customer: "Eh? How come? Are you saying that performance could have been better without .NET?"
Reply: "Erm, yes I suppose. But that’s not the point …"
Customer: ".. so why did you tell us it was just inherent complexity in the software and all we could do was upgrade our hardware?! We spent $000’s!!"
Reply: "erm….., but .NET 2.0 really is as fast as it can get now"
Customer: "That’s what you said about .NET 1.0! Why should it be any different this time? We’ve recently been approached by one of your competitors showing us their native code product - I have to say it is functionally identical but far more responsive. Can you give me any reason why I should stick with you guys?"
Reply: "Um, please? Pretty please?"
December 17th, 2006 at 4:35 pmIt looks like Codegear are going Sony way (with their fake blog story),
they simply hired some Tom monkey to defend their position and answer any post here. Guys, instead of doing this crap, try to hear what developers say you past five-six years.
You are loosing, and loosing very fast. You spend whole year posting here some stories about developer-centric company, but never asked developers, you always posted some religious crap about how you know better.
I am looking around and do not longer see any students who think your BDS2006 is anywhere near Microsoft VS, just because interface and bloatware are same and all firms just need guys who know VS (this is the reason of Net popularity, if you do not get this early!).
December 17th, 2006 at 6:32 pm".NET is as fast as native code "
December 17th, 2006 at 8:40 pmA rumor!
I just hope that now, where the IDE is more or less "done", you guys can concentrate on the more important aspects again, things like improving the compiler, updating the VCL, improving C++ ANSI conformance, etc.
It seems to me that everything that has been done in the last couple years is just cosmetics. It is sure nice to have an IDE with improved features, but in the end, it’s what the compiler outputs that really counts. To me, the easiest way to provide more value than MS seems to support Linux again, since this would really mean an advantage over Microsoft’s offerings. On the other hand, using Delphi or C# for .NET really doesn’t make a whole lot of difference, does it?
December 17th, 2006 at 11:06 pmJust read all the posts and it is very clear that the resistance against .NET is pure emotional based and based on rumors and flawed logic. My advice to these people that hate this is just try it. See it for yourself. And look at the assembler generated code and compare it with the assembler code generated by a native program. They are almost equal! Only C++ with its full optimizer might produce better assembler code en run a bit faster.
Also a note how could .NET 2.0 be faster than .NET 1.x if .NET 1.x was as fast as the native code? Simple optimizing the GC even more and using even better optimized libraries. At e certain point your .NET application created 2 years ago become even faster than a native application created 2 years ago. A compiled program is only optimized for processors known and implemented at that time. .NET applications using .NET 4.x or higher will use compiled code with the Pentium XX with X processors hyper threading, multithreading, MMX SSE SSE44…. So your 2-year-old program using the latest .NET will run much faster than the 2-year-old native program.
Note, you can tell the .NET application to use any a certain build of .NET but also that it can use any future version.
I just tested the Delphi and .Net implementation. At first I would have said use VC# since that is the closest to the .NET thing, but when I see the Borland C# and the Delphi .NET, then it is clear that they are close to the Microsoft thing. With the exception that it is not .NET 2.0.
Also realize that the same guy that created Delphi and the VCL in the good old days that Delphi was not so buggy created the .NET!
Another question you see is why does Microsoft not use .NET in its Office and IDE? Well if you make a program with a few hundreds of thousands of code, you will not wake up one day and say, ok rewrite everything in .NET. No it takes a few years to transit the process. But newer programs do use .NET more and more.
I agree that if Microsoft had used the .NET in its Office, that it would have given a good signal to the developers that it is a good framework. But the Framework 1.1 and below just did not contain enough building blocks compared to Delphi VCL. Only since .Net 2.0 they are equals. Also .Office in .NET would also have been a lot more secure and less buggy.
Also look at the security track record of any .NET, and compare it to security tracks of conventional AxtiveX and WINAPI, Almost no security updates!
Also in regard to reverse engineering, do you know IDA pro? Well in just half an hour you can almost read the native source code since it searches for patterns and then commend that this part of the code calls strcpy() and this part the MessageBox()…
December 18th, 2006 at 1:46 amTo all people who says ".Net is good" and "you are emotional"… Actually I did not want to say ".NET is bad", but want to say: Where is the Innovation!
December 18th, 2006 at 2:56 amInnovation does not have to cost millions of dollars. Its creativity. Most of brilliant ideas, (changed our lifes today) comes from one or two persons freakly working, and some of them costs a few thousands dollars and months…
And Borland also has had this kind of people on those days and innovate programming, force industry 10 years later in a year. They changed concepts.. Put standarts.. So clever, rest of the world had to join or try to make similar apps (even MS)… But last 5 years Borland try to produce similar things. This is bad. (and not emotional! This explains why Borland loosing money.. Pls. gentlements!)
May be MS paid 100 millions dollar for VCL know-how and Anders transfer etc. to Borland, but It seems like they bought the future of Borland.. If I said something about this (angryly) than this is emotional.. so I just shut my mouth up!!
Ok, what would be innovation according to you? What could be improved? What could be changed in order make Borland (CodeGear) be better than the other compiler builders?
We need only one person with a good idea and vision. Maybe this person is on this thread and we could start a revolution?
Let’s get constructive…
December 18th, 2006 at 4:37 amTo Tom and Olaf:
- Good .NET and bad IDE: I need to complete a sizable project in .NET to say something with confidence. So far, I have not. Thus, I look at other sizable projects for guidance. One of those is Paint.Net. I find it nearly excellent. The IDE is another one. So, the evidence is conflicting. What other fine IDEs use .NET, excluding the well known VS?
I feel that the IDE state may indicate some problem, be it difficulties of merging .NET and native, resource leak when Dispose is not called immediately, memory overhead, or maybe philosophy conflict between .NET and Win32 developers or some undocumented stuff that provides MS with an advantage? This makes me wonder HOW (what language, what purpose, what libraries, etc…) .NET was used in IDE and what would the developers say about their experience. Once again, it is worth the Delphi Hour. What if, contrary to what other posters assume, .NET in fact saved the IDE from total collapse?
- .NET and Java: I feel that .NET is better than Java (once again, no sizable project to be confident). However, both provide similar benefits (and Eclipse eats, at least initially, as much memory as Delphi). If these benefits are so important, why a version of Java had not been shipped with the IDE (I recall I have got Oracle bundled with 3 different versions of Java)? Yes, personalities may explain that perfectly.
- IDE and .NET 1.1 - 2.0: This makes me feel like there are enough code breakers to make it impractical to recompile a project of the IDE size for .NET 2.0. Thus, does it mean that all the "new version of processors, new improvements in the Framework" benefits talk is just crap?
Personally, I feel that both .NET and Java do not solve the problem they brag they do with managed code. Pointers do not work well for heap generated objects, period. Managed code solves the memory leak problem and helps somewhat with resource leaks. I am not impressed, other C# features look more attractive to me.
What would make me impressed is a framework that
1) Counts references and sends an object a signal immediately when it can be garbage collected. No need to prevent resource leak each time when I USE the object, enough to remember about resources when I DEVELOP it.
2) Allows to destroy an object any time and automatically remove it from all containers, including setting references to nil. Of course, the containers should be able to emit a signal that object has been deleted.
3) Allows an object to declare itself "hard to construct" and thus automatically creates a pool of such objects.
For example, Qt goes in this direction, but things like that must be in the language so that it is guaranteed that when an object is deleted nothing points to it.
December 18th, 2006 at 5:19 amI write it again.
The .NET concept was very smart:
1) Get all Ms Office API+ (.Net).
2) Make a new Scripter C#, that produce p-code for Ms Office API+ (.Net).
3) Kill old same philosophy scripter Visual Basic (no capabilities)…
Play with the programmers a market game and…some slogans:
“This MS .NET the new…”
“Is java killer… runs in 1 (please read one) OS”,
“Is fast like C++ end pascal”
“MS use .NET for office and Visual Studio”
“wait 5 year to make it better” etc
Now we have 2 levels of .NET programmers
1).NET first level (only MS Programmers, negative C++)
2) And second Level programmers all others “using others code”
Please it’s time to select your level.
December 18th, 2006 at 5:40 amWhat would be innovating from my standpoint of view are changes of the language that makes programming for multiprocessors easy.
Now we have to create threads to do that, but it might be useful if this is part of the language itself.
For example in the newest C++ 2005 there is a way for a for-next loop to split itself up into a second thread if the compiler detects that the processor is hyper threaded and the results within the loop does not conflict when run in a second thread.
We could let’s say define thread-spaces (similar like namespaces) that define what code (class) should run in what thread. I think of ‘Default_Thread’, ‘Dont_Care_Thread’, ‘Thread space 1’, ‘Thread space 2’,….
Now in the .NET C# we have something like this “synchronize(this) { … } “ for critical section Some similar trick could be used in Delphi for synchronizing parts of the code…
At this moment creating multi-threaded applications is still very hard to do and to debug.
December 18th, 2006 at 6:05 amAnother innovating thing is to actually make SQL easy integrated of the language.
December 18th, 2006 at 6:08 amAt this moment we still need to test every possible query to see if it is working, but if it is part of the language than the compiler could tell us that something is wrong in the SQL statement.
I am indusrial engineer / consultant and bussines software designer. After 10 years classical production with delphi way and 500.000 lines of codes…). I decided to search a way to build a bussines software without skilled programmers but just by industrial engineers (who install/train software). I developed a RAD platform on Delphi for 3 years.
Now I do not use programmer but just architect (engineer) who real job is not programming but specialist for their industrial branch. This platform runs in 20 corporates and used by more than 1000 users.
Our design and installation cost decreased nearly 1/10 of classic costs. Source Line count 1/10 again. Very little error. And We focused on the customer needs, instead of struggle in codding jungle… (We are using Delphi scripting by the way).
So In my professinal area I made an innovation. I am not a compiler programmer or RAD specialist. But (realy important point is..) under very difficult circumstances (no money, no time, have to commit customer) we found a way to live.
I am sure that David I, Allen, Nick and other old Borlanders will find a way to make us happy. Thats way I still develope this platform on Delphi 7 and try to find a way same projects run on Web, Linux etc. with no code changes…
December 18th, 2006 at 6:31 amOlaf> Another innovating thing is to actually make SQL easy integrated of the language.
By the way, in our platform (ERM2005), pascal scripter integrated with SQL scripter, that means, compiler can compile both Pascal and SQL code!
This may be good innovation point also for Delphi.. Code is like:
procedure ASqlProc;
var i, D : integer;
begin
D := 0;
for i := 100 to 200 do begin
UPDATE MESSAGES SET INVALID = 0, DELETED = %D WHERE (MESSAGESID = %I)
GO –SQL is running here
end;
end;
is possible… And Its great, because compiler finds sql errors also!. Powerbuilder has similar functionality.
On the otherhand before this stuff, CodeGear should focus on to give us platform independent structure..
December 18th, 2006 at 6:51 amMaybe something like this?
———————————
procedure ASqlProc;
var i, D : integer;
begin
D := 0;
for i := 100 to 200 do begin
SQL begin
UPDATE MESSAGES SET INVALID = 0, DELETED = %D WHERE (MESSAGESID = %I)
GO –SQL is running here
end;
end;
December 18th, 2006 at 8:10 amend;
@Olaf:
Microsoft shall never (mark my words, man!) port it’s flagships software to CLR or at least not until they implement proper anti-reverse engineering capabilities to it.
P.’S
December 18th, 2006 at 8:14 amOlaf, the output of IDA and other native debuggers is naturally obfuscated and even if IDA uses known patterns they won’t take your far away even if you are an expert on the produced machine language -On the contrary, except if you like to ostrich, CLR disassembling is a piece of cake, you do not need patterns, you do not need expert knowledge of the underling API or CPU, the .NET dis-assemblers just gives you the SOURCE CODE almost as IS and even if been “obfuscated” is still thousand times easier to be read and used than ANY IDA generated code..
Nick, that you merely try to justify your choice for using .Net pervasively in your IDE should be cause for major concern.
As far as I’m concerned, this attitude is pretty much the final epitaph on the grave of Borland dev tools. May they RIP.
The ball was dropped, and the only "true" development tools company in the Windows world is Microsoft, and its former competitors now grovel before it. It’s a bit pathetic, but c’est la vie.
Good Luck with CodeGear, but you’ll now be competing with the likes of RealBasic and other niche development tools.
For professional, generalistic development tools, it’s clear that Microsoft has become the only player.
December 18th, 2006 at 10:17 am@Excessive:
"Customers use Visual Studio for .NET development. They used Borland’s tools in the past because:
- They were superior compared to other tools.
- They were superior in productivity.
- They were the fastest tools on the planet.
- Nothing could beat Borland’s tools at stability.
- Feature set of Borland tools were unmatchable.
- Borland had the innovation, Microsoft and others were imitating and following them."
Im sorry, but that’s all relative. Delphi was awesome, but it was incorrectly marketted, pointed at VB developers who would not give up their Beloved BASIC rather than the C++ crowd that Borland Pascal actually competed with. Add on that, Borland C++ was already available with a similar product model as Visual C++: Compiler - Coder-type IDE - Application Framework (OWL & Licensed MFC).
The productivity offered by Delphi compared to Visual C++ was phenomenal, but with all the C/C++ code out there and the fact that Microsoft’s Windows API was C, how much did you expect a Pascal tool to catch on. The C++ programming language was already evolving ALOT during those times (templates, RTTI, exception handling just introduced), C++ developers didn’t have the time to learn an entirely new Programming language AND framework. The productivity gaines were overstated for all but Borland Pascal developers, due to the shift in mindset and programming proficiency involved. How many VB programmers do you think actually wanted to learn *gasp* Pascal? Not too many (as evident by VB’s strong hold on its marketshare even with Delphi’s existence).
As far as superiority, Delphi’s GUI development tools were clearly superior to the rest of the pack. Nothing came close until NetBeans 5.0 Matisse and Visual Studio .NET’s WinForms 2.0 designer (that’s 10 years?), but it is still stuck in an old model. Non-Visual components still clutter up your form, for example. The Delphi way is no longer phenomenal, it’s starting to look like yesterday’s rave.
As for stability, Borland has been battling stability problems since the dawn of time. In the DOS days they implemented operator new incorrectly and had to patch that. Their Windows IDEs were plagued by stability problems. They were very much criticized. There are some versions of Delphi that were plagued with stability problems (was it version 4). How do you think Microsoft gained so much ground with Visual C++, a monolithic IDE with zero cross platform capabilities, when Borland was offering an elegant solution that supported the [still widespread] DOS, WIndows 3.1, and Windows 95/NT platforms? They gave it away with poor quality releases (Borland C++ 4.x.x timeframe). By the time Delphi was released, everyone had already jumped on the C++/MFC bandwagon, and you think they would "waste" all that time learning how to do C++/MFC for the next rave?
As for speed, maybe you meant the speed of their compilers? Cause their IDEs were never considered "fast". Delphi 7 seemingly was a breath of fresh air, but it came at a time when cheap computers began to ship with high specs. Borland’s feature set was also deplorable. It took them quite a while to support things like ActiveX controls. I believe they were still going stong with VBX controls in 1995 for C++ developers, leaving you to create all your ActiveX controls in code. Their implementation of standard programming languages was awesome back then, but later they pretty much dropped off the match, as far as C++ goes at least. Their IDE features sets have always been deplorable compared to other competing IDEs, and their extension APIs poorly documented/implemented. That’s why there were always so many productivity enhancements via third-party tools for Delphi/C++Builder; they lacked functionality wanted by the customer base.
As far as innovation, Borland innovated with the Delphi programming language and the VCL, but there were few innovative aspects of their IDE. They were overtaken in the IDE innovation space by Microsoft’s Developer Studio 4.0, and never managed to win it back.
As for complaining about .NET, people seemingly don’t realize that VCL is starting to look like a dead-end to many developers. Borland has relied too much on third-party vendors to provide the needed components and innovation IRT the VCL, and now those third-party vendors are leaving that market for .NET. Truly, some of the best features in BDS are for the .NET languages only.
- Nate.
December 18th, 2006 at 12:14 pm@Nate
I disagree with the wrong marketing theory. Borland had a C++ Builder which came after Delphi (with Delphi 2 times afaik), thus, Microsoft’s Visual C++ has competed with C++ Builder. While Visual C++ developers working on res files for dialogs and forms, we were shipping our product. VCL innovated that area extremely well.
I agree that using Pascal on a C++ based OS is hard, but take a look at Delphi 1, and its Help system. Even Windows API functions are converted to pascal style. The help files explains API functions just like regular functions. If they kept those that way, everything would be extremely different now. RTTI, exception handling, OOP and other advanced features were available on Delphi 1 also. VB targeted idiots, while Delphi targeted professionals. Even Delphi 1 was superior compared to VB 6. The shift from Borland Pascal to Delphi was not so hard, for the ones who already knew Turbo Vision. Most of the subjects were similar. Idiots and lazy programmers chose the VB way.
>> The Delphi way is no longer phenomenal, it’s starting to look like yesterday’s rave.
I completely agree on this one. But this is where new ideas came. Copying others simply won’t work.
>> As for stability, Borland has been battling stability problems since the dawn of time. In the DOS days they implemented operator new incorrectly and had to patch that.
Remember division by zero?
I agree with this too, but every tool has its flaws. Borland’s tools were far mroe stable imho.
>> Their Windows IDEs were plagued by stability problems. They were very much criticized. There are some versions of Delphi that were plagued with stability problems (was it version 4).
You’re right, but VB was slow and bloated than Delphi. It never had the features of Delphi, all it had was superior marketing, and VBRUNXX files laying around.
>> How do you think Microsoft gained so much ground with Visual C++, a monolithic IDE with zero cross platform capabilities, when Borland was offering an elegant solution that supported the [still widespread] DOS, WIndows 3.1, and Windows 95/NT platforms? They gave it away with poor quality releases (Borland C++ 4.x.x timeframe). By the time Delphi was released, everyone had already jumped on the C++/MFC bandwagon, and you think they would "waste" all that time learning how to do C++/MFC for the next rave?
Because it is Microsoft (Read Microsoft as evil here). They gave the wrong information about their OS to competetors, to break competetion. That’s why stability of other tools went bad.
>> As for speed, maybe you meant the speed of their compilers? Cause their IDEs were never considered "fast". Delphi 7 seemingly was a breath of fresh air, but it came at a time when cheap computers began to ship with high specs. Borland’s feature set was also deplorable. It took them quite a while to support things like ActiveX controls. I believe they were still going stong with VBX controls in 1995 for C++ developers, leaving you to create all your ActiveX controls in code. Their implementation of standard programming languages was awesome back then, but later they pretty much dropped off the match, as far as C++ goes at least. Their IDE features sets have always been deplorable compared to other competing IDEs, and their extension APIs poorly documented/implemented. That’s why there were always so many productivity enhancements via third-party tools for Delphi/C++Builder; they lacked functionality wanted by the customer base.
These are the reasons why most of the (fellow) Borland developers are complaining. For me, the best Delphi release was Delphi 3 (1997). After that, the quality of the product went down. Guess what? Anders left the company at 1997.
>> As far as innovation, Borland innovated with the Delphi programming language and the VCL, but there were few innovative aspects of their IDE. They were overtaken in the IDE innovation space by Microsoft’s Developer Studio 4.0, and never managed to win it back.
>> As for complaining about .NET, people seemingly don’t realize that VCL is starting to look like a dead-end to many developers. Borland has relied too much on third-party vendors to provide the needed components and innovation IRT the VCL, and now those third-party vendors are leaving that market for .NET. Truly, some of the best features in BDS are for the .NET languages only.
I completely agree with the above. You’re one of us..
Best Regards,
December 18th, 2006 at 1:20 pmI don’t mind if the Delphi IDE uses .NET libraries. But I will have to replace my 2.4GHz Celeron/512MB RM to run Delphi properly on big projects. Servicable hardware scrapped for what reason?
It concerns me that energy and materials consumption is damaging the planet, and we need another direction than the endless consumption of clock cycles. Here in Australia, it is 10 years since I remember a normal weather pattern in my area and we no longer have water to wash our windows or cars, or water plants.
Efficient computing must come onto the agenda of companies like CodeGear.
Microsoft Vista is environmentally bad, with its pressure on CPU cycles and demand for high end graphics hardware on simple office machines.
I try to produce code which works across a wide range of PC peformance, and I want CodeGear to help me do that too.
.NET is not just any code library- it runs *Managed* code where a lot of processing goes into keeping everything safe. The VCL is not managed, and is so much more power efficient - and less safe.
I can’t see the future, but these issues concern me.
December 18th, 2006 at 2:13 pm"I disagree with the wrong marketing theory. Borland had a C++ Builder which came after Delphi (with Delphi 2 times afaik), thus, Microsoft’s Visual C++ has competed with C++ Builder. While Visual C++ developers working on res files for dialogs and forms, we were shipping our product. VCL innovated that area extremely well."
And what has become of C++Builder. If the resource editors et al were such a bad idea, why didn’t C++ developers jump on C++Builder, and then Delphi. Borland seemed to use C++Builder as a migration path to Delphi, because C++ developers really didn’t see the advantage in using a C++ development environment tied to its IDE and deeply proprietary, Object Pascal libraries.
To be quite honest, C++Builder was never really much competition for Visual C++ because of that. The later stagnation of the toolchain only put the nail in the coffin.
"I agree that using Pascal on a C++ based OS is hard, but take a look at Delphi 1, and its Help system. Even Windows API functions are converted to pascal style. The help files explains API functions just like regular functions. If they kept those that way, everything would be extremely different now. RTTI, exception handling, OOP and other advanced features were available on Delphi 1 also. VB targeted idiots, while Delphi targeted professionals. Even Delphi 1 was superior compared to VB 6. The shift from Borland Pascal to Delphi was not so hard, for the ones who already knew Turbo Vision. Most of the subjects were similar. Idiots and lazy programmers chose the VB way."
Everytime Microsoft introduces a new API, Delphi developers either had to create the units themselves, or wait for Borland to release the next version of Delphi and hope they are up to speed on it.
The most recent thing is the new Microsoft Platform SDK (Vista PSDK). You either have to convert the headers/documentation to Delphi yourself, or wait for Borland to do it. It gives more work than it should have, and in other cases causes you to stall development waiting for them to introduce a development tool that supports those APIs/OS while C/C++ developers are just #including the headers and linking to the libraries provided by Microsoft. I don’t like it when my development stagnates with their development tools. Such is the case with anything .NET (and .NET Web Applications esp.), their C++ toolchain, their lack of Unicode in the VCL, and their inability to deliver a 64-bit compiler promptly. Among other things.
Promptly is a personal term: Agree to disagree, if you choose to define it differently.
"Remember division by zero? :)"
That was sad
"You’re right, but VB was slow and bloated than Delphi. It never had the features of Delphi, all it had was superior marketing, and VBRUNXX files laying around."
It depends on what you’re using it for. Visual Basic was never marketed as a desktop development, general purpose high performance tool. The Visual Basic runtime was distributed with the Windows OS, so that wasn’t a problem (unless you had a different service pack, but those were usually incorporated into Windows through Windows service packs anyways). If you used many third-party components with static linking you will also see that Delphi applications can get quite bloated and consume large amounts of RAM. Because Borland insists on giving much room to its third-party component vendors, that is common.
Of course, all the "kool kidz" wanted to use VB to write games, and newbie engineering applications. That wasn’t its market however. In its intended use, VB was a hyperproductive, high quality development tool.
For those that use VB as an example of Microsoft abandonment:
VB had gone 6 versions and 6 SP on the final version before it was "dropped" by Microsoft (but now they’re supporting the *runtime* for longer). Visual Basic [.NET] was not intended to be Visual Basic 7. THe "7" moniker was intereted from Visual Studio (which was at version 7). Of course, MS tried to ease the conversion and recommended that VB developers Migrate to VB.NET (doesn’t CG recommend Delphi.NET for Delphi developers migrating to Delphi), but it was not an "upgrade" for VB6 in the sense that it was the next version of it. VS2002’s VB.NET was basically VB.NET 1.0. Stop acting like Microsoft suddenly changed the Visual Basic language and left them hanging dry, it is a totally new programming language and like you, they just didn’t feel like going through the paradigm shift
"Because it is Microsoft (Read Microsoft as evil here). They gave the wrong information about their OS to competetors, to break competetion. That’s why stability of other tools went bad."
Wow, when you don’t have an explanation just blame Microsoft. I think that’s illegal. Microsoft was already sued for this type of competitiveness in by [IIRC] the makers of DR-DOS.
"These are the reasons why most of the (fellow) Borland developers are complaining. For me, the best Delphi release was Delphi 3 (1997). After that, the quality of the product went down. Guess what? Anders left the company at 1997."
I don’t think it had much to do with Anders’ leaving Borland (maybe somewhat, but not as much as some make it out to be). The problem with Delphi is that it went so far above and beyond its competitors when it was introduced that Borland really didn’t leave themselves much room to stay ahead. Delphi was just so good, but how can you do much better. They also cornered themselves by being lazy with VCL and delegating those responsibilities to third-parties (have you seen the prices on some of these third-party component suites?!).
Delphi is now thriving in a legacy market. Most of the people raving for Delphi here you will notice already have substantial code-bases in Delphi. The only reason they start new projects in Delphi are because they are myopic and so ingrained in Anti-MS hatred that they cannot bear to think of it. Targetting .NET and dropping Delphi would be the biggest sin to these people.
Talking about what Borland was does nothing for the situation. As of now, Delphi is enjoying a steady drop in quality, and its benefits to the developer have been overcome by .NET
This isn’t hard to believe, however, if you look at who the chief architect of .NET and C# are. He know what he needed to do, and how to do it, to get the job done. And the job is being done, respectively. Welcome back to the days before Delphi. It’s a great programming tool (in theory and in practice) but the times have eaten away its edge on the competition. Borland, was JBuilder and ALM really worth this? <g>
- Nate.
December 18th, 2006 at 2:31 pmMain concern is not codebase, but expert knowledge. Borland do not understand how it reduced value of expert Delphi users with new copied IDE interfaces, NET crap. These guys do not need this, they need real improvements for real applications.
Current CodeGear guys don’t have any plan and exact target, the keep loosing their users by following MS and others marketing hype. They keep hiring some low level developers who keep coding bogus IDEs using NET.
December 18th, 2006 at 6:21 pm>>> ".NET is as fast as native code "
>> A rumor
I think a key thing Borland needs to demonstrate is that .NET 2.0 and Winforms can run just as fast as Native. And we are not talking about for loop tests, I mean a real application utilizing lots of different GUI components.
If they can’t prove this to their customers, then why should they be remotely interested in .NET.
I think alot of these misconceptions are brought on by .NET 1.0. I just read an article on someones blog about how the XML features in .NET 1.0 where very slow. Fast forward to .NET 2.0 and they actually blow away the new Java 1.5 and even the Xerces project. And these tests were very reliable and not focused on coding to give MS product the edge. So yes, I think its improved and faster. But the question is in real world application performance is it on par with native code?
My projects focus on a lot of GUI interface and I know WinForms has been know to not run that fast. Yet, I also focus on using collections alot and I know .NET had the edge there over native Delphi.
But Borland marketing keeps saying .NET is the future. Well prove it to us
I guess now that Highlander will be .NET 2.0 compatible, this will be easier to them to demonstrate.
December 18th, 2006 at 10:28 pm>>The only reason they start new projects in Delphi are because they are myopic and so ingrained in Anti-MS hatred that they cannot bear to think of it.<<
I don’t agree with that. I have always voted against Java for its inferior performance and huge memory consumption. The same thinking applies to .NET. Native Delphi means fast and lean programs that are still easy to write. That was and still is my top reason for choosing Delphi.
However, if Delphi goes the .NET route I might as well use C#, since the outcome is the same after all.
December 18th, 2006 at 11:52 pmSince we speak about bugs.. does anybody remeber DOS Microsoft C compiler 6.00 (1990) fiasco?
..or to say it more politely did anyone of you used it? -I did
December 19th, 2006 at 12:08 amVitality >They keep hiring some low level developers who keep coding bogus IDEs using NET.
How do you know that it is bogus? Do you have this at first hand experience? How do you come to that conclusion? Just wondering.
We are also missing an advantage here. The .NET assemblies and components can be intermixed between the different .NET languages provided that they do not use case sensitivity and some other rules that can be tested easily with FXCop.
So imagine that you write a VB.NET dll and use it in C# or a C# and use it in managed C++ or a complete mixture of that. The code base and already created components and controls will be huge compared to the Delphi components in time. Why would Delphi not also use those .NET controls/components or able to create those components?
I am also curious why would people think that the CLR take up additional processing power? It only needs to have processing power during the loading of the executable or assembly and that’s all. The only other situation when it needs processing power is during GC which is actually using less processing power since it is far more optimized than the Destroys in Delphi that has a lot more overhead in calling it individually.
Just one thing, I do not say that you have to program in .NET but at least try it and learn it. It takes time to get used to the philosophy especially the installation and security parts. More and more people start to learn .NET so if you whish to keep your job in the future at least have some knowledge and experience form it. Otherwise you might find yourself getting outdated by younger people that know .NET. And then you start complaining about the good old days and how unfair life is.
My favourite choice is also C# over Delphi, but currently I am writing native Delphi at the company.
December 19th, 2006 at 12:09 amCLR take’s additional processing power because it has to translate into native calls the IL bytecode.
December 19th, 2006 at 2:39 am"I think a key thing Borland needs to demonstrate is that .NET 2.0 and Winforms can run just as fast as Native. And we are not talking about for loop tests, I mean a real application utilizing lots of different GUI components.
If they can’t prove this to their customers, then why should they be remotely interested in .NET."
.NET isn’t *Just* about WinForms. There are other things to be had by using the framework. I think that’s where it really has the edge on VCL, it covers such a broad range of development tasks.
Also, VCL.NET is supposed to alleviate some fo the problems with WinForms, I’ve heard it’s faster than WinForms too. Too bad they failed to provide designer support for C#Builder (a mistake, if you ask me, since this is an area where they could have urged .NET developers wishing to write *faster* desktop applications to use their product).
"I don’t agree with that. I have always voted against Java for its inferior performance and huge memory consumption. The same thinking applies to .NET. Native Delphi means fast and lean programs that are still easy to write. That was and still is my top reason for choosing Delphi.
However, if Delphi goes the .NET route I might as well use C#, since the outcome is the same after all."
Have you used J2SE 5.0 and most notably the latest 6.0 version. I am most impressed by the amount of progress they’ve made in the speed/resource consumption department, as well as the look-and-feel of Swing applications.
But, we aren’t talking about Java. We’re talking about .NET. The statement was written to be as general as possible. Pardon the ambiguity.
"So imagine that you write a VB.NET dll and use it in C# or a C# and use it in managed C++ or a complete mixture of that. The code base and already created components and controls will be huge compared to the Delphi components in time. Why would Delphi not also use those .NET controls/components or able to create those components?"
Borland should have taken a mixxed-mode compiler approach to Delphi, IMO. The only compelling reason not to do it is because the Delphi compiler backend it old and the .NET JIT Compiler produces better code than it (often comparable to really good C++ compilers). People do realize that even for native applications, Delphi lags behind other Native compilers because it’s code generation is not up to snuff, right?
"I am also curious why would people think that the CLR take up additional processing power? It only needs to have processing power during the loading of the executable or assembly and that’s all. The only other situation when it needs processing power is during GC which is actually using less processing power since it is far more optimized than the Destroys in Delphi that has a lot more overhead in calling it individually."
They are ignorant of the fact that you can NGEN a .NET assembly, therefore making it native code and eliminating the JIT overhead.
If they were to write a Delphi application that uses as much third-party component libraries/packages as would be required to duplicate the functionality in the .NET Framework for any application of sufficient size (large, non-trivial projects), their performance would also suffer even though they would not be using .NET and their application would not require a Garbage Collector. The executable would be huge when using static linking, and the memory footpring would be equally huge.
"CLR take’s additional processing power because it has to translate into native calls the IL bytecode."
See above, even though the statement is almost written backwards. The JIT compiler takes IL bytecode (CIL/MSIL) and translates it into machine code optimized for your processor/architecture. The best you can do with Delphi is Pentium Pro optimization.
- Nate.
December 19th, 2006 at 8:53 amAs for the ones who say the reasons for not switching to .NET is completely emotional, and fear of new technology, note that the Delphi user base adopted to every new feature until Delphi 8 (including Midas, COM & DCOM, threads, DBExpress, ADO etc).
Saying that "old Delphi users are not switching to .NET because of fear of the new technology" is baseless.
December 19th, 2006 at 12:30 pm>CLR take’s additional processing power because it has to translate into native calls the IL bytecode.
Only during the loading phase! And once compiled it never has to touch that block again since it became native machine code. Assuming you did not precompile the assembly during installation if you are a GAC assembly then it does not have to compile it again.
The only other thing that uses processor power is when the GC is running, but it is still faster than an individual free of every class.
December 19th, 2006 at 11:45 pmWell I admit I did not knew about that small but important detail -you caught me on this one
December 20th, 2006 at 2:49 amTrust me Poor coder, I also do not know everything. I have learned a lot with these discussions seen here.
And .NET is also no holy grail; it has also its problems. I think about the cryptic error messages if the security rights are not met. And the lack of standard installation on a destination machine that gives overhead for an installer. And not every application will have a advantage in using it. Every case should be checked and seen when .NET is useful and when not.
From Delphi point of view it might not be interesting since the VCL is equal to the .NET framework at this point. But at least I advice people to try .NET because everything seems to move in that direction. Have at least the minimal experience.
December 20th, 2006 at 4:24 am"From Delphi point of view it might not be interesting since the VCL is equal to the .NET framework at this point. But at least I advice people to try .NET because everything seems to move in that direction. Have at least the minimal experience."
Huh? Maybe you meant Windows Forms?
- Nate.
December 20th, 2006 at 9:28 amTo Olaf : I know BDS2006 quite well. Tried many times to work with it since it was released. And IDE was really slow and bogus on all computers I tried.
December 20th, 2006 at 3:52 pmDevCo do not need single IDE with multiple languages. You only need separate Turbo C and Turbo Delphi, not any modern C# (as I never meet anyone who seriously planned to use your tools here instead of VS).
I think what only reason to release such monsters is fear of knowledge what real developers just need separate native IDEs.
I do agree that BDS2006 is very buggy, every time I try to put a breakpoint in a thread it mostly crashes the complete machine and I have to cut the power of that machine in order restart. And imagine that I have to debug a program with at least 6 threads! But I do not use .NET in this program so it would be bad to blame .NET.
December 21st, 2006 at 12:22 amactually the same thread-lockup happens to me in VS2005 also….somewhere I read it has to do with some global OLE mutexes which get deadlocked…
December 23rd, 2006 at 11:21 pmi was a delphi fan until it disapear like entity and transform in a "microsoft child".i am agree with all those people who write real programs in old versions of delphi and now blame this turbo or what become.still waiting for borland to wake up and start writing that powerful compilers and "mantain!!!" the real ide small and "rapid" without tons of .net unusefull for the most of "our customers".or maybe we, the delphi programmers should start a rad project wich can be installed without effort and don’t need microsoft high tehnologies for a hello world program.
December 27th, 2007 at 10:24 am