Starting starter

[NB: this post was written in 2011 on XE Starter being introduced. Things have (slightly) changed since then – see the end.]

In the unlikely event anyone who reads Delphi blogs hasn’t heard yet, the low-end edition of Delphi XE — the ‘Starter’ edition — has been released. And, in short — it’s good! It’s also probably rather later in arriving than it should have been — D2007 Starter (released suitably late in the product cycle), D2009 Starter and D2010 Starter would all have made good products too.

You can check out the feature matrix here. In practice, I’ve found this to be mostly but not entirely reliable, though in a good way. Specifically, the command line tools are in fact included (not the command-line compiler itself however), along with the resource ‘manager’ and Subversion integration (small note to its developers though — setting Scaled to False is in fact cheating. Oh, and I’m jealous of your great eyesight):

screenshotUnfortunately, the debugger is missing the features the matrix claims it is missing (no tooltip evaluation is particularly annoying). The editor is too, though whether the loss of Error Insight and Live Templates is a substantive one I’ll leave other people to fulminate on.

The RTL and VCL source is also missing, and with respect to the actual libraries, one potential ‘gotcha’ is TXMLDocument not being included not being available at design time. I say this not as a fan of that particular component — in fact, I think it’s terribly over-engineered for very little effect, beyond killing performance — but simply since it is considered the default way Delphi supports XML programming. Nonetheless, the lower-level IDOMXXX interfaces, together with both their MSXML and ADOM implementations, are included. I would personally advocate using these over TXMLDocument/IXMLDocument anyhow, so maybe the latter’s absense isn’t so much of a bad thing on balance. [Edit: the DCUs for TXMLDocument are actually there, along with those for, er, certain other things that may or may not be mentioned elsewhere in this post.]

The DB side is also very much cut down — DBExpress isn’t included at all, nor TClientDataSet, so the bundled choices are down to IBExpress and the BDE (!). I understand the implicit promotion of InterBase (it’s another product that Embarcadero wish to sell you, and this makes for a non-invasive yet prominent way to advertise it to Starter purchasers), but even after reading the RAD Studio project manager’s explanation of the BDE’s inclusion, I still find that situation bizarre (you want to promote Delphi as a contemporary development tool, right?). Nonetheless, compared to the final Standard edition and two Personal editions of yore, you do get the VCL’s basic DB framework, which allows you to use third party alternatives to the missing standard DB parts as you see fit.

Also unlike those older low-end editions, substantially all of Delphi’s regular COM tooling is included. I can quite imagine this to be an oversight to an extent — indeed, the feature matrix seems to suggest less of the COM tooling is included than actually is, though I’m not au fait enough with the matrix’s jargon to be totally sure. At the very least, it’s surely a big inconsistency in rationale — i.e., how on earth is DBExpress a ‘professional’ if not an ‘enterprise’ feature where COM development is not, especially given the year is 2011 rather than 1997? Anyhow, quite apart from everything else, as a supposedly ‘low end’ native code development tool for Windows, this makes Delphi Starter completely out of MSVC Express’ league, regardless of the latter being free. Put another way, given good quality COM tooling is included, I’d say Embarcadero might as well promote the fact!

Other than that, it would be amiss not to raise the traditional complaint, so… coming from a person whose first experience of XE is the Starter edition, I’ve got to say the help is still crap. I installed it since I’ve found the docwiki to be a pretty good (well, pretty OK…) experience over all, which led me to vaguely hope the offline help might make for a local version of docwiki experience. Ha! DExplore is as appalling as always (all that flickering! The way it has a tendency not to quit while it’s behind when you tell it to!), the help content is a bit behind the docwiki, requests to hide C++ signatures keep on being forgotten, and the content is completely ignorant of the Starter edition and its limitations. Oh well, maybe next time…

Having said that, F1 does work (small mercies I know…), and a PDF of Bob Swart’s Delphi XE Starter Essentials is downloadable free from the registered users page (link) — a book that makes for an invaluable introductory resource for almost all facets of the Starter edition.

[Note: I made a few edits to this post after the originally publishing it. Coming back to it two years later, one of the ‘certain other things’ I alluded to in one of those edits – TClientDataSet – is now officially a part of XE3 Starter. Conversely, the BDE has finally been dropped, along with IBExpress (they are still around in more expensive editions of Delphi and RAD Studio however). Something you get that you didn’t in XE Starter however is FireMonkey for Win32, though the value of that is severely limited by the lack of source code (to figure out how to work around the framework’s many bugs) and OS X compiler (to make that working around nevertheless worthwhile, at least potentially).]

27 thoughts on “Starting starter

  1. I have a feel that Embarcadero is investigating to see if they can include an off-line version of the DocWiki, but also know how tough it is to do such things right.

    So I’m glad they didn’t do it in a rush for XE Starter.


  2. Wow. The feature matrix is nine pages – Is anybody else confused by that?
    I remember when the feature matrix was like, ten points or less, that helped you understand the editions at a glance. It’s detailed, and informative, and unless you know the product for ten years, it’s too much information. But…

    The starter edition DOES AN AMAZING AMOUNT OF STUFF for the $149 US upgrade price.
    That’s the amazing thing to me.


    • ‘The starter edition DOES AN AMAZING AMOUNT OF STUFF for the $149 US upgrade price.’

      I agree with that from a UK point of view (the ‘upgrade’ only cost me £106 ex VAT from the Embarcadero webshop; Grey Matter was a few pence cheaper still). The other important thing is that the ‘amazing amount of stuff’ is in the context of a solid product, offline help perhaps apart (at least you get offline help though, unlike VS Express last time I looked).

  3. I’d go further and say that without source code this entry on the feature matrix is misleading:

    “Object-oriented, fully extensible and reusable component and application architecture”

    Without source, the VCL is anything but fully extensible as often the safe/correct/reliable way to extend the VCL classes can only be determined by inspecting the source of the area in the base class you are attempting to extend.

    • Joylon — hey, it’s not like you to use hyperbole! 😉 If you read the official technical Delphi forums on a regular basis, you’d be surprised at how frequently Delphi developers *don’t* utilise the VCL/RTL source to track down problems or to understand how a certain component or standard function works. Moreover, you’re forgetting the precidents of the old Standard and Personal editions, which didn’t include the source either.

      That said, personally I would include the source like you. Quite apart from its educative uses, it’s hobbyists (and professionals in a more ‘hobbyist’ frame of mind) that are more likely to look at fixing the VCL/RTL bugs they come across — and then making these fixes publicly available — rather than just giving up and looking for a third party alternative, paid for if necessary. From a purely narrow perspective then, I would say it’s in Embarcadero’s interests to be more generous here.

      • I think you should check the definition of “hyperbole” – I don’t think I used any, at least not this time. 🙂

        It is not an exaggeration to say that the RTL/VCL is cannot be fully extended (or indeed understood) in the absence of source.

        The difference between Delphi XE and the previous incarnation of the Personal/Standard editions is… documentation.

        Another difference is that it was made clear that those editions did not come with RTL/VCL source on the relevant feature matrix. No such mention is made of this in the current feature matrix.

        You yourself lament the persistently poor state of the documentation. In the absence of adequate, separate documentation, the source IS the documentation.

        Just recently I fell foul of a bug in TInterfacedObject. The result of an omission in the destructor chain implementation that is however present in the constructor chain.

        This omission is the bug that was causing me problems, and separate documentation would not have assisted here at all since it is the sort of implementation detail that should not need to be documented, because it is a safety mechanism that a user of the class should not even need to know about.

        With the source (in Delphi 2010) I was able to identify the bug and devise a work-around/fix. Never mind “generosity” on the part of Embarcadero, without the source the RTL/VCL is rendered unusable and therefore not fit for purpose.

        Not “unusable” in the sense that the entire framework is useless, of course not.

        But in the sense that you cannot rely on it, that is certainly potentially the case. Not a “theoretical” potential, but an actual potential in the sense that one day you could very easily and innocently find yourself with what appears to be a bug in your application code (that bug in the reference counting management during execution of the destructor chain of an interfaced object for example) that is impossible to identify as actually coming from the RTL/VCL without being able to inspect the RTL/VCL source.

        On that basis I have sadly had to cancel my order for Delphi XE Starter and applied for a refund.

        • Your example is a good one. However, I still say a fair proportion of professional Delphi developers would fail to follow the procedure you took. Moreover, I have my suspicions you wouldn’t follow it for everything yourself – indeed, I vaguely recall you mentioning on your blog (or at least somewhere online) a few years back how you briefly tried out the bundled ribbon control in D2009, before swiftly buying (or arranging to have bought) the Developer Express alternative due to all the bugs.

          As an aside, this whole arguing-against-a-slightly-more-extreme-version-of-my-own-view thing you’re getting me to do is pretty tricky you know…

          • Eh? You would appear to be saying: “You refuse to use heroine so you shouldn’t complain if you can’t take aspirin”

            A highly complex component intended to be used “out of the box” that clearly doesn’t work at all as intended/required from the outset is an *entirely* different proposition from a simple class that is useless on it’s own and specifically provided as a base class from which to derive other classes.

            Especially as upon initial use, the supposedly simple base class appears to work perfectly well, and it’s only under certain circumstances that the bug it contains actually manifests itself, and when it does it could easily appear to be a bug not in the base class but a possible bug in your own code. Something you can only realise is not the case by stepping through the source.

            Again, wholly unlike the ribbon where it’s defects were quite clearly the result of it’s own bugs.

          • Well no – I was merely implying not every case will be as relatively clear cut like your example. Arguably, the utitilty of much of the VCL source, for example, is proportionate to your knowledge of the Windows API. Moreover, even in the TInterfacedObject example, you don’t actually need the source to understand when exactly the issue identified will arise — just draw up several test cases.

  4. >> Unfortunately, the debugger is missing the features the matrix claims it is missing.

    Could you explain more please regarding the debugger?

    Does it mean, I can’ use F7,F8 to debug the code line by line?

    • If you ever used the old Personal editions, they should give you a good idea. Failing that, think of what the debugger circa Delphi 4 misses compared to current versions.

        • The most immediate one (or put another way, the most basic/annoying thing taken away) is tooltip evaluation. The CPU window is in though, so go figure…

  5. It’s nice the Rentcadero has made the first steps in spreading the Delphi language, I really hope they will come out with even better offers, I would love to see something like: for only ~$200,–/year you can have latest version of Rentcadero Studio with full source code included(for VCL, RTL, etc.) and latest updates, from there on they can come up with new pricing schemes, but I believe this should be more then enough for their „marking folks¯.

    • ‘Rentcadero’. I’ve never heard that one before – care to explain?

      Separately, I disagree with you about the cost, assuming a US or UK perspective (which you may not be of course). I comparison I’ve made before is with the cost of a ‘family pack’ Windows 7 Home Premium upgrade, or Adobe’s Elements bundle – basically, these are both commercial software products for the ‘serious hobbyist’ (roughly speaking), and they each cost about the same as XE Starter in the UK.

      • You can’t really compare Rad Studio with Windows or Adobe Elements, but if you would like that, then be it:
        – what is Rad Studio?! a development environment, what is Windows?! an Operating System and what is Adobe Elements? well… photo editing… care to compare prices?
        – what can you do in Rad Studio?! develop applications, yea… what can you do in Windows?! pretty much anything you want, including writing code in freeware and open source development environments.
        – who or what is the target?! well for Rad Studio in one word we can simply say: geek, for Windows you can say: anyone, for Adobe Elements well… just about anyone…
        Don’t get me wrong, I do not wish to start an argument on this topic or any of that matter, my point is that Rentcadero is not really “best priced”.

        Regarding the “Rentcadero” — renting the use of any development environment like: Delphi, C++, Delphi for PHP is their next step if they care to survive.

      • “You can’t really compare Rad Studio with Windows or Adobe Elements”

        Er, why not? Delphi Starter is the low end version of Delphi/RAD Studio aiming to appeal to hobbyists and micro businesses (amongst others), and Adobe Photoshop Elements is the low end version of Adobe Photoshop that aims to appeal to hobbyists and micro businesses (amongst others).

        “care to compare prices?”

        I did. In fact, that was the whole point. You realise what the full version of Photoshop costs right?

        “well for Rad Studio in one word we can simply say: geek, for Windows you can say: anyone, for Adobe Elements well… just about anyone”

        Sitting at a computer fiddling with photographs using a paid for tool that has numerous free alternatives… isn’t the slightest bit geeky? As for Windows, hardly any ordinary person *upgrades* the version of Windows that got preinstalled – the ordinary person only ‘upgrades’ their OS when they get a new computer. I can’t believe you want to dispute that.

        “I do not wish to start an argument on this topic ”

        You already have. I’ll say again: I simply don’t understand the idea that £106 pounds is a lot of money for what you get with Delphi Starter.

        “Regarding the “Rentcadero” — renting the use of any development environment like: Delphi, C++, Delphi for PHP is their next step if they care to survive.”

        I don’t follow – they bought the assets. If you think ‘the community’ somehow ‘owns’ the product, you’re deluding yourself. If Delphi was made open source and therefore abandonware as you appear to be insinuating should be done (correct me if I’m wrong), the existing ‘community’ would collapse.

    • The jargon used is confusing, I agree, but if by ‘code completion’ you mean the list of possible symbols that pops up when you press a full stop (i.e., ‘.’) or Ctrl+Shift, then that’s included. You also get block completion (i.e., type ‘begin’, press Enter, and the ‘end’ is automatically added), together with SyncEdit (select a block of text, then press Ctrl+Shift+J). Also, while holding down Ctrl and hovering with the mouse doesn’t create any links, ‘Find Declaration’ at the top of the context menu is still there, and all of Alt+Back, Alt-Right and Ctrl+Enter still work as normal.

      • Yep, that’s what I would understand as Code Completion as well. Good news then.

        So what about Class Completion, i.e. Ctr-Shift-C ? Losing that would be a real bummer… I don’t think I ever entered a method implementation body by hand ever since I switched from Turbo Pascal…

        Didn’t know about Alt+Back or Alt+Right yet, though… I’ll try those tomorrow. 😉

        And while we’re on the topic of keyboard shortcuts for code navigation, what about Ctrl+[Alt+]Up/Down ?

        Also, when hitting Ctrl+Space in the interface section of a class that’s implementing an interface, does the CodeInsight still allow you to multi-select the interface’s methods to insert them all in a batch?

        • In turn…
          – Class Completion doesn’t work.
          – Alt+Left (sorry) and Alt+Right just go back and forward when you’ve clicked things like Find Declaration, a la web browser navigation.
          – Ctrl+Alt+Up/Down work (and are things *I* never knew existed, ahem!), also Ctrl+Alt+Home and Ctrl+Alt+End (ditto).
          – You can indeed select multiple methods from the Ctrl+Space menu/list box.

          Other than that…
          – Ctrl+/ (i.e., comment/uncomment using //) works.
          – Ctrl+. (i.e., invoke IDE Insight) works.
          – Syntax highlighting for non-Pascal file types works. Not massively useful admittedly, but it’s still nice to double click an associated INI or XML file in the project manager and see it come up in formatted text.

  6. Pingback: Te Waka o Delphi · Delphi [Non]Starter Edition: No VCL Source!

  7. @CR – NOTE: threaded replies are nice, but the formatting of the site makes it impractical…

    You yourself say, not every case is clear cut. With the bug in TinterfacedObject, it is easy to say in hindsight that you could identify the problem by devising some test cases, but the fact is that when debugging, the problem appears to stem from the management of interface references in application code that, by nature of the bug, is likely to consist of highly complex interface reference relationships.

    Once you *know* (or suspect) that the *actual* cause is, in an aspect of the inherited behavior of a fundamental base class, then yes you can then construct a test case to test that theory in a simplified and isolated case, but until you know what the cause is it is highly unlikely that you would think to create such a test case in the first place.

    Yes, you could devise black-box testing if you had NO OTHER CHOICE.

    But I find it extremely puzzling that you argue that it would be easy and obvious to do so, whilst arguing that most people wouldn’t think to do the even *easier* and more *straightforward* thing which is to step thru the VCL code that is crashing.

    • “NOTE: threaded replies are nice, but the formatting of the site makes it impractical…”

      Noted some time ago in fact, indeed on more than one occasion as you can imagine! The workaround is to reply to your own previous post rather than the one you’re actually replying to, if that makes sense. The reason I’ve never turned threading off is because the hosted WordPress will then turn it off for all old posts too, which might be confusing…

      “I find it extremely puzzling that you argue that it would be easy and obvious to do so, whilst arguing that most people wouldn’t think to do the even *easier* and more *straightforward* thing which is to step thru the VCL code that is crashing.”

      As I said, the second part of that is simply from my experience of participating in the Borland/CodeGear/Embacadero forums. It’s not a normative claim – it’s an empirical one.

  8. “The DB side is also very much cut down — DBExpress isn’t included at all, nor TClientDataSet, so the bundled choices are down to IBExpress and the BDE (!)”

    This seems to be at odds with what Quinn Wildman said in the ng’s, namely that the BDE isn’t included (although the matrix says it is, which Quinn indicated is a typo), and that TClientDataset is included (perhaps not at design time?)

    • This post was written in February 2011 about *XE* Starter. See the bit in italics at the end, which I updated yesterday.

Leave a Reply

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

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

Google photo

You are commenting using your Google 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 )

Connecting to %s