After some quality and performance issues in Delphi 2005, the Delphi development team focused on a more stable and faster user experience for Delphi 2006. We received our copy of Delphi 2006 on the 6th December here in Germany and I decided to write a short review with my first impressions of the new Delphi version.
I was really looking forward to this Delphi release so I immediately installed it when it arrived. The setup was painless and took around 30 minutes. Despite choosing the “Full installation” option I just needed three of the four installation CDs. The fourth installation CD probably contains additional software like CaliberRM or the Interbase client which I don’t need. After the installation finished I went to starting the IDE and the first surprise was that you are now able to start the different personalities (Delphi.NET, Delphi Win32, C# and new, C++) separately or all at once in the newly called Borland Developer Studio.
This was a feature many people requested to reduce startup time of the IDE and minimize memory usage. When I started the IDE with all personalities I saw the first result of Borland’s efforts to make the IDE faster: the startup time decreased from 26 seconds with Delphi 2005 to 16 seconds with the now called BDS 2006 on my Pentium 4 3GHz with 1GB RAM (Win32 personality takes only 9 seconds). This is probably a direct result of using FastMM4 as the new memory manager for the IDE and VCL.
The First Project
After launching BDS 2006 I started by creating a new Delphi Win32 project. The first thing I tested was switching between the source of a unit and the corresponding form. This was one of the more annoying things in the Delphi 2005 IDE as the switching took around 2-3 seconds. The good news is that the switch time has been improved and even with lots of controls on a form the switching is almost as responsive as in Delphi 7. The first thing that jumped in my eye in the source editor is the new diff highlighting in the code editor gutter. Saved lines are highlighted green and modified lines are highlighted yellow. This makes it easy to see all the edited lines at a glance.
The next thing I checked was the online help. The help has been very disappointing in Delphi 2005 as I often couldn’t even find reference pages for simple standard VCL or Windows API functions. The first quick tests were successful as I could find both standard VCL and Windows API function references. Additionally, code sensitive help worked just as it did in Delphi 7, so placing the cursor on a function name and pressing F1 brought up the corresponding reference page.
There is great new feature in the form designer called Design Guidelines. When you are moving controls on the form, Delphi automatically displays lines to highlight correct alignments and spaces to other controls. This is a great help when you have to align many controls on a form and this often removes the need to use the alignment toolbar.
Another thing I noticed was the improved speed when you place controls on the form. This is probably directly related to the unit/form switching time but it’s worth noting. The next new feature of the form designer is the Form Positioner. This little panel allows you to quickly change the runtime position of the current form on the desktop. In older Delphi versions where the different IDE windows were floating, this feature wasn’t needed because you could just move the form to change the runtime position (don’t worry, just like in Delphi 2005 you can still switch to a floating layout, although I like the new IDE layout better).
Beside the new diff highlighting feature I already talked about, the in my opinion coolest new feature of BDS 2006 are the Live Templates. For example, you just enter “for” in the code editor and press tab and Delphi inserts
for I := 0 to List.Count - 1 do
for you. Ok, that’s not really exciting, but the nice thing is that you can now change the “I” variable name or leave it as it is and when you press tab again, the cursor automatically moves to the “0” which you can then again edit or leave it as it is. The next press of tab moves the cursor to “List.Count” which you probably want to edit. The next tab press moves the cursor to the next line and automatically declares the loop variable. There are many different live templates to help writing procedures and functions,
try/finally statements, loops and many more. It looks like live templates can improve the time you need to write code drastically if you are familiar with all the templates. It will take some time to adapt to the new style of entering code, but I’m sure it will pay off.
There are some improvements in the debugging part of the IDE. The remote debugger is back, for example, and can be used to debug applications that run on another computer on the network. A new feature is the functionality to expand watches and lookup hints. You can expand a watch or a hint and see the field variables of all property objects and inherited classes, just as
you can see on the picture below.
One important aspect of a new IDE version is the effort that is needed to port applications to the new platform. This has been quite easy with earlier Delphi releases so I didn’t expect too many troubles here. I didn’t try to run the SmartInspect Console in the new IDE as some of the third party libraries aren’t available for the new IDE yet. I could have compiled them manually but instead I decided to give the SmartInspect Delphi library a go. And just as I thought, except a little issue with an extended enumeration type, the library compiled and worked flawlessly. Even our over 1000 unit tests for the Delphi library compiled and executed without a problem.
You probably want to know how stable the IDE is as Delphi 2005 was often very unstable. I have been working with the new IDE for some days now and can say that it has been very stable so far and I have only needed to restart it when playing around with the C++ personality. The C++ personality is currently only a preview edition. The final version will be delivered some weeks after the release of BDS 2006 so this is not really an issue.
I tried to use Delphi 2005 for our next product (codenamed VirtualWay) and I had to move back to Delphi 7 after some days, because the IDE was crashing every third debugging run. This isn’t the case with BDS 2006 and the overall stability impressions are very good. Only time will tell if the new IDE is as stable as Delphi 7, but it looks like Borland can deliver what they promised.
This little review doesn’t cover all the new features of BDS 2006 nor does it cover all the personalities or areas of the new Delphi release. But I hope I could show you my first impressions of the new IDE version and maybe helped you in your decision if you should get the new Delphi version. I really think this release has great potential and could become a worthy successor of Delphi 7. If you have any questions or notes, do not hesitate to contact me or to leave a comment.