delphiunicode

Any hints for those that want to upgrade from Delphi 7 (and down) to Delphi 2010?


I am interested to re-evaluate Delphi 2010. The main issue seems to be the ASCII to Unicode conversion. Any tips or resources about this that you have found useful?


Updates

I want to keep all interested with my progress. Hope people will learn from this.

At this point, my recommendation for those that want to upgrade would be to check:

http://www.embarcadero.com/images/dm/technical-papers/delphi-in-a-unicode-world-updated.pdf
Is WideString identical to String in Delphi 2009
What is the compiler version for Delphi 2010?
http://chee-yang.blogspot.com/2008/10/delphi-2009-unicode.html

GIF issues:

Note that Gif (by Melander) and Png (by Martijn Saly?) images are now incorporated in Delphi 2010. You will have to use a conditional in order to use the right GIF unit:

USES Windows, SysUtils, Graphics, blabla
{$IFDEF VER150}
  , GIFImage,     {Delphi 7}
{$ELSE}  
  GIFImg          {Delphi 2010}
{$ENDIF}; 

Also, you need to "fix" the PNG provided by Embarcadero: http://talkdelphi.blogspot.com/2009_03_01_archive.html

Other things that you need to know is that you really have to back up your project before opening it in Delphi 2010. Delphi 2010 will change your DFM file even if you don't press the Save button. The form will lose data, and it will not compile in D7.


Upgrade to Delphi XE

I have finally purchased Delphi XE. Delphi XE proposes some new features but, unfortunately, quite few of them are not working at all (background compilation, UML modeling, code insight, etc). Other features have been downgraded (the help and, for example).
The IDE is also not as stable and fast as Delphi 7 and the toolbar has real problems (better don't customize the IDE). There is also a nasty bug where the IDE has 100% CPU utilization (see my other posts about all these issues). I hope that in Update 2 and 3 they will fix some of the most stringent issues.

Anyway, I think I upgraded too soon because now Embarcadero announced the 64 bit compiler, so probably I will have to pay again a lot of money to upgrade to the next version of Delphi in order to get that compiler. For those that are still thinking to upgrade to Delphi XE I would recommend to trial Delphi XE HEAVILY. Conclusion:


Upgrade to Delphi XE7

The difference between XE and XE7 was not that huge, as the upgrade from Delphi 7 to XE. The IDE is as stable as before (lots of crashes and random access violations in RTL).


Upgrade to Delphi Rio

Considering the amount of years since the last update, I could safely say that the difference between XE7 and Rio is barely visible - except for those that are interested in cross-platform apps (Mac, Android but not Linux!). For me, the (proper) cross-platform support came too late.

PROS

CONS

Overall it is the most stable IDE until now, but still I wonder (especially if compared to Lazarus) if it is worth that pile of money.

Upgrade to Delphi Sydney

Sydney is quite stable. Generics are better. GetIt is almost usable. Great support for iterators. Love the new VAR that can be declared anywhere in the body of a procedure and the type inference.
If you still own an old Delphi version, I strongly recommend you to upgrade to Sydney.

Upgrade to Delphi Alexandria

Everything went south to Alexandria. The IDE crashes when I try to install libraries. Many other weird issues in the IDE. The Community was in no hurry to update the plugins and libraries to Alexandria.
On my website, I wrote about how I happily downgraded back to Sydney.


Conclusion over the years:
Delphi is such a nice and clean language. And the Delphi compiler speed makes any C++ compiler to look like a toy for kids.
I still feel shame when people look down on me when I say that I am a Delphi developer. Delphi as a language is extinct now. Just look for Delphi jobs in Germany and only 74 positions are listed (but most of them are mixed with C# and others). C++ has over 1500 positions! They do offer a free (even though crippled) version of Delphi now, but the damage was done. It is too late to resurrect Delphi now.

I think three main issues lead to this state:

  1. Borland abandoned Delphi (Delphi lagged behind compared with other languages).
  2. Embarcadero took over but disrespected the customers (over-buggy, over-expensive product).
  3. MAIN ISSUE: The language was not promoted (at all) over the years. No sane company will spend thousands of dollars for a license of an already dying language. And the lack of a free license TOTALLY outcast the new generations of programmers.

Therefore, we are on StackOverflow, wondering each year if worth investing money in a new Delphi license.

Update
Finally, Emba released a free (aka Community) edition and boy you can see the effects.
For the first time in years, I don't feel ashamed to say in public that I use a dying language. Still, Delphi still needs more advertising. All the young generation think that Delphi is an uncool mastodon.


Solution

  • We have created a web page specifically for this very issue:

    http://www.embarcadero.com/rad-in-action/migration-upgrade-center

    There, you can find webpages, documents, webinar replays, etc. which all cover the issue of migration.

    The first thing people say is "I have a huge codebase, and migrating to Unicode will take forever" and almost without exception they discover that "forever" really is a much shorter period of time than they originally thought and that the new features of Delphi 2010 make it all worth it.