views:

3564

answers:

17

I am an individual user of Delphi, starting back in the early Turbo Pascal days. I have quite a bit of code developed over the years, but I have never sold software commercially or used it for business. Historically, Borland supported the non-professional users with lower cost versions, but Embarcadero does not. As I consider upgrading to Delphi 2010, I am put off by the high price. Embarcadero is also trying to "encourage" upgrading by threatening to charge "new user" prices for upgrades after Dec 31st.

I have several questions for the community to help me decide whether to upgrade.

1) I have read about difficulties updating existing code to support the unicode string types. I have no need for unicode strings, and I am happy with the string support in D7. Will I have to modify existing code and components just to re-compile under D2010? Or are there compiler options to allow backward compatibility if new string types are not required?

2) The main reason I'm considering upgrading is for IDE improvements, and to get access to new APIs added to Windows since 2002. Are there any Windows 7 APIs or capabilities that would be impossible to support from my programs compiled using using Delphi 7 (assuming appropriate JEDI API libraries, for example)?

3) Is there anything else about Delphi 2010 that is really compelling for someone who is primarily interested in Win32 apps, and not working with databases? I have read that D2010 is slow to load, and other versions between D7 and D2010 have had stability issues, and the help system was "broken". What is the biggest benefit to D2010?

+6  A: 

I think the best part of Delphi 2010 (that is not available in D7) is generic lists. I wish I had generic lists, but I went with Delphi 2007. The refactoring and code folding features are very appealing, too. I don't know if the refactoring features have improved in D2010, but they are kind of lame in D2007.

Most likely all of your source code will compile, but you will have issues if you have old components. I upgraded from D7 to D2007 and had to recompile many of the component packages that we use. I really wanted to upgrade to Delphi 2009 but I would have had to purchase newer versions of some components (e.g. DevExpress) for the whole team which would be expensive. It has something to do with the new unicode support.

Delphi 2007 is stable so I assume it is still the case in Delphi 2010. The help system sucks in the new versions of Delphi. It is nothing like the old Borland help systems. It's slow and useless. I just do Google searches instead.

IMHO, upgrading from D7 to D2007 was a lot of work for little return. But we have a lot of old component packages that we just can't get rid of. It might have been worth it if I got generic lists, though.

D2010 is definitely more stable than D2007. I think it's a great release and definitely worth updating. Generics seem to be usable now too (in contrast to D2009 where they still suffered from a lot of bugs)
Smasher
+1. Generics are nice. If only they would really work, that is (Delphi 2009 here). Delphi 2007 and Delphi 2009 aren't that stable either, I never had the kind of crashes (that I have now) back 10 years ago, with Delphi 4 or 5. All in all I can see why one would stick forever with an old version.
mghie
+3  A: 

Pros:

  • Unicode, if you need it. (well, you'll have to)
  • Generics, if you can stand the incompatibility with FPC (D2009 and bugfixes in 2010) I don't use this large scale yet because I have some code dual-compiling for FPC/win64
  • little stuff like updated manifest components and some more options for Vista/w7. (2009/2010)
  • better threaded debugging, custom viewers for objects in debug mode possible (D2010)
  • {$pointermath on} (D2009)
  • inlining (D2005-2006)
  • 16 byte alignment and SSE(2) assembler in the inline assembler (D2006)
  • an RTL that is no longer Pentium-I assembler. (+/- 2006)
  • stringlist.strictdelimiter (small change but important!)
  • improved displaying of container types in the debugger and being able to write custom debugger views for own types (D2010)

Most of the other new language features are more about style than ability (.NET aligning, I assume they were needed for Delphi.NET), and not that terribly interesting.

Cons:

  • price
  • price again if you need remote database connectivity (Enterprise).
  • conversion (shouldn't be exaggerated if moderately skilled)
  • helpsystem

I disliked the Galileo IDE, and somewhat still do some of the changes (its a lot harder to work with projects that don't list all units in the .dpr, specially in combination with relative paths). But the problems shouldn't be exaggerated either.

I think most stuff can be bolted on to Delphi7, but maybe in time component builders will start dropping support for it (not anywhere soon though), and in general it will increasingly become an island.

On the other hand the price is pretty steep too, and you are not the only one.

Don't forget to regularly have a look at fpc/Lazarus. (win64/wince/linux/OS X, NOW and native)

Marco van de Voort
*its a lot harder to work with projects that don't list all units in the .dpr* - What do issues you have with this? I can't think of any major differences D5 <-> D2007.
Ulrich Gerhardt
IIRC D7 always more or less stuck to the base dir (to resolve relative paths) where the DPR was residing. The BDS based versions use whatever path was used to open a file last. When you use project groups it gets even more confusing
Marco van de Voort
*price again if you need remote database connectivity (Enterprise)*Only if you use DBExpress for data acess. If you use DBGo (ADO), you can do with Professional edition.
Fabricio Araujo
+4  A: 

My company is sticking with Delphi 6. We are treating our Delphi codebase as legacy and only doing maintence work with it. New products and new features are being done with c#. We too are put off by the high price for what you get compared to MSDN and team system. We paid a very high price using delphi 8-2006. I just have too many scars to continue to advocate what was once an elite dev tool.

I am sure others will advocate using 2010 and I wish them the most success possible with that choice. I am done.

MikeJ
+1 Embarcadero marketing is so repulsive. Delphi was good RAD tool some years ago, but now there are a lot of even zero price alternatives (Visual C# Express, Qt, Java).
kemiisto
IMHO Delphi is still far better than all those concerning RAD
Smasher
Yes, but the pricing is just stupid. Don't know how much of its money Embarcadero makes from this division, but if it's not a big part of the pie, they should lower their prices and open up a little bit. The Delphi community has always been very supportive and enthusiast; they aren't leveraging this.
Leonardo Herrera
they are killing the community and looking for short-term goals rather than long-term ones. this is often typical if management is under pressure to return short-term success but does so in favor of long-term success especially if in the long-term that management team or manager is not expected to wear the brunt of the downfall (ie: moved/working elsewhere)... what a pity. shoudl write them letters see what they think, see if their intentions ar ein sync with their expectations. +1 on embarcadero being repulsive, which is why i downloaded the .torrent file instead, google "delphi 2010 torrent"
Erx_VB.NExT.Coder
+13  A: 

I strongly recommend upgrading to Delphi 2010.

The reasons are many. I could list them all here, but this page:

http://delphi.wikia.com/wiki/Enhancements%5Fsince%5FDelphi%5F7

does a good job of showing the legion of advantages that it has over Delphi 7.

Nick Hodges
+27  A: 

I would recommend Delphi 2010. Since Delphi 2007 it has been really solid and very productive. In fact I had to go back and work on some Delphi 7 code for a client a while back and couldn't hardly stand not having all the new IDE productivity enhancements. I ended up doing all the editing in Delphi 2007, and the backporting it to Delphi 7 (since that is what the client was using at the time. They since upgraded to Delphi 2009 (and maybe 2010 . . .)

In specific reference to your 3 questions:

  1. Your projects will easily upgrade to Unicode, but your components may not. If you are using 3rd party component libraries then you will probably want to get the latest version that supports Unicode. As a bonus the newer library will probably have some new features too. You can port the old components yourself if you have the source code, but it is a bit more involved.
  2. Delphi 2010 does support a number of new API's introduced with Windows Vista and Windows 7. Although you can probably get access to those API's via other means, it will be a lot more work and harder to maintain.
  3. The IDE improvements in Delphi 2010 are really useful in my opinion. The generic collections are a huge benefit. Unicode is actually a big deal, and is becoming more important. Unicode is the native string format in Windows now, and if you ever want to support international languages then you will need Unicode. It isn't just about databases. The IDE Insight will change the way you work though, and you will want it in every program you use. Delphi 2006 also introduced a new memory manager both in the IDE and in the programs you create. It will benefit your programs performance, and make it easier to debug memory problems. Of course the memory manager is open source, and you can get it for Delphi 7.

If you are planning to do new development in the future with Delphi then I highly recommend Delphi 2010. Everyone I know who has upgraded to 2007 or newer has been very happy that they did. All the improvements in Delphi 2010 are about Win32 development, there is no other platforms cluttering it up.

Jim McKeeth
+1 good answer although you're mixing up IDE improvements with language improvements (generics and unicode)
Smasher
Question 3 was "Is there anything else about Delphi 2010 that is really compelling. . . " which includes both the IDE and the language. The question kind of rambles.
Jim McKeeth
Jim - thanks for the insights. I should have mentioned that I have source for every component that I use. I learned that lesson many years ago. If source is not available, then don't use it. But of course I don't want to dig into the innards of components I haven't looked at in many years to fix string issues.
tim11g
How difficult updating components to support Unicode depends a lot on the components and how they are written. Really the biggest problem with the Unicode migration is that it should have come a few years ago. We all need Unicode.
Jim McKeeth
memmanager (fastmm) is D2006 (corrected), easily upgrade to unicode is a bit doubtful. It still will require checking/revalidating all your stringcode. There is no backwards compat mode that allows to first merge to D2010, and then to unicode
Marco van de Voort
+2  A: 

Even though I like the new ide and don't want to miss the new features, I would recommend to you sticking with Delphi 7. Unless you hit a show stopper with Delphi 7 programs running on Windows 7 (I am not aware of any, but I have not used Windows 7 so far), why shell out the money? It's not that you are earning any with your programming.

Having said that: Where is the promised Turbo Delphi 2010? Or at least a reasonably priced personal edition?

dummzeuch
I keep using Delphi 7, too. I don't miss unicode, don't miss generics, don't miss new win apis. However, I agree that unicode is a must for commercial products; but then, if that be the case (which is not for you neither for me), linux support would be, too, so...
PA
+4  A: 

I am just now getting back into Delphi programming after taking about a 6 year break. I just recently purchased Delphi 2010 and I am scrambling to rebuild my "Delphi Favorites". A lot has changed and a lot has gone away.

I have two products I sell that were originaly developed with Turbo Pascal and as of 2004 were compiled with Delphi 5 Enterprise. I purchased Delphi 2010 because I want to modernize my products and possibly add muti-lingual capability.

Cape Cod Gunny
+3  A: 

I'm a fairly similar case I guess, since I am also an individual user and a hobbiest, althought I do also use Delphi to develop small tools to make my job easier. I started out with a magazine cover copy of Delphi 7 personal, moved to Turbo 2006, paid to upgrade to Turbo Pro, and upgraded to Delphi 2009 Professional last year.

Since you are mainly a hobbiest, I guess it depends how much time you spend using Delphi, and how much you get out of it. Regarding the upgrade price for the Professional SCU, I don't think it's all that bad (around £285 in the UK), in relation to the amount of money people spent on their hobbys in general. But I do think they have to do something about the starting price for new users.

1) Unicode conversion was easier than I expected, given all the angst on non-tech. In the first instance, I just changed all the string declarations to AnsiString and shut my eyes to all the warnings ;-) . I later went back and did things properly. I even upgraded some of the unsupported 3rd-party stuff I had source for.

2) Touch support? Gestures? A whole bunch of stuff, even since D2009. Bah.

3) Generics are cool. So are anonymous functions. The language has been improving hugely over the last couple of years. If you are programming for fun/ self education, that is probably enough reason in itself.

My advice is upgrade to the Delphi 2010 Pro SCU while you can. Ok, it is a bit of a stick, but it's pretty common to stop or reduce the upgrade discount after a few years. I far prefer the new IDE, and almost everything I hear about D2010 is positive.

I have to admit to having concerns a couple of years ago that Delphi had been a bad choice, but the Embarcadero deal has be hugely positive, in my opinion. There seems to be some real investment in Delphi now, both financially and in terms of management commitment.

I do hope they bring out a starter SCU to keep new folks coming into the community legitimatly, because, lets face it, a day with Google will get you a dodgy torrent or a license remover for the trial. And yes, Microsoft do still give away the Explorer SCUs, but for me the ability to compile a single .exe that I can copy to a USB stick and run on almost any Windows PC without any dependancies or eveb installing is a real benefit.

HMcG
Note only to 31-12-2009 since afaik after that date you can't upgrade pre 2006 versions anymore for the upgrade price
Marco van de Voort
+2  A: 

I risk getting downvoted here, but before buying software at work, I usually try an illegal version at home for a while first. I currently run an illegal Delphi 2010 in parallel to a legal version (yeah sue me), to see if I'll run into major problems if I were to switch. If it runs smooth for a while and things compile and work, it'll be a lot easier to persuade my boss to spend money on upgrades.

But convincing your boss is easy if you get a productivity boost. If you're a mere mortal Delphi developer like most of us, and you have to spend the money yourself, you're probably going to have to convince your wife that instead of 25 pairs of shoes for her, you're going to buy Delphi 2010. Good luck with that.

If you succeed, please share some tips on how you did it.

Wouter van Nifterick
I've downvoted you because I think you should buy a decent pair of shoes for your wife rather than 25 pairs of real cheap ones.
Giel
No, you need to buy Delphi 2010 ;)
Wouter van Nifterick
@Wouter - +1 for being honest. Integrity is not a part time gig.
Cape Cod Gunny
There are many who doesn't have the courage to say this on the web. But do what you do - or even worse.As for your wife, why you didn't have given that excelent pair of shoes before, saying: "Next time, I'll buy my software " eheheh
Fabricio Araujo
Why do you use illegal one? They provide trial version which include all features and downloadable via internet. I purchased BDS2006, upgraded to D2010, and still buy my wife a pair of shoes. (Of course after I got income from my code :D)
WishKnew
@WishKnew : Why do I run an illegal version in parallel to a legal version at home? Because it's more useful to me than a trial. It's fully functional as long as I want, and it comes with the VCL source. And you know what? I don't feel guilty about it at all. In fact, I think Embarcadero should officially allow (and even promote) developers to use Delphi for free at home if they use a legal version at work.
Wouter van Nifterick
Anyway, 5 upvotes and 5 downvotes at the moment. :)
Wouter van Nifterick
Promoting usage or illegal versions is wrong. Microsoft can afford to give away Visual Studio, but if you want a product to live, enhance and upgrade you pay for it. Your wife doesn't need 25 pairs of shoes. I'm somebody's wife and I know I don't need it or want it. That's why I downvoted you.
Mihaela
@Mihaela: you don't need or want 25 pairs of shoes, and you prefer to spend €4.865,91 on a programming environment? Reminds me of this: http://www.youtube.com/watch?v=6Wj-D5iF0oc
Wouter van Nifterick
I opted for the Enterprise edition. Nice commercial :).
Mihaela
I upvoted for explaining aloud your method to try software, hope someone in embarcadero marketing listens. I downvoted for blatant sexism, it sucks. Net: Zero votes.
PA
+2  A: 

Hi Tim.

Firstly you should download a free trial version of Delphi 2010 and check what it offers. Try to port some of you code, see how it goes. See if is worth a hassle.

I do not know where you have read it but Delphi 2010 is loading quite fast and it is very stable for me. As goes for its help - it is not as good as was. Of course it is only my opinion. Currently I am even not able to use it, since when I was in middle of instaling update for help, I hit "cancel" and installer didn't revert back changes. So my help is totaly broken.

Delphi 2010 has a nice support for Direct2D, if you using it, or making some graphical application you can gain a bost here. Check Pawel Glowacki blog for more info. However you can quite easy achive that result by using Asphyre framework.

If you are not making money from it, I would advise you to hold on a year. I think that Embarcadero is slowly moving towards some educational version of Delphi. After all we ranting about it since years, maybe finally they will listen? :)

Wodzu
+1  A: 

I vote for Delphi 2010. Once you have switched to the new Embarcadero product line and then open the old D7 you will start to feel a bit crippled.

If you are really tight on budget and you don't use lots of third-party libraries you an check you the Lazarus (http://www.lazarus.freepascal.org/). It is quite decent and works with Jedi API, SDL and GLScene, etc.

Gad D Lord
why lazarus if he has already a license of D7?
PA
Lazarus/FPC in recent versions supports many of the post D7, but pre D2009 language features.
Marco van de Voort
+1  A: 

I like Delphi 2010 a lot and I'm not going to repeat the pros here, however there is one (big) con for me: exesize is HUGE in Delphi 2010 compared to Delphi 7 (and even 2009). For me this is an important thing.

Remko
I was going to answer exactly the same thing as I couldn't find anyone mentioning this yet. For me exe size is also a very important thing. It can actually end up costing me money having larger files and subsequently larger setup files. I'm looking at at least a 1.2MB increase in the setup file (from 3.3MB to 4.5MB) which will increase the bandwidth usage 25%. I still can't understand why there was such an increase in exe size from D2009 to D2010, anyone knows the reason why that happened?
smartins
The RTTI (runtime type information) got a big boost in D2010 which resulted in much larger executables (though they're just as fast as always). For a few people EXE size is important but for most people the new capabilities that we'll start to see introduced as a result of having extended RTTI will far outweigh disadvantages such as increased bandwidth usage on setup downloads.
LachlanG
A: 

Go D2010 because the help works again and despite the horrid MS Document Explorer it is actually more logical than the D7 .hlp.

There are a lot of good IDE changes that I would miss and a number of standard VCL components too.

blue painted
+1  A: 

Have they fixed the help? I run d2006 and the help system is abysmal. I have to wade through .NET, C++, etc help functions every time I want to find the syntax of the "Format" routine.

A: 

There are some rendering problems in Delphi 7's VCL components under Vista and Windows 7. I moved from Delphi 7 to Delphi 2007 in order to make my programs more compatible with such versions of Windows. I do not regret the move. Delphi 2007 is much better than Delphi 7 IMHO. Delphi 2010 is interesting but I don't need the new features right now.

Eduardo Mauro
A: 

Hi all, I am spending hours reading Delphi forums, its really an interesting topic and really informative. Besides, I think, I am the only Philippine Programmer uses Delphi, never met one here in the Philippines uses Delphi, because NO ONE knows to teach it. I've been using Delphi 7 for 3 years by self study and i had developed more than 30 applications out of it. But only 5 of it gives me fortune. I am happy with with VCL Components and actually most of my application are installed to Windows Vista and Windows 7 and works fine. I tried to upgrade D7 to D2009 but it really gives me hard time to adjust. Hence i want to see the other improvements of Delphi, i want to start with D2007, anyone here got a registered copy? :)

Have a good one guys!

JonDave

JonDave of the Philippines
A: 

Hi all again, i said that i am happy with D7 but there are limitations and want to solve. I am having problems with JPEG Components and the RAVE Reports, anyone here can help me regarding this Delphi 7 limitations? Any generic components can help make JPEGS or Graphs easily and be printed out using Rave Reports? Thanks...

JonDave

JonDave of the Philippines