You need to compare the tools versus a particular use... different tool sets excel for different tasks. Delphi is my tool of choice for Windows application development. The language is much more readable than C++ in my opinion (assuming the same programmer on both languages).
One of the very things that can make Delphi code faster (the way it handles it's call stack) is the same thing that limits some of the functionality the C++ developers like to bring up (how each language has to go about handling variable parameter lists). The speed can be reached in C++ code as well, by using the same call stack approach (PASCAL), but then you limit your call stack the same way Delphi's is limited.
Many C++ developers tout operator overloading as a major language enhancement that Delphi does not have. I have only found limited areas that this is useful in my own code (one project in 20 years). Delphi for .NET does allow operator overloading, not the Win32 variety as I understand it.
The Delphi compiler is FAR faster than the C++ compiler. In one instance I sat down with a person familiar with C++ compilers and showed him my delphi application running in the IDE. He asked me, "Ok, now... what does it take to compile it into an application?". I stared at him confused for a moment because it was alrady a running application (he had just witnessed the entire compilation progress and missed it). This speed difference can make a huge impact on the time it takes to go through the development cycle.
Having said all of that, C++ has uses that Delphi does not handle. If you need to write an operating system, BIOS, or even code that will reside on a hardware board C/C++ is the choice. Delphi is not designed for that kind of use. If you want to write code that handles multiple OSes then C++ is likely your best bet as well (as a compiled language with native executable output... I would probably prefer Java or several others if native EXE output is not the goal).
...as a side note...
For most development I would stay away form .NET... it is prone to cause "Pregnant pauses" during execution. I know that many developers will claim that the garbage collection in .NET is so good that you will never see a pause from it... I have (1 to 5 seconds). At least in the Delphi / C++ languages where you manage your own memory you do not run into unpredictable garbage collection delays.
No one tool is not the best for all purposes. Evaluate what you will be doing and make your decision based on that. If most of what you will be doing is Windows development then, personally, I don't think anything comes remotely close to Delphi for being able to produce reliable, fast, code - quickly. If you plan to do Windows development and other types, I would use multiple tools. Choose the one that is right for your task.
Main Topics
Browse All Topics





by: peprPosted on 2007-10-19 at 06:14:25ID: 20108571
I do not know details of TList. There is a list in C++ that will probably be more similar abstraction to the TList.
It is not fair to compare Pascal and C++. The C++ implements the STL using templates. Then the versatility of such implementation is higher. I am not sure if this can be easily compared generally, without having some testing example.
For Borland vs. MS: The C++ from Microsoft is considered very good. And it is likely that it will be even better in future as Microsoft closely cooperates on the future C++ standard (Herb Sutter being their most visible expert in the area).