Debunking the Delphi 7 Myths

In my last post on why you really should upgrade from Delphi 7, I seem to have upset a number of people. Some were very angry, some were moderate. Some were eloquent. Most of them were dead wrong! A few of the comments received I really should react to, but I think the volume justifies a follow-up post. This post done, I’ll take my head out of the hornet’s nest and leave Delphi 7 developers alone. For a while at least.

Update: I really meant to leave this topic alone, but only days after I posted this, the Delphi 2010 hype started in all earnest. I didn’t take part in the beta this time, so I was unaware of some of the new things coming out. Some pertained to this post, so I’ve added some extra comments. Also, I needed to correct/clarify a few thngs. The blue stuff will be my last update to this post.

First thing that I should clarify, is that I don’t work for Embarcadero/CodeGear/Borland and never have. In fact, if you google me, you’re bound to come across a number of instances where I have had a real go at them. Sometimes over documentation, sometimes over Quality Central reports with all the required info that stay open, sometimes about I-don’t-remember-what.

I wrote the post of my own volition, because I thought it needed to be said. Onward then…

The one gripe that some commenters have raised, is that of documentation. Here I have to say, they have a point. For quite a while I actually had the Delphi 7 help files on hand on my development machine and there is an IDE expert that you can download that will allow you to use the Delphi 7 help files directly from the newer IDE. The new help files are also available online though, and I find Google is often better at finding things that any table of contents is.

Speaking of the IDE, I noticed a pattern in the comments. Those who don’t use the new IDE, hates it. It reminds me of a story my father-in-law once told me. His grandfather only ever rode in a car once. And he endured it for about five minutes before he demanded to be let out. The reason? The car was noisy and walking is less bumpy on uneven roads. So long distances he covered with the bicycle and shorter distances he walked.

If you really can’t stand the new IDE, there are three things you need:

  1. The IDE expert for the old help files
  2. DDevExtentions has a lot of cool things in it. The only uncool feature it has is the old-style component palette. If you hate the new one, use that. Update: And Delphi 2010 includes a new, significantly upgraded version of the palette. So when that ships, you finally have a choice of which one to use. That should lay the debate to rest, although I have a feeling the new and very shiny IDE insight feature may overtake both the palette and the toolbox. At least for me.
  3. Undock the IDE windows, so you can have the old chaotic layout that you love.

These seem to be the major things people hate about the new IDE, and they are all perfectly solvable (breakable?). And don’t even try to tell me how slow the new IDE is thanks to .NET – it starts up a helluvalot faster than Delphi 7 ever did if you launch the Delphi personality only.

The next big gripe is that third-party tools can give you a lot of the same functionality. A few slight issues with that.

Here is a smorgasbord of the third-party tools that were mentioned – I don’t think I missed any, but you’re welcome to check that I didn’t cheat:

  1. GExperts is fantastic but has not been updated at all since October 30, 2008. That is almost a year, folks. And those where compatibility and the first new expert for a while. A quick glance at the change log shows that the last significant version (1.3) came out almost four years ago. You’re right, absolutely the kind of thing you should depend on – a tool with very little support or progress in four years. Update: I don’t personally use GExperts anymore, in part because a lot of its best features are included in the newer IDE. But a lot of people still get a lot of value from it and it is of course available for Delphi 2009. The point here was that “I use GExperts” make a lousy excuse for not upgrading. Also, I’m told the support is really quite outstanding.
  2. But it gets worse. Someone actually mentioned Bold. Note that I didn’t link the URL, because BoldSoft doesn’t seem to even have it listed on their site anymore. In fact the latest relevant link I could find was this one, where it is explained that development stopped back in 2002 already! I know it may have been valuable back when you still lived with your mother (or had milk teeth), but your continued dependence on an extinct product is very dangerous indeed.
  3. Code Rush is fabulous, as is almost anything from DevExpress. As with almost anything from DevExpress it is also fabulously expensive. And it only improves the editor. And did I mention the Delphi version is extinct? Yeah. Or perhaps it is a typo on the website, but it is described as a “powerful Visual Studio® .NET add-on that…” blah blah blah.
  4. I have honestly never heard of cnPack before. It has actually been updated in the last couple of months and it may very well be enormously capable – I don’t know. I suspect it may be a tad dated though, given that they still link you through to bdn.borland.com. Surprisingly, that link still works although perhaps someone should notify them Borland no longer has anything to do with Delphi and may in fact now have a preference for Cobol. On second thought, just leave it. Perhaps they’re happy that way.
  5. JCL. OK, first: I don’t like JCL, even though lots of other people do. But you do know it is available for Delphi 2009, don’t you?
  6. ModelMaker Code Explorer. Also available for Delphi 2009.

Third issue is about the new features.

Apparently, “Class Helpers are not fully documented because THEY ARE NOT DESIGNED TO BE USED IN YOUR APPLICATIONS!” And also “The documentation that DOES exist for them specifically states that they are not intended for general purpose use.” Uh-huh? Let’s double-check the documentation, shall we? The initial intent of the language feature was to provide compatibility between Delphi Win32 and Delphi.NET. They did this by providing language support for the Decorator pattern. The notion that class helpers must not be used have died out along with other such relics, like the belief that overloaded functions are too dangerous to be allowed in the language. Update: Yes I am aware that the link I supplied still mentions that it was meant for platform-RTL binding and should not be used in general designs. Three points here: First, it is documented just fine. Second, I never said it is the perfect way to extend classes that you can modify. You simply wouldn’ use it in the place of inheritance or simply adding what you want. It is a technique to extend classes that you cannot modify. I’ll post a more about that once the Delphi 2010 hype machine has quieted down a little. Third, the help entry text dates from at least Delphi 2005 and was superceded by this famous post which shows that even within CodeGear/Embarcadero the opinion has shifted. Delphi 2007’s GlassFrame property is in fact a fantastic example of one common use case for class helpers. And its use had nothing to do with .NET runtime compatibility.

And some complaints about how badly generics work. Funny, I use them whenever they make sense and have had only one real issue with them and that is a compiler bug unrelated to generics. Perhaps someone would like to check if the bug exists in Delphi 7?

Lastly, some people complain about things like strings in case-statements. Which of course you had in Delphi 7. Errr… wait, there is something wrong with that last sentence. Ditto for complaints about Delphi 2009 features that are not as well implemented as in Visual Studio. If Delphi 7 didn’t have them, the argument is flawed.

Lots of positive comments also, the best of which highlighted several big benefits that I didn’t even think of.

Give the newer Delphi versions a try. Not for a day, but for the next real project you tackle. I bet you’ll learn to like it very quickly.

Update: Changed the ending, because one of the posters (quite rightly) took issue with it.

50 Comments »

  1. Lex Li said

    Cannot believe that you missed Castalia from TwoDesk, which is a cool addon to replace CodeRush (IMHO) 🙂

    http://www.twodesk.com/castalia/

    • Given the tone of that section of the post, I’m suprised anyone would ask to be included 🙂 I’ve never looked at Castalia, but I do remember another Twodesk product – Whatever happened to the Delphi Puzzle? I loved that.

  2. Rodrigo Palhano said

    Delphi 2009 has lots of improvements and bla bla, true
    Ribbon Controls sux in delphi 2009 = true (bunch of bugs)
    The IDE is as stable as D7 = hell no.
    The Ctrl+Z fuck up is very annoying = TRUE!

    so, I don´t blame D7 fans at all

  3. Anonymous said

    The best thing about CnPack is substring matching in the replacement code completion popup-menu (or input helper). Think about that for second or two.

    • Radek said

      Yes CnPack is for me best expert (I using it in D5 and d2009). I like coloring of code depth, line for aligment, button for auto set taborder and many more)

  4. Xepol said

    Thanks for the IDE expert link, might be handy. Now, maybe we can convince the Embarcatoolong team to release old style help files along side the new style files (easy if they use a tool like HelpScribble – perhaps impossible if they do it any other way)

    I do, however, take offense at anyone that claims that the “undocked style” in the new IDE is anything resembling the old sytle (or useful) – it actually makes the system worse. Because it keeps the forms in form designer AND keeps the code in the same window, it actually makes the system worse. If they un-nested the forms and had the editor window seperately then I might conceed your point.

    I work with the new style IDE, but at best you could say I tolerate the experience rather than enjoy it compared to the old D7 IDE. If they offered the current compiler features in 2 different SKUs (the IDE new and old), I would make sure my money was laid down on the old style IDE in a heartbeat. I am betting that most people would.

    • CR said

      “I do, however, take offense at anyone that claims that the “undocked style” in the new IDE is anything resembling the old sytle (or useful) – it actually makes the system worse. Because it keeps the forms in form designer AND keeps the code in the same window, it actually makes the system worse.”

      Um, not if you uncheck ‘Embedded designer’ in the options dialog (it’s under the ‘VCL designer’ node). You’re not knowing this rather illustrates the post’s basic point, no?

      That said, in my view, the biggest problem for D2007 and later versions is the memory of the previous three, in all their buggy and frankly unfinished ‘glory’. In effect, D7 is the Windows XP of IDEs – not much thought of (and indeed, somewhat criticised) when first released, but given a lengthened lifespan and unwarranted halo by the mismanagement of what came afterwards. That Borland managed to roll out three and not just one ‘Vista’ makes it all so worse!

    • Bruce McGee said

      If you want the form designer and code editor in separate windows, uncheck Embedded Designer under Options|VCL Designer (you need to restart the IDE). Is that closer to what you had in mind?

      • Gerry said

        But be careful if using multiple monitors. Form position is relative to the desktop 0, 0 position of the left most monitor, rather than the monitor it’s on.

  5. warren said

    Delphi 7 used to crash on exit every time I shut down. I never did find out why. I think it must have been a component library. But still. It wasn’t perfect.

    Using Delphi 2007 for the past few days, I’ve been completely blown away by how far Delphi 2009 has come from 2007, which was at least useful, and 2006 and 2005 which were crap.

    I believe it is the 200x syndrome. Those who stick with Delphi 7 either (a) tried a 2005/2006 version themselves, or (b) listened to the bitch-fest that happened on the Bor… Dev… CG… newsgroups and decided to settle in.

    Once they’ve settled in, they ain’t budging. After all you can patch your VCL source code to handle some of the worst issues. You can work around Z-Order issues, and all the Vista stuff, with some masterful (ie ugly) hackery.

    If you get paid to Write Delphi code, or you write Delphi code for hire, you are crippling yourself if you don’t learn Delphi 2009 now. The transition from 2009 to 2010 will probably be trivial, because there’s no changes as large as the move up to Unicode was in 2009. I hope 2010 will be the best delphi yet. I believe that the team that made 2009 will continue to deliver excellent quality in the next version.

    At this very second Delphi 2009 is widely accepted by those who have actually tried it, as the best Delphi ever. As for those who take the opinions of those who never even tried it seriously…. Well. I just feel good that I don’t work for a company that gave them any money to write me a Delphi app.

    cnPack is slick, by the way. I tried it. And don’t slam gExperts just because it’s a stable product, it’s open source. If you want to learn to write IDE OpenTools Api extensions, it’s a priceless group of starter code tools. There are some duds in among the gExperts set of tools, and some sweet little things too.

    You know one more thing I would go nuts without if I went back to 7? Delphi 2007/2009 has a thing in the Refactor menu that will “find the unit this is declared in”. How handy is that? Saves me a LOT of pointless FindInFiles search-a-thons.

    Warren

    • Love this comment. Well said.

    • Radek said

      After unistaling GExpert and start using CnPack my Delphi didn’t crash on Exit.

  6. Ossian said

    I agree with Xepol’s comments. I use both Delphi 2007 and Delphi 7 only occasionally now but I prefer using the old IDE. I use the new one most of the time and it is like a breath of fresh air if I get to go back to the old one once in a while. It has help files that are helpful, instead of articially generated stupidity, and it has a layout that is cool, uncluttered and funtional. It’s like the old glacier mint advert – you probably won’t have seen it but old Delphi 7 is like the cool polar bear versus the one which is like the fox, running around in all directions. Both are very useful. I just upgraded because I thought I was going to keep up with “whatever” but really it’s not doing a lot for me in that respect. I can’t see why I should spend any more money now to have a big problem with all the strings and for what? I’m not selling programs in China.

  7. Ossian said

    I agree with Warren that the ones between Delphi 7 and Delphi 2007 were disasters and I seriously wish that I could have the money back that I wasted on them. Yeah. Which is why I take a lot of convincing to buy any new releases. I’ve bought pretty much everything since version 1 but I have to look seriously now at completely going away from Delphi. I’d hate to, but only because of Object Pascal – the rest of the mallarkey I can take or leave and the recent help files I can definitely leave.

  8. Shane Holmes said

    >>But perhaps the best of the pro-Delphi 7 comments was the one that >>stated, “After many, many years of using the Delphi 7 IDE – why would we >>want to relearn something new.”

    >>Hell, if only all programmers were that afraid of change – we could all still >>be bitching about punch cards!

    You ask for comments. I gave you my comments. Now you want to point me out and make fun of me in your BLOG. Thats fine. You got a lot of Negative comments, most likely more than positive ones im sure.

    What i was getting at, was that we are very productive with Delphi 7 and we have many clients and gaining more everyday. Not only that, our existing clients are requesting more custom work. We have a small number of programmers on our team, and none of which have the time to spend on learning a whole new IDE. There was no reason to change the IDE…it doesn’t speed things up, it slows things down when you have to relearn. I love the idea that they sped the compiler up and added alot of nice language features, improved the help, etc, ..hell, they could have done all of that and left the IDE alone. Aside from that – Your an asshole! Place that on your Blog.

    • OK, perhaps I was a bit blunt. Sorry about that. But I honestly don’t think the learning curve is that big. Most of the stuff you’re looking for is exactly where you expect it.

    • OK, Shane. I changed the ending of the post to remove the offending bit. Sorry again. Also, as suggested, I updated the post to reflect that I am an asshole.

  9. Bruce McGee said

    I doubt many people were legitimately angry or upset. Just loud and opinionated, which isn’t the same thing. 🙂

    In addition to DDevExtentions, I would add almost any of Andreas’ fixes and improvements (left side of the page). More good news. Andreas has been working with the Delphi team to include some of these in new versions of Delphi. Sweet!

    One tool I wouldn’t mind in Delphi is a code formatter. If you’re using GExperts and are feeling adventurous, there is an experimental plug-in for this based on DelForEx.

    http://www.dummzeuch.de/delphi/gexperts/english.html

    • Didn’t Nick demo a formatter at Delphi Live? And a couple of other interesting tweaks?

      • Bruce McGee said

        Yes he did. It’s a feature in Weaver, which I’m looking forward to. In the mean time (or for people who won’t upgrade right away), there’s the plug-in.

    • Bruce McGee said

      I stand corrected. I guess one or two people really are ticked.

      Oh well…

  10. I don’t think there any really good reasons for not upgrading to D2009 (although I confess I’m still. Although if you are missing source code and only have .dcu’s that could be valid – however in this case they probably have bigger issues than an outdated IDE.

  11. GunSmoker said

    Hey, the author of Total Commander still use Delphi 2! Let’s follow his example, c’mon! 😀

    Can anyone of Delphi 7 lovers can say me, why they use D7 and not D5 or D3? 😉
    “Why would we want to relearn something new.” 😀

    If you say “It’s because D7 has more features than D3/D7”, then what’s wrong with D2007/2009? It has a helluvalot more features. Okay, the top-most-shiny-new features are buggy, but the older feature is, the more reliable it gets. And D7 is buggy too.
    If you say “It’s because D7 is faster than D3/D5”. That’s simple not true. And D2007/D2009 is faster than D7.
    If you say “It’s because D7 is more stable than D3/D5”. That’s also not true. And D2007/D2009 is more stable than D7.
    Oh, and if the reason to stick with D7 is “It’s because D7 has old style IDE and palette”. Why don’t you use D2? His IDE and palette are even “older”.
    New IDE has “Classic” layout – which looks like the old-style IDE. What’s the problem? It’s here by default. Is it so hard to select another value from ComboBox? What? It is so new and not-so-well-known? Did you seriously want to live a life without need to learn? 🙂

    Please, don’t think that D2007/D2009 has the same quality of D2005 😉 The only real issues are help (personally, I rare use help at all) and buggy new features (generics – too bad, I wanna it). But they gets better and better with time.

    P.S. No, I ain’t said all this stuff because of “The very fact that still pop up “why you should upgrade from D7″ articles here and there demonstrates there were real issues with the latest releases of Delphi”, but rather because stick-to-D7 reasons sounds very funny to me 😀 (sorry, folks, no offence)

  12. You are right regarding GExperts, not much has changed in the last few years, apart from:
    * making it unicode aware
    * bugfixing
    * adding the experimental source code formatter based on DelForEx (which is still not part of the official version because Eric and I do not consider it acceptable)
    But it is wrong saying it is dead because of this. There has been a new version compatible with every new Delphi release, hasn’t there? Problem is, that apparently not many people are interested in adding new features. That might have something to do with the decline of Delphi in the western world.
    As for cnexperts, it originally was a ripoff of GExperts, even stealing the code. It has come a long way from there with new features but I must admit I haven’t used it at all.

    Thanks for mentioning my Delphi 7 help for BDS utility, by the way. Maybe that’s something I should just have added to GExperts…

    There is another very helpful tool for the online help. It’s called “Delphi Praxis Help Booster” (http://www.delphipraxis.net/helpbooster.php?lng=en) and gives you very fast access to Delphi 2007’s online help, unfortunately there is no Delphi 2009 version and since the source code is not available, there is not much hope there ever will.

    I do not agree with your notion, that Delphi 2009 starts faster than Delphi 7. On my computer, Delphi 7 is definitely faster. With Delphi 2007 I don’t even want to consider using it without Andy’s DelphiSpeedUp, which is also available for Delphi 7 btw.

    All that said, I am using Delphi 2007 (and recently Borland Pascal, would you believe that?) and would love to upgrade to Delphi 2009 (I already bought it), but cannot afford the time to do all the small changes to make all my (employer’s) legacy programs compile and work with it. But it is definitely on the todo list.
    (reposted because the original apparently eaten by some bug in the comment system)

    • Thomas, I don’t have a problem with GExperts. I don’t use it anymore, but there are probably thousands of programmers who love it. The point in the blog post is that I do think “GExperts offer some of the functionality of the new IDE” is a lousy argument against upgrading. There are always third party tools that you can use to provide a little bit here and a little bit there. It just is not the same thing.

      And by the way, you touched on a good point there – perhaps some of the thousands of programmers who find it valuable should start contributing. That way they can help keep it fresh.

  13. LDS said

    1) I knew you didn’t work for Codegear, but such article closely follow Hodges & C. patterns – and at least they have a reason, cash! What’s yours? Afraid of Delphi disappearing because of lack of customers? Then we have to face real and perceived issues, not simply follow Codegear patterns. They made seversl mistakes and they have to fix them (they fixed just a few), pretending nothing happened and blaming customers “because they are morons who don’t understand” is really silly. That’s what a company *must* never do. And those following don’t help at all.
    We upgraded, but I can understand those who didn’t because the perceived valued of the upgrade was very low.
    2) “who don’t use the new IDE, hates it”. Totally false. I am actually working with 2007 since its release. Before I worked with 2006 (I tried to use 2005, but couldn’t make it work…). I don’t like the new IDE even if I use it every day.
    3) “Undock the IDE windows, so you can have the old chaotic layout that you love”. Did you check VS2010? It allows you to undock windows, i.e..to take advantage of multiple monitors… believe me, the “old chaotic layout” will become soon the “new, cool layout”. Funny, eh?

    • Anonymous said

      I’ve used D2009 for a bit now and think it’s absolutely awesome. As was explained, you have the ability to seperate/undock your windows in D2009; and give it the old look and feel of D7, so what are we really complaining about?

      Yes D7 was awesome, but you can’t expect Delphi and the pascal language to remain stagnant while other IDE’s and languages improve. I believe the addition of generics has long been awaited by a lot of Delphi developers, especially those who saw the benefit of templates in C++.

      • LDS said

        Do you know that Codegear was discussing about *removing* the undocked layout because the new IDE have issues with it? And especially the floating form designer? That’s a classic example when programs bugs drive features – not user needs/feedbacks.
        Now that VS2010 acnowledged that being able to move windows around screen(s) is *good* I guess they rethought it, I hope…
        Again, I never said people should not upgrade and new releases are worse than the previous ones (but D2005 and D2006, of course). I am just saying that if so many people complain and don’t perceive the value of new release there are issues, that must handled and addressed. Dealing with them as morons that could not understand what generics or Unicode are is plainly stupid. Upgrading may mean spending *thousand* of dollars/euro (of course, if you someone gets software for “free” this is not a issue…), and it has to be accounted for, especially now.
        People have to find real “business reasons” to upgrade, and just playing with the latest features or IDE may not be one. Probably a 64 bit Delphi would be a good reason to upgrade for many, but once again Codegear looks to be driven by other interests, and is still delaying it.
        Anyway, it depends on your application. InnoSetup was written with Delphi 2/3 until the last release, when it began to use D2009 to support Unicode. And it is one ot the most successful Delphi applications, probably.
        Why didn’t he upgraded before? Because he preferred the little footprint of those Delphi releases, and given the application type, he could work within those older version limits, and he wouldn’t have gained much in using, say, D2007.

      • Gerry said

        And remember: Just because windows CAN be docked, doesn’t mean that they must be docked at ALL times. I regularly have two edit windows on two monitors.

        I keep the (vastly improved, filterable etc) tool palette unpinned unless I’m currently working on form design. If designing a large form, I undock it as required.

        Why do people want to stick with the old palette which I always thought was one of the worst parts of the old IDE? I just didn’t scale!

        And the refactoring option rock!

  14. Will Watts said

    Your discussion of CodeRush is a bit odd. You seem to be arguing against yourself. You admit it is ‘fabulous’, but then complain that it is ‘fabulously expensive’. Surely this is irrelevant because, D7 users must have already bought it, otherwise it would not be a consideration. The extinction of the Delphi version of CodeRush is in fact a reason to retain D7, as CodeRush is not available for later Delphis.

    The company where I work owns copies of D2007 and D2009, but we don’t yet use them. We like Delphi, and admire many of its features. But the question that arises is: is it worth the effort of converting existing apps to D2009, and putting in the effort to learn the new IDE? These days, our new apps are often written in, for example, Flash/Flex as web applications. Delphi programs are mostly on a maintenance cycle. How much effort should we put into old Win32 apps? How much life is there in the platform? Will we still be writing new Delphi programs for windows in five years’ time?

    I think the answer is that it eventually probably will become worth the effort, but it is a tough decision. The availability of a good quality new version of Delphi is important, but there are other considerations.

  15. Lachlan Gemmell said

    Delphi 7 was a grand old girl but her time has come. She was probably better than BDS 2006, 2005 and the version that cannot be named but since Delphi 2007, there’s really no reason to actively avoid upgrading any more.

    • Rif said

      “the version that cannot be named”

      LOL! I think of these versons as:
      Delphi 8: An Alpha release
      Delphi 2005: A Beta release
      Delphi 2006: A so-so Delphi version, released some 3 mth. too early.

      Delphi 2009 a great release – made me upgrade!

      I really hope Embarcadero will make a updated Turbo Delphi based on Delphi 2009 language features and IDE, because with the current Turbo Delphi they risk scaring new users and possible customers away.

  16. The main reason not to upgrade to D2009 is the cost involved! Unless you need Unicode I can’t see how I can convince company’s board to buy 20+ licenses of Delphi 2009 Enterprise (+ many other 3rd party components like report solutions, decent DB controls replacement, etc, etc, etc) just to get a “faster IDE”. “Your IDE is slow? Ok, I give you $300 and you can buy a new quad-core super-duper CPU… Don’t need to spend $3000!”
    “Class helpers?” Believe me, they don’t know what a class helper is, and don’t intend to. They want to know how a class helper will make their business more successful.
    They would ask: “What we need to do today that can’t be done with Delphi 6 or Delphi 2006?”
    Some developers won’t like that change either. When I mention D2009 they ask me: “Is the help system at least usable?” Believe me, we have a hard time EVERYDAY with Delphi 2006 help and D2009 help is not even close to D6 or D7 help. Google is faster than the new help system anyway (how can it???), but it can NEVER be used as an excuse!

    The only thing that willl FORCE most people to upgrade, at least those creating server side DB applications with Delphi, is the 64 bits compiler, but “oops! they did it again”! Embarcadero changed priorities and 64-bit Delphi lost its position to a MacOS thing…

    Best regards

    • Kyle Miller said

      Maybe you can convince them the IDE enhancements will make you more productive. The new language features will reduce development and maintenance costs. The new components introduced since D7 will enable you to develop a modern looking application with an improved user experience.

      D7 to D2009, you are getting so much more than just a new IDE.

  17. David Wilcockson said

    For me, Delphi 2009 is by far the best version yet.

    I would add the DataSnap 2009 is a very exciting new addition.

    Unfortunately I can’t agree about Generics. I’ve had unpredictable results in compiling since using them, and QC has quite a number of open reports.

  18. GunSmoker said

    >>> “Ok, I give you $300 and you can buy a new quad-core super-duper CPU… Don’t need to spend $3000!”
    Now, multiply $300 on 20+. And upgrade cost is not $3000, it starts from $400. And “quad-core super-duper CPU” don’t get you new features, which can speed up your development.

    • Ciprian Mustiata said

      His point was that you need per station to pay $300 for upgrading the Mainboard+CPU for one station than $3000 for a full license of all environment that the price implies.
      Is true that $3000 may be amortized in let’s say one year, but with 10% of price you can get half of benefits and the lost in money are just $1500, so the gain is 1200 dollars per station. Considering that the (old) machine did not upgrade the hardware, the gained speed in IDE operations may be also slown down by bigger RAM requirements that the new version may came with.
      So the all balance was: how can I justify from business POV?

  19. Morgan said

    I’m not sure GExperts is all that dead, though it doesn’t move at a breakneck pace. It looks like a new web site that includes a new release went up just today. I’m also not sure you can say that GExperts has bad support. I emailed the authors and got a quick response just a couple of months ago. Bad support to me implies ignoring users or leaving bugs unfixed forever, and I don’t see that. GExperts definitely isn’t adding features hand over foot, but what it has is very useful and even more important is support for new IDEs as they come out and stability, and it seems to have both of those down fairly well. Other IDE addins are more experimental with adding features. I have past experience with CodeRush and cnWizards, and both were like this – lots of features, but also a few more stability issues. To each his own…

  20. @GunSmoker: If you read right this time you will see that I said specifically about ENTERPRISE version. If you can buy me a Delphi 2009 ENTERPRISE upgrade for $400, I will be glad to send you the money!
    Besides that, let me tell you that the prices you see in Embarcadero online store are only valid in YOUR country. Believe me, in my country Embarcadero products costs up to 50% more than in US…. I’m sure you didn’t know that, did you?

    Best regards

  21. warren said

    I don’t buy the “don’t have time” argument. That’s just dumb.

    Really Good Programmers are both lazy and smart.

    They know that life is not an endless series of maximally compressed deadlines.

    There is always time to learn a product if learning it will increase your productivity.

    Meanwhile, if you don’t learn Delphi 2009/2010, you will eventually get farther and farther behind the curve. The idea that unicode is for Chinese apps is silly. Unicode is for the web, and for modern applications, you silly silly developer. One of my apps deals with Excel files. Not in chinese. English. But Excel files (XLS) are stored in a Unicode format. The conversion from Unicode to ansi strings when loading those XLS files and resaving them in Delphi 2007 caused data loss. I don’t know about you, but I don’t think that’s OKAY. That same component (Developer Express Spreadsheet) now works in Delphi 2009, and has clean Unicode support throughout. Upgrade pain for me? Minimal. Payoffs? Still haven’t finished finding new ones. Web pages are more and more commonly encoded in UTF8, and the advanced encoding handling features built into Delphi 2009’s string classes are valuable not only because they handle Unicode but also because they can handle ANY CODEPAGE. Not just the current windows codepage.

    So, any programmer with “no time” to learn, will eventually get so far behind that he can’t find new clients. Learn, and stay on top of the game, or fall behind, and become slowly irrelevant. The world is using unicode. Windows has been using Unicode for everything, and even if you use AnsiStrings and Delphi 7, your app running on XP is working on a Unicode platform.

    If you’re the kind of developer who thinks he can endlessly ignore that simple fact, then you’re in trouble, mate.

    And corbus isn’t an ass. I demand to be called an ass too. You forgot about me.

    W

  22. Name said

    OK, “never heard” = know nothing? or what, given this usesless rant?

  23. Class Helpers: DID you actually double-check the documentation on class helpers? Did you understand what you read in that documentation? I don’t think you could have, because the link you provided supported MY point, not yours:

    From the documentation:

    “Class helpers provide a way to extend a class, but they should not be viewed as a design tool to be used when developing new code. They should be used solely for their intended purpose, which is language and platform RTL binding.”

    Tell me, who else, outside of CodeGear’s own labs, is involved in “language and platform RTL binding.” ? And who could possibly use a class helper *without* developing new code ? – i.e. a new helper – something specifically advised against.

    It is quite simple to establish the dangers of class helpers…

    1) their initial release wasn’t even completed on Win32 – they were “usable” but badly broken if you tried to use them in Win32 in the same way that you could in Delphi.NET. But that was fine because the language and platform RTL binding usage in Win32 didn’t NEED the missing parts, and since no-one was supposed to be using them for anything else…..

    2) even in their current, more complete form, using them risks breaking code when you end up inadvertently mixing class helpers for the same class in a common code base, as is likely to happen if people use them willy-nilly to “decorate” classes as THEY see fit, and then run into an unholy mess when those “decorations” are brought in to the scope of code that already decorates the same classes in a way that someone ELSE sees fit.

    And the breakage that may result is not fixable without access to one or other or both sources for the class helpers involved. You may have that access, you may not. Even if you do, you may not be able to change one or other of them without breaking other code that relies on *that* helper.

    The irony is that class helpers really don’t offer anything that good old fashioned typecasting of a locally defined pseudo-sub-class provided. The great advantage of that old-skool technique being 1) transparency: it was entirely clear what shenanigans were afoot, 2) topicality: using the technique allowed code to take advantage that needed to take advantage (and do so transparently – i.e. clearly) but did not affect any other code and lastly 3) portability: it didn’t rely on language features that were not available in the wider population of Delphi compilers

    None of this is mentioned in the documentation because… well, I imagine the possibility that two different component developers might decorate the same class for different purposes and then find their class decorations in conflict shouldn’t arise since the ONLY developers using these things are those engaged in language and platform RTL binding… i.e. CodeGear developers, who would talk to each other and presumably simply amalgamate the decorator needs into one single helper.

  24. And another thing….

    So GExperts hasn’t been updated for almost 12 months… big deal. Maybe it doesn’t NEED updating.

    Anyone still happily producing code using D7 and GExperts – by definition – doesn’t NEED anything newer just for the sake of it being newer.

    Do you buy a new car every year, just because there’s a newer model? Do you move house every year because the old one hasn’t been updated in the past 12 months?

    Oh, and for the record you can add me to the list of people that tolerate the new IDE, but absolutely do NOT find it an improvement over the D7 experience.

    Never mind the docked/undocked debacle or the ridiculous assertion that the component palette is an improvement when the “improvements” implied in that statement are the remedial measures required to make the new palette even barely usable – i.e. keyboard navigation because it is so woefully un-mousefriendly, which is a BIG mistake for a tool that supports a predominantly mouse-centric activity (form design). And don’t even get me started on the ill-conceived redesign of the palette icons for various controls that are utterly unrecognisable as representations of the controls they are supposed to.. uh.. represent (TLabel and TPanel, I’m looking at you!).

    And never mind that D7 remains the speed king of IDE’s, even when comparing IDE’s all equally (or as fully as possible) pimped-out with “SpeedUps” and “Extensions”, courtesy of Andreas Hausladen. D7 also remains the most solidly stable and reliable than ANY Galileo IDE. Certainly D2007 was a quantum leap forward over 2005 and 2006 in that regard and 2009 doesn’t seem to have slipped back on that too badly, but still I have more “WTF!?” moments in D2009 than I ever did in D7 (and I still use D7 far more than I use D2009 and my D7 IDE is far more loaded with 3rd party components, so the “WTF per hour” and “WTF:Palette Load” ratio is far worse than the absolute “WTF” count would suggest). e.g. random, no warning “shutdowns” (IDE just disappears), keyboard not responding at all, “alt” shortcuts spuriously hijacked/not responding. None of which are mechanically reproducible enough that a QC report could meaningfully be logged.

    And on top of all that, the new Project and IDE Options dialogs are abominations that should never have made it out of the Usability Labs. Again, a great “new feature” is that they are re-sizable. Good thing too, because now you can’t see half as much useful information in them at their default sizes, where-as before, they didn’t really NEED to be resizable at all!

  25. Ken Knopfli said

    I paid, out of my own pocket, the upgrade to D8. It was a waste of money and I was very angry. My Kylix 1 experience didn’t improve my demeanor.

    Whenever new versions came out I read the forums, usually with dismay.

    Then D2007 came out, and I let myself be persuaded to upgrade, but in reality it was a mixed Native Code/.NET IDE with the .NET capability quickly stripped out, and it showed.

    Was D2007 worth my money? The IDE is an improvement, but I wouldn’t do it again. But I paid for it, so I use it, with D7 open at the same time for the Help.

    Now I am told to reach into my pocket yet again for D2009, but that I cannot compile for my Win98/ME customers anymore, and that Generics is not ready for prime-time yet.

    No, no, no.

  26. GunSmoker said

    That’s actually funny see “D7 also remains the most solidly stable and reliable than ANY Galileo IDE” and “new IDE starts up a helluvalot faster than Delphi 7 ever did” replies from people. You see it everywhere, not only here.

    Looks like it highly depends on… I don’t know: your machine, your fortune, may be?
    Oh, wait, it must be a new anti-borland move from Microsoft! I knew it! 😀

  27. Michael said

    Interesting … Delphi 2009 definitly starts up fast and D2007 too. I have a really cheap 4core AMD … fast enough. Also on dual core Notebook. Guys I can remember D2005:)))))))))))) on an older machine. It worked when the memory manager was changed and patch 4 was applied.

    Despite all arguments, in the end we pay for support … and we pay for contiuous evolution of the Delphi Compiler and the IDE (BDS). This is done very satisfying again and from my feeling better than ever before. The trend is upward definitly.

    Borland Marketing from my feeling did strange decisions and the D2005 diseaster was driven also by lot’s of guys that where not satisfied with D7 and the upcoming first Microsoft IDE that really worked VS2005. D8 was to early the correct idea, D2005 was to early the better idea (still wonder today that it started at all), D2006 was more in time but more or less the D2005 people wanted – it did it’s job. D2007 is the correct answer for native development – D2009 is in time and very good native development and UNICODE.

    For some of us QT Studio will do for C++ development … but where is the alternative for C++, except of D2007/2009. As long as we talk about IDEs and RAD development … There exists C++ Code and new developers take over existing code also Pascal code. And being in the position to reduce cost in that area an upgrade fee is not worth mentioning. You cannot sell this so simple …

    The help system can be left open there is no need to close it…

    The speedup of an IDE start ist nothing, the speedup of other getting to know the existing code is everything. Welcome back to reallity. I fully understand the arguments for Delphi 7. Most of the Addons are not delivered and are a sign that something was missing. Codegear/Emarbacero took action …

    So why not move to this decade…

    Mike

  28. You are STILL missing the point:

    “Third, the help entry text dates from at least Delphi 2005 and was superceded by this famous post which shows that even within CodeGear/Embarcadero the opinion has shifted.”

    There is no “shift”. Vista is a platform, the VCL is the RTL. Your example of an “opinion shift” is just a.n.other example of the INTENDED USE of class helpers, as originally documented in 2005.

    Just because the platform in this case isn’t .NET, that doesn’t mean that the stated, intended use of class helpers is suddenly different.

    The single unifying and defining characteristic is this: These are class helpers used within the VCL by CodeGear in the RTL source. As long as it is ONLY CodeGear that produces class helpers there will not be a problem.

    The problems start when other people start creating their own class helpers and then expect to be able to share that code with other people who are ALSO creating their own class helpers.

    Class helpers in their original AND in their current form, simply do not work in that scenario (in the sense that they introduce an unacceptable risk of unintended consequences) and that is quite simply because – AS THE DOCUMENTATION STATES – they were not and are not intended to be used in that way.

    • Nope. You’re missing the point. There is on such thing as a reserved language feature. Go read the post I linked to, and you’ll see that this is not a case of platform binding at all – the relationship with Windows Vista is incidental. You could have added any property whatsoever in the same way.

      You’re wrong if you think that their use by members of the populace is universally frowned upon by all at Embarcadero. Go google “class helpers” on blogs.embarcadero.com and you’ll find at least three or four blog posts by members of the Delphi team that describe how class helpers helped them achieve things that would otherwise be more cumbersome or difficult. And about a year ago CodeGear ran a campaign to get people to switch from Delphi 7 and released a series of lists highlighting the major changes since Delphi 7. Class helpers are specifically listed there. They just regurgitated the blurb from the help file, sure. But they explicitly included them in a list meant to get people to switch. On top of that, go search qc.embarcadero.com for class helpers and you’ll find many issues that were opened and fixed, even though none of these reports are related to VCL-platform binding. So obviously the language feature is being actively maintained, based on its use by the community.

      And the use of class helpers in implementing the GlassFrame property is completely different from the System.Object binding. The class helper wasn’t needed to implement the property. It was needed to implement it without breaking DCU compatibility. So it had nothing to do with “platform binding” and everything to do with being able to extend a class that could not be modified. Further, in Delphi 2009 the changes were rolled into the TCustomForm class and the class helper is no more. Not because it was a bad idea, but simply because it has served its purpose.

      Also, your example of why it is evil is actually a case of incorrect use. For that matter, there are many cases where inheritance is also a bad idea, as there are with recursion, built-in assembly routines, function overloading, generics and method pointers (events). But we don’t ban those.

      Lastly, they are such a bad idea that C# copied the idea. In fact just reimplemented it after the guy who designed them for Delphi joined Microsoft.

      There is a great thread on Stackoverflow about where their use do make sense – go read that if you need to be convinced that they are helpful.

  29. John said

    Firstly, thank-you. I have been looking for ages for information like this and I can see that you are trying to be objective and helpful. I have Delphi 2007 but still use Delphi 5 and am desperately try to find a compelling reason both to acquire 2010 but more important to actually use it when I get it. I am still not convinced but you have give me alot of food for thought.

  30. Zed said

    I have been coding in PASCAL since turbo pascal 5. I have been through pretty much all the IDE’s

    Delphi 2009 is great – except for the lowlevel UNICODE bugs in IBX components, which have rendered my projects totally useless.

    There are numerous complaints on QC but nothing gets done about it.

    In the end I had to go fix the bugs in IBSQL and IBCUSTOMDATASET myself, statically link the source file to the app and “build with debug dcu’s”

    hardly a viable solution.

    I’m glad to say we are rewriting in C# and from next year wont have to hassle with delphi crap again

RSS feed for comments on this post · TrackBack URI

Leave a comment