•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the Pascal and Delphi section within the Software Development category of DaniWeb, a massive community of 391,782 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,583 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Pascal and Delphi advertiser:
Views: 6950 | Replies: 7
![]() |
Borland has released some "Turbo Explorer" editions of it's development tools. I am wondering if anyone here can tell me (as objectively as possible) if the Delphi language is
-"Better"
-More powerful
-Easier to learn
-More Flexible
-Able to create better performing apps
Than C# (I am particularly referring to Microsoft C# 2005)?
I'd appreciate just a little insight into this, please.
Thanks!
-"Better"
-More powerful
-Easier to learn
-More Flexible
-Able to create better performing apps
Than C# (I am particularly referring to Microsoft C# 2005)?
I'd appreciate just a little insight into this, please.
Thanks!
:!: In The Beginning, God; In The End, God. In between, believe whatever you like. :)
•
•
Join Date: Oct 2006
Location: UK
Posts: 1
Reputation:
Rep Power: 0
Solved Threads: 0
It's a difficult question to answer; from my personal experience of both Delphi V1 -> V2005 and C# in VS2005 I'd say the following,
1. I found delphi easier to learn; but I'd learnt pascal at school rather than Java, C or C++ so it depends on what you know already - in any case learning the Dot Net framework is the key to getting the best from either, grasping the language syntax is a minor effort in comparison IMO.
2. I don't think there's much difference (if any) in performance if you are using dot net. If you use the VCL then I suspect that Delphi would be faster; but any benefit would be overshadowed by good or bad design in your code and there are benefits to dot net, i.e. garbage collection etc.
3. I like some aspects of Delphi over c# for example native set handling; however c# has things like generics which have no equivalent in Delphi - so pick the best tool for the job, if you are writing a lexer/parser then Delphi is elegant, if you want to leverage dot net 2.0 then c# is the only way to go IMO.
4. I feel some uncertainty about the future of Delphi - I would still use it for personal projects because I like it, but for business I use c# because it's way more mainstream these days.
Regards,
Steve
1. I found delphi easier to learn; but I'd learnt pascal at school rather than Java, C or C++ so it depends on what you know already - in any case learning the Dot Net framework is the key to getting the best from either, grasping the language syntax is a minor effort in comparison IMO.
2. I don't think there's much difference (if any) in performance if you are using dot net. If you use the VCL then I suspect that Delphi would be faster; but any benefit would be overshadowed by good or bad design in your code and there are benefits to dot net, i.e. garbage collection etc.
3. I like some aspects of Delphi over c# for example native set handling; however c# has things like generics which have no equivalent in Delphi - so pick the best tool for the job, if you are writing a lexer/parser then Delphi is elegant, if you want to leverage dot net 2.0 then c# is the only way to go IMO.
4. I feel some uncertainty about the future of Delphi - I would still use it for personal projects because I like it, but for business I use c# because it's way more mainstream these days.
Regards,
Steve
Hi,
I pretty much agree with borthwis. The Delphi line after version 7 and Kylix should be evaluated as a different family of IDEs and compilers. Although they support native code too, Delphi 7 is the only thing on the universe that is easy, flexible, scalable yet produces highly optimized, high performance native code with low level control like C. (In which language other than C/C++ you can write kernel mode drivers ? In Delphi to some extend.) Kylix gives Delphi code native Linux portability but DotGNU and Mono projects claim .Net MSIL portability to Linux too.
Performance wise managed code is only negligably slower than native code, but JIT compiler causes a latency on the first run of an application.
The Win32 API integration and completness in Delphi surpasses even C but It is very unfortunate that Delphi 7 doesn't provide a general Garbage Collection for statically allocated variables, although it already has reference counting and automatic mem releasing logic for strings, dynamic arrays and many other types.
Delphi 7 is a state of art native code IDE/Compiler with transparent support for Windows Services, Web Applications, COM Objects, Win32 API, etc..
And C# + .Net CLR is the universal code done the right way and the next big thing. (I observe that with .Net 2 and .Net 3 on Vista they more and more alienate the framework from operating system and architecture, while abstraction and generalisation is one thing and trying to ignore the real mechanics is another.)
I can write a whole book on C# vs Delphi 7 issue, I constantly use both of them; keep posting if you have any questions.
Loren Soth
I pretty much agree with borthwis. The Delphi line after version 7 and Kylix should be evaluated as a different family of IDEs and compilers. Although they support native code too, Delphi 7 is the only thing on the universe that is easy, flexible, scalable yet produces highly optimized, high performance native code with low level control like C. (In which language other than C/C++ you can write kernel mode drivers ? In Delphi to some extend.) Kylix gives Delphi code native Linux portability but DotGNU and Mono projects claim .Net MSIL portability to Linux too.
Performance wise managed code is only negligably slower than native code, but JIT compiler causes a latency on the first run of an application.
The Win32 API integration and completness in Delphi surpasses even C but It is very unfortunate that Delphi 7 doesn't provide a general Garbage Collection for statically allocated variables, although it already has reference counting and automatic mem releasing logic for strings, dynamic arrays and many other types.
Delphi 7 is a state of art native code IDE/Compiler with transparent support for Windows Services, Web Applications, COM Objects, Win32 API, etc..
And C# + .Net CLR is the universal code done the right way and the next big thing. (I observe that with .Net 2 and .Net 3 on Vista they more and more alienate the framework from operating system and architecture, while abstraction and generalisation is one thing and trying to ignore the real mechanics is another.)
I can write a whole book on C# vs Delphi 7 issue, I constantly use both of them; keep posting if you have any questions.
Loren Soth
Crimson K. Software _________________________________________________________________ Crimson K. Blog
Thanks for some very helpful information. What I think I am hearing is that since I already have my teeth partially sunken into C#, there's no advantage in trying to either switch to Delphi or try to learn both at the same time. In fact, it might be counterproductive at this point, a least until my understanding of .NET and C# are much more full than they are right now.
:!: In The Beginning, God; In The End, God. In between, believe whatever you like. :)
Hi,
Unless you need native (unmanaged) code support right now, there is no point in stopping your c# studies. Keep an eye on .Net 3 codename WinFX
Loren Soth
Unless you need native (unmanaged) code support right now, there is no point in stopping your c# studies. Keep an eye on .Net 3 codename WinFX
Loren Soth
Crimson K. Software _________________________________________________________________ Crimson K. Blog
This thread is very interesting to me because I am starting a job developing & maintaining
custom software written in delphi for a large call center. This software responds to a new call
from whatever list dialer they have installed and brings up a UI for the customer service rep
to use while collecting information from the person on the other end. My boss, the senior IT guy has been using delphi forever & has written lots of different software for the company. Now, I do not have a Delphi background or anything but I have used Java before so I definately would rather change as little of his delphi as I can & just write C# components, so
my changes can be in the language that is better for me.
I know that C# is part of the .net family so I know it's web capable but what about working
with win32 api as desktop software? Can I write C# code that can use win32 api just like
Delphi? Also I am wondering if C# can use the same weird socket that delphi uses
to handle an instance of a new telephone call being provided to the delphi software & the customer service rep's desk from the list dialer.
last question: I know that much like vb6, Delphi has RAD featuring common windows UI components. Does C# have similair support for that kind of windows UI construction?
Or is using C# different than using RAD features in Delphi & vb?
Thank You,
ma$ter.$hake
custom software written in delphi for a large call center. This software responds to a new call
from whatever list dialer they have installed and brings up a UI for the customer service rep
to use while collecting information from the person on the other end. My boss, the senior IT guy has been using delphi forever & has written lots of different software for the company. Now, I do not have a Delphi background or anything but I have used Java before so I definately would rather change as little of his delphi as I can & just write C# components, so
my changes can be in the language that is better for me.
I know that C# is part of the .net family so I know it's web capable but what about working
with win32 api as desktop software? Can I write C# code that can use win32 api just like
Delphi? Also I am wondering if C# can use the same weird socket that delphi uses
to handle an instance of a new telephone call being provided to the delphi software & the customer service rep's desk from the list dialer.
last question: I know that much like vb6, Delphi has RAD featuring common windows UI components. Does C# have similair support for that kind of windows UI construction?
Or is using C# different than using RAD features in Delphi & vb?
Thank You,
ma$ter.$hake
•
•
Join Date: Jan 2008
Location: definately not on moon :P
Posts: 65
Reputation:
Rep Power: 0
Solved Threads: 3
•
•
Join Date: Aug 2007
Location: Gunnison, Colorado
Posts: 54
Reputation:
Rep Power: 2
Solved Threads: 1
I've used Delphi since version 1 and I've used C# for several years now. The ONLY reason I use C# is because it is a requirement of a big project I am working on. And, those requirements were specified for all of the wrong reasons, so far as I'm concerned.
The Delphi and C# languages are reasonably similar (both were designed by the same person). C# has generics, attributes and better handling of interfaces. Delphi (Object Pascal) has much better structure, class referencing, mathematical sets, data modules and so forth. I wish there was one language which had all of the above since all of those things are useful. In the end, you can get the work done with either language, you just have to go about things differently.
However the REAL difference is in the libraries. The Delphi VCL is far more mature and a much better design than NET. I have been continually frustrated by the poor design of some parts of NET. It is a huge and complex system, but it seems like much of it is of little use for real-world projects. On the other hand, it is missing a lot of things which VCL provides and some of what it does provide doesn't work as expected. I find ADO.NET to be particularly bad. There is no equivalent of the Delphi DataModule class, for instance. The "disconnected dataset" concept would be great if it could do all of the things a connected dataset can do, but it can't, and that causes a lot of problems. There is a general lack of useful events, and those which are included often do not work as expected. Data validation is tied to visual controls instead of the data classes. That would be a bad idea in the first place, but it proves to be even worse because there a lot of holes in the logic - it is all too easy for the end user of your program to cause errors which should be avoidable, and you must go to a lot of trouble to prevent them. Finally, the Help system is sub-standard, to say the least. You must do a lot of digging to find what you need. Often, you will only find answers to your questions by accident, if at all.
The one other big consideration, of course, is that technical superiority isn't the whole story. Microsoft is a lot bigger and their products are going to get used whether they are better or not. As I said at the start, I would never use NET if I could avoid it, but the truth is, there are times you cannot avoid it. So, I use Delphi when I can and C# when I must.
The Delphi and C# languages are reasonably similar (both were designed by the same person). C# has generics, attributes and better handling of interfaces. Delphi (Object Pascal) has much better structure, class referencing, mathematical sets, data modules and so forth. I wish there was one language which had all of the above since all of those things are useful. In the end, you can get the work done with either language, you just have to go about things differently.
However the REAL difference is in the libraries. The Delphi VCL is far more mature and a much better design than NET. I have been continually frustrated by the poor design of some parts of NET. It is a huge and complex system, but it seems like much of it is of little use for real-world projects. On the other hand, it is missing a lot of things which VCL provides and some of what it does provide doesn't work as expected. I find ADO.NET to be particularly bad. There is no equivalent of the Delphi DataModule class, for instance. The "disconnected dataset" concept would be great if it could do all of the things a connected dataset can do, but it can't, and that causes a lot of problems. There is a general lack of useful events, and those which are included often do not work as expected. Data validation is tied to visual controls instead of the data classes. That would be a bad idea in the first place, but it proves to be even worse because there a lot of holes in the logic - it is all too easy for the end user of your program to cause errors which should be avoidable, and you must go to a lot of trouble to prevent them. Finally, the Help system is sub-standard, to say the least. You must do a lot of digging to find what you need. Often, you will only find answers to your questions by accident, if at all.
The one other big consideration, of course, is that technical superiority isn't the whole story. Microsoft is a lot bigger and their products are going to get used whether they are better or not. As I said at the start, I would never use NET if I could avoid it, but the truth is, there are times you cannot avoid it. So, I use Delphi when I can and C# when I must.
![]() |
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
•
•
•
•
•
•
•
•
DaniWeb Pascal and Delphi Marketplace
Similar Threads
- Delphi Onjects (Pascal and Delphi)
- How to use bluetooth libs with Delphi 7 (Pascal and Delphi)
- Cscgal wouldja add a Delphi forum here? (Software Developers' Lounge)
Other Threads in the Pascal and Delphi Forum
- Previous Thread: inserting images into delphi
- Next Thread: Help : Delphi Network Ping Comp / Code


Linear Mode