RAD Studio 2010 Review – Part 1: Top 10

SplashscreenGuys, the picture above is the RAD Studio’s splash screen. Yes, so cool. And yes, Embarcadero gave me the permission to talk about the new RAD Studio 2010. There will be a series of posts on it so, hang on. Also be aware that everything here is from an internal pre-release beta. So, everything can change till RTM. But let’s start…

First of all, the main thing which one sees to the new RAD Studio 2010 is the company’s commitment to quality.

Tons of bugs fixed, many of them which weren’t recorded in QC, a bunch of ‘small’ improvements (ok, some of them not so small) making the user experience much more pleasant compared with the previous versions. I’m really impressed, even if (the ones who participate to the Field Test know) I don’t hesitate to promote a constructive criticism where I think that’s the case.

The first impression which one starts to use the new Delphi is IDE’s responsibility. I’m testing it in a VMWare 6 virtual machine with 1 (one) GB RAM allocated and in my box I have an Intel Quad @ 2.66GHz (not overclocked). And let me tell you something, guys: Is the fastest Delphi IDE since… I don’t know when. Definitely faster than D2007 and D2009. And I had all the Delphi versions since D1 (ok, blame me, I didn’t really used D8 and D2005).

But our main concern, as well as team’s, is to please YOU. The community. And besides of new features (which I’ll outline in the next posts) we are focused on what are your main pain points with regard to quality / bug fixing. And believe me, the team is hard at work in fixing bugs. But they need some feedback from you.

Can you tell which are your Top 10 List of Bugs which you want to see fixed in Delphi 2010? (Be aware that they are very close to the Release. Don’t expect that all the bugs will be addressed, – mind you this is not Embarcadero’s blog – see it as a means to take the community’s pulse)

PS: Did you noticed? In the right lower corner of the splash screen is written. “EMBARCADERO” Β – Power to your platforms. Hmmmm…. πŸ™‚

61 thoughts on “RAD Studio 2010 Review – Part 1: Top 10

  1. The focus on quality seems very good and the new features are very nice! That said I am still disappointed there will be no x64 support in Rad Studio 2010.

  2. My Top Delphi 2009 bugs
    1. Fix the Windows Vista progressbar painting problem. In most cases the progressbar is not fully painted and never reaches max value.
    2. Add ? icon to TaskDialog like TMS did to ADVTaskDialog. No ? icon possible without using custom icon.
    3. Add full support for Adding 32-bit png images with alpha channel to TImageList at Runtime. Few methods exists to work with png images at runtime in TImageList.
    4. Fix the Exception when closing a form with ShellListView and ShellTreeview on the form… serious AV often requires restarting delphi.
    5. lots more but i have to remember them ….

    • 1. Dunno. I’m testing it on WinXP
      2. See 1.
      3. Well, wait and see… perhaps something will be for you… πŸ™‚
      4. Didn’t saw it. But this doesn’t mean that it doesn’t exists.

  3. Worst bug for me (in D2006 and 2007) is 46710:

    “Assertion Failed: Amount >= Dest – StartDest…”

    Then boom, all unsaved data is lost. It happens once a day or so. Very frustrating!

    Does not appear to have been fixed yet.

  4. My top 3 bugs for Delphi 2009:

    1. The false alarms in the Error Insight that are still present in Delphi 2009 update 3+4 even with IDE Fixpack 2.6 from Andreas. If a project compiles or builds with no error, the Error Insight should be cleared out.

    2. The editor being unable to handle .pas files with tens of thousands of lines of code. I write small .pas files, but Delphi 2009 created a massive file when I imported type library for a leading CAD software. So I’m stuck coding in Microsoft Visual C++ until this is bug fixed.

    3. The editor failing to open a .pas file when control-clicking on a function or procedure name.

    And for those of us with C++ Builder 2009, the ability to compile Crypto++ 5.6.0 without an internal compiler error (ICE). Crypto++ includes a C++ Builder project group file, self-testing executables, and self-benchmarking executables so it should be easier than most open-source projects for the compiler team.

    • 1. Big improvements in the area
      2. Since isn’t your code can you post that file somewhere (perhaps in .binaries forum) and notice that you posted there?
      3. Yeah, I know. But now it seems fixed.

  5. Here’s a couple for Generics:

    1. Class completion for Generics
    2. Error messages in generics instead of at point of variable declaration

  6. Since the focus in D2010 is the IDE, I’ll focus my bug list there:

    1. Error Insight – as already mentioned, should ALWAYS match the compiler
    2. Code Insight/Code Completion – frequently fails (or takes FOREVER) on large projects with lots of targets, 3rd-party libraries and components.

    • 1. As I said, big improvements in the area. Of course this is my POV.
      2. It seems quite responsive to me. And I know that they worked there. Most probably the engine is improved. What Delphi do you have?

  7. Hi

    Make a double click on TTable ( any Txxxxtables / query.. )

    there is the list of fields.

    NO SEARCH ! NOTHING ! A very simple listbox -.-

    i have much table with 100/200 fields , Not usable for find 1 field.

  8. I mentioned the oldstyle toobar stretch-over-two-monitors issue in your previous blog.

    …but the fact that Generics has received attention is good news and will be a factor to persuade me to update. Will be keen to hear from other users.

      • Regarding generics, will it be possible to use generic methods with properties?
        i.e.
        protected
        function GetData: T
        published
        property MyData:TMyType read GetData;

      • seems like html parser doesn’t like my generic types, removed when posting πŸ˜‰
        protected
        function GetData : T
        published
        property MyData:TMyType read GetData ;

  9. My top N:

    Doing certain things in the IDE (I never have figured out just what) breaks the command-line compile. The IDE should NEVER break the command-line compiler, but sometimes I’ll have the IDE open and I’ll launch a command-line build (using the same build script our build servers use), and the command-line compiler immediately bombs out with a meaningless error. I do a compile in the IDE, cancel after a few seconds, run the command-line build again, and it works fine. This is absurd. I should *always* be able to do a command-line build, without having to worry about what state the freaking *IDE* is in!

    IDE freezing for “background” (ha!) compilation at random intervals as it tries to show a tooltip or completion list, or just because I moved the mouse at the wrong time. As has been pointed out by other members of the community, a text editor should *never* block. If I pressed Ctrl+Space, I could accept a pause while it tries to do what I just told it to (especially if I had some ability to cancel), but if I’m just typing or mousing, the IDE should not suddenly become unresponsive with nothing to do but wait it out. We can very often type-ahead the entire rest of the line of code while the IDE is still frozen at the very first dot.

    Customizable keyboard shortcuts. You could argue that this isn’t a bug, but considering that everyone’s been begging for this since Delphi 1, I *do* consider it a bug that they still haven’t bothered. I want Ctrl+O to open a file, dammit! (Plus, there’s a good chance that this would give me some way of seeing what all the keyboard commands *are*. This would be way better than having to refer to the incomplete and fragmented documentation.)

    Make refactoring work on all units that are compiled into the app, rather than only working on the units that have been explicitly added to the project file. I talked to Allen Bauer at a live conference a few years ago about this, and he was genuinely surprised that it didn’t already work on all compiled units. In Delphi 2007, it still doesn’t — renames only affect the current editor file.

    Not being able to type a file’s basename into the IDE’s File Open dialog. If a directory has a file called “Unit1.pas”, older versions of Delphi allowed me to just type “Unit1” into the Open dialog and hit Enter. Recent versions of Delphi don’t; I have to type “Unit1.pas”. Small, but very very frequent, annoyance.

    Ctrl+Enter, to open filename at cursor, sometimes works and sometimes doesn’t. Sometimes it just opens an Open dialog, and all I have to do is append “.pas” (see above) and hit Enter, because the file is *right there in the current directory*. Other times it works fine.

    IDE locked up behind a modal window while I compile. I much prefer the way Visual Studio does it, where I can still browse around my code while a compile is going on, and plan out my next steps.

    Class Completion for overloaded methods is still busted — if I add a new overload and hit Ctrl+Shift+C, it puts the implementation in the wrong place, sometimes breaking the alphabetization in the implementation section.

    • Joe —

      The command line compiler is completely independent of the IDE. There are no couplings whatsoever.

      Now, the command line compiler may use the same paths and files as the IDE, but it is impossible for the IDE to “break” the commandline compiler.

      Nick

      • Nick, have you ever used the command-line compiler? The situation I described happens every day, often multiple times.

        Once it gets into this state, it doesn’t matter how many times we run the command-line compile, it fails every time. As soon as we recompile in the IDE (well, on rare occasions we have to do it twice), the next command-line compile works again. Exiting the IDE also seems to fix it. As I recall, a couple of times I managed to fix it by doing an End Process on the IDE.

        *Something* is coupled. Something in the IDE is screwing up the command-line build. A config file change, a Registry entry, a loose mutex, a locked file — I don’t know what’s getting in the way, but they are not “completely independent”.

        As for your claim of this being “impossible”, you’re welcome to visit our office and see for yourself.

        • I assume that you are compiling in the same directory with both
          or that the output dir is the same. One may be locking a DCU
          or similar.
          Filemon is your friend.
          BTW, reading through the filemon output is a good way to see
          if you need to optimize your lib path.

          HTH,
          Brad.

          • > I assume that you are compiling in the same directory with both or that the output dir is the same. One may be locking a DCU or similar.

            I’ve thought of that, but I’ve looked through Process Explorer’s list of the IDE’s open files when it was in this state, and haven’t seen any files from our source tree (except during a compile, of course).

            > Filemon is your friend.

            I’ve never used Filemon. Would it show different output than Process Explorer?

  10. Hi,

    – Fix DBExpress driver for Oracle to make field types consistent with other databases: properly map integer fields to ftInteger instead of ftFMTBCD. Map strings to ftString (like for MS SQL) instead of ftWideString. Datatype mapping consistency bw different databases should be a fundamental requirement for dbexpress

    – Filtering a ClientDataSet on WideString fields does not work properly (like ‘%mystring%’ not working)

    Eagerly waiting for Delphi 2010 πŸ™‚

    • No. The VCL applications which worked with D2009 will work with D2010. For D2007 and earlier you must be aware that D2009 / D2010 is Unicode and make some changes in your code. Which (after a personal experience) is _way_ easier to do that it sounds.

  11. Here’s my D2010 top 10 wishlist (well, 11 actually)!!!!

    1. “Help” as nice as in Delphi 7! Even when I’m working in D2009, I still often keep D7 open just to switch over when I need to search for Help information (only on features that were present in D7, of course). Borland really went off the beam on Help in the intermediate versions, and at least D2009 has a working Help. But it is SO much SLOWER, clunkier, uglier, and less integrated than D7’s.

    2. Performance in Code Completion: typing “widget.” and waiting for the popup list of possible options at that point is painful, and it’s only made worse if you type more letters, as the system struggles to refine the list each time. It makes you pine for D7’s silkiness.

    3. Performance at launch: you can just about make breakfast waiting for D2009 to launch.

    4. Call Stack is usually unavailable upon a crash (though having the wondrous EurekaLog mostly solves that gap)

    5. Multiple projects open simultaneously

    6. Seeing both a form AND its source code, rather than toggling F12 (the way it used to be)

    7. Fixing the Swiss-cheese holes and gaps:
    – string grid has LONG needed a proper “onEndEdit” event!
    – a version of ClientDataSet with SQL
    – ClientDataSet read and write from CDT or TDT text files, not just binary or xml
    – the amazing refactoring tools, yet we don’t have basic code reformatting?
    – amazing method extraction, but new method seems to be randomly inserted
    – clunky revision of values in variables through “Local Variables”/”Debug Inspector”
    – some place to put non-visual component icons, other than on top of forms
    – no compiler variable for compile date

    8. Editor improvements:
    – dumb indent-undent behaviors (persnickety about selection)
    – no proportional fonts
    – no “find selected”
    – a single selection, rather than separate “kinds” of selections for “find”
    targets and manual drags across characters
    – left-arrow after selection: strange behavior
    – double-click-drag to select by words

    9. VCL wishes:
    – a component for everyday use that combines a grid with a ClientDataSet to provide basic storage, sort, filtering and visual interface in a SINGLE component
    – disclosure triangle component
    – a better way to specify the order of panels that are consecutively “aligned to top”, for example, so that the specified order persists when individual panels are hidden or revealed. This can be coded, but it’s a royal pain.
    – a form option to reduce the height automatically so that there is no empty gap between panels aligned to top and those aligned to bottom (when panels are dynamically hidden or revealed during the course of the program)
    – a hook in the browser component to handle actual retrieval: given a URL for a page or image, a specified event handler would retrieve the material, and return it.
    – bundle in the old Orpheus components, thus assuring developers that they’ll be supported for a while

    10. Proper documentation and support for the included component sets Indy, Office apps (“servers”), and TeeChart Standard

    11. Clean up the messy and error-prone structure for supporting components (is it the single greatest obstacle to embracing Delphi upgrades?)

    Thanks for listening!

  12. Joe —

    First — what version of Delphi are we talking about?

    If before D2007, then the command line compiler will have a different command line than the IDE does. After D2007, we use MSBuild, and you can do your command line builds /exactly/ the same way as the IDE. To do that, you don’t call the command line compiler, but instead, you go to the MSBuild enabled command line and call:

    msbuild

    If you call the command line compiler directly, you will almost always get a different result from the IDE unless you very carefully set up your CFG file to be /exactly/ like the IDE’s settings. That’s really hard to do.

    Using msbuild from the command line, your builds will be /exactly/ the same.

    Nick

    • Nick, we’re using Delphi 2007, and yes, we are using msbuild to do the command-line compile.

      But even if we were calling the command-line compiler directly, there’s no logical reason why we should be able to run it twice (with an IDE build in between) and get different results. That’s my point — it doesn’t work consistently, even with the exact same inputs every time. The IDE is doing something environmental to screw it up.

    • Nick —
      A wrong setting in the blog engine won’t let you nest a discussion more that three levels deep. Fixed. Just letting you know. Sorry, my fault.

  13. It’s only a small thing, but it would be really good to have a fix for QC 76131 in the next release. Many people may not notice the little yellow ‘Close’ hint pop up on the desktop after closing either Delphi or any application built with it. But after you become aware of this it gets extremely annoying. There’s a video in the QC attachment for unbelievers!

  14. Maybe never reported, but, since using include files are supported ( $I }, it would be nice to also be able to see it in the file tree below the main source, like the .dfm file is today.

    And, if you correct code in the main file, you need in D2006 to also open the include file to get it compiled.

    • AFAIS it is the same with the one from D2009. However there is a new ‘Import WDSL…’ menu item there which pops up a Wizard… hmmm….

  15. I just got RAD 2010 and opened up C++Builder using a BDS 2006 project. The first really obvious thing is that I can’t open many of my .dfm files. Some open, but most won’t. There is no ‘Design’ tab showing for them and if you right-click on the .dfm file in the File window in the IDE and select Open, nothing happens. If you open from Win Explorer, the file opens as text but won’t show as a Form. NOT GREAT! In fact a disaster. Anyone can help?

    • I really wish there was another helpful response to this. The same thing is happening to me, from a BCB6 project. The strange this is that the form in question was opening just fine a few minutes ago, and I didn’t change it; it’s just now it doesn’t display. It’s a blocker for me.

      Codegear guys- is there a fix or workaround for this?

      Thanks.

          • Bah! … πŸ™‚

            Years ago we needed to edit a font with Macromedia Fontographer (RIP ?) and the program crashed immediately when we tried to open the font. Finally, because nothing else worked, we went to the humble path and asked the support. The solution was: Open WordPad. Write some text with that font. Close WordPad. Open Fontographer. Use it.

            This means support. πŸ™‚

  16. Howdy fantastic website! Does running a blog such as this require a massive amount work?
    I have absolutely no knowledge of computer programming however I had been hoping to start my own blog in the near future.

    Anyhow, should you have any ideas or tips
    for new blog owners please share. I understand this is off subject nevertheless
    I simply needed to ask. Thanks a lot!

  17. Thanks for the auspicious writeup. It in fact was once a leisure account
    it. Glance complicated to far delivered agreeable from
    you! By the way, how could we be in contact?

  18. Hey there, I think your website might be having browser compatibility issues.
    When I look at your website in Safari, it looks fine but
    when opening in Internet Explorer, it has some overlapping.
    I just wanted to give you a quick heads up! Other then that, fantastic blog!

  19. It is not my first time to pay a quick visit this web site, i
    am browsing this site dailly and take fastidious facts
    from here all the time.

  20. Have you ever thought about adding a little bit more than just your articles?
    I mean, what you say is valuable and all. Nevertheless think of
    if you added some great visuals or videos to give your posts
    more, “pop”! Your content is excellent but with images and clips, this blog could undeniably be one of the greatest in its niche.
    Great blog!

  21. I hardly create remarks, however after reading a few of the comments on RAD Studio 2010 Review – Part
    1: Top 10 | Wings of Wind Software. I do have a few questions for you if you tend not to mind.
    Could it be simply me or do a few of these
    responses come across as if they are coming from brain dead visitors?
    πŸ˜› And, if you are posting on other social sites, I’d like to follow you. Would you post a list of all of your public pages like your Facebook page, twitter feed, or linkedin profile?

  22. It’s awesome to pay a visit this web page and reading the views of all mates on the topic of this article, while I am also zealous of getting know-how.

  23. I do accept as true with all of the ideas you’ve introduced in your post. They are very convincing and can definitely work. Still, the posts are very brief for novices. May you please extend them a little from subsequent time? Thanks for the post.

  24. But on the one hand, these fragments of time that it was not such
    worthless people think, recall when you most inspired: not busy to cope with the
    large number of irrelevant complicated information, but in those who do not have a particular matter time of debris (bathing, waiting for the subway.
    The ultimate function on nouse technology is the digital keyboard.
    nn – The nouse technology will be particularly helpful to handicapped people and people with bodily disabilities.

  25. Being sure that the children are not being neglected
    is one of the duties of the lawyers. One of the most harassing things that most of the people face during your financial
    career is to face bankruptcy. Is the report not necessarily adequately apparent or comprehensive to empower someone of an incompetent level to produce and benefit from
    the invention illustrated in this claims.

  26. Wow that wwas odd. I just wrote an extremely long comment but after I clicked
    submit my commment didn’t show up. Grrrr…
    wel I’m not writing all that over again. Anyhow, just wanted to
    say great blog!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s