Delphi: Community Edition (A Proposal)

The time has come, the Walrus said, to talk of many things.  Of shoes, and ships, and sealing-wax.  Of cabbages, and kings.  And why the sea is boiling hot, and whether pigs have wings.

And why the cheapest version of Delphi costs a new user as much as a pretty reasonable second-hand car.  Why even an upgrade costs as much as a half decent new PC (excluding monitor).  And what might be done about that.

First an Update

“But wait a bit,” the Oysters cried,
“Before we have our chat;

After a flurry of emails and a healthy exchange of views on the NZ Delphi User Group mail list about the new upgrade policy heading our way in January 2010, Malcolm Groves of Embarcadero Australia (or Asia/Pacific – I forget precisely, but suffice to say he’s a relatively “big cheese” in antipodean Embarcadero terms) has explained that this is only a potential change in upgrade policy that Embarcadero are considering, which is why there has been no formal announcement as yet.

On the face of it this should be encouraging.  But….

As of this moment, that Finnish reseller has not removed that notice from their web site.  Either they have not been told that the decision is not yet confirmed… or they have ignored a request to remove it or issue a correction (or perhaps they have but can’t be bothered or haven’t got around to it yet).

But I’m also somewhat confused… I would have thought that Embarcadero would have been in touch with me to let me know that my blog post was based on incorrect or at least slightly inaccurate information.  I know that Embarcadero staffers visit my site from time to time.  But nobody did.

Maybe I’m just not considered that significant a voice.  I suffer under no illusions on that score, but still. :)

The Community Edition

“It seems a shame,” the Walrus said,
“To play them such a trick,
After we’ve brought them out so far,
And made them trot so quick!”

Anyway, I digress.  I was going to talk about a “Delphi: Community Edition”.

Well, folks…. here it is.  I present for your consideration a new version of Delphi built by The Community for The community.  Here are just some of the features it contains:

  • An all new, highly efficient memory manager, contributed by Pierre La Riche (among others)
  • Significantly improved highly performant runtime library functions (contributed by the FastCode project)
  • Numerous optimisations and performance improvements, courtesy of DelphiSpeedUp from Andreas Hausladen
  • Numerous enhancements and tweaks in the IDE, also courtesy of Andreas Hausladen
  • PNG Image support courtesy of Gustavo Daud
  • DUnit unit testing framework courtesy of Juanco Anez
  • Indy internet components courtesy of Nevrona

There is of course no special “Community Edition”.  These are all things that have found their way into Embarcadero’s baby courtesy of the community.

And the thanks we (collectively) get?

Two fingers to anyone who hasn’t bought a ticket for the upgrade gravy train and the threat of having their ticket taken off them if they don’t get it endorsed in the next three months, whether the train currently standing at the platform will take them where they want or not.  Some people on Delphi 7-2005 are I’m sure waiting for 64-bit before tackling the Unicode hump necessary to get there.  Delphi 2009 or 2010 are of no use to them

I have to wonder if perhaps a lack of upgrade urgency as a result of this mis-step in priorities (Unicode over 64-bit)  is what has prompted the wielding of this stick, but no doubt if asked Embarcadero would assert there has been no such lack of upgrade urgency – I’m in no position to dispute that and I’m sure they won’t be publishing any statistics.  So I’m still left only able to wonder.

And I do wonder.

Even if Embarcadero have a sudden attack of common sense and U-turn on this policy change, something needs to be done about the imbalance between the pricing and positioning of Delphi and the fact that that pricing and positioning is increasingly in danger of putting it out of reach of the very community that have helped keep the product alive over the years.

NOTE: I’m sure the individual contributors that I mention above were suitably and adequately rewarded by BorCodaGearo in whatever terms made them happy, but the point is that they did not undertake their projects with that in mind.  They created and shared their works as an act of community, and it is that sense of community that I am concerned for.

Would You Buy A Used Car From This Man?

They wept like anything to see
Such quantities of sand:
“If this were only cleared away,”

Here in New Zealand, Delphi Professional costs NZ$1500 +sales tax of 12.5% and an upgrade costs NZ$665 + tax.  That’s nearly NZ$1700 and NZ$750 respectively. You can, in all seriousness, buy a serviceable 2nd hand car for that money here.  Sure, you won’t get a warranty at that price for a car (although you can probably expect a 6 month “Warrant Of Fitness”) , but you don’t get a waranty with Delphi either, so fair’s fair as far as that comparison is concerned.

Then again, the license for Delphi specifically denies any “Warrant of Fitness”, so maybe the 2nd hand car is the better deal after all.

As for upgrades, well NZ$750 will get you a pretty decent brand new PC upgrade (base unit, excluding monitor) which will come with a full warranty of 12 months minimum.

Just to clarify:  I shall quote prices inclusive of sales tax because the types of user I am concerned for is maintaining their licenses out of their own private income and may not be able to recoup the costs, or the sales tax.  In many cases they may be an employee where their employer has a Delphi license they use at work, but if they use that license for their own private projects then their employer has a claim on anything they produce, even if it’s “off the clock”, so they maintain their own license for those purposes.

Certainly this is a common condition of employment in the UK and I now learn is becoming more common in Australia.  New Zealand employers that I have experience of seem more enlightened (admittedly that’s a sample size of only two!) but how long that will last I cannot say, except that NZ has a tendency to follow rather than lead on such matters, so I don’t see UK contracts changing in line with NZ practices but I can see NZ businesses deciding that the UK practice is really not a bad idea.  Certainly it’s hard to reasonably argue against an employer having a legitimate commercial interest in works produced using assets that they paid for.

In any event, most people I know like to keep things clearly separate by maintaining their own licenses for their own projects, and that includes me, even though according to the letter of my employment contract I don’t need to.

For one thing, who’s to say what terms and conditions the next employer might impose?

Dr Livingstone, I Presume..?

Let’s be clear, I have no problem with the pricing of Delphi Professional per se.  Not at all.  At least, if it weren’t for one thing…. it’s the cheapest Delphi you can get!

There is no Standard Edition.

No Personal Edition.

No Express.

No Explorer.

An Architect edition was tacked on to the top end, at price slightly more than an eye-watering NZ$6,500 (you can get a very nice second-hand car for that money, complete with a warranty in most cases), but the bottom end has been left to wither.  But Architect was never a “hobbyist”s edition, so let’s not worry too much about that.

More of a concern is that the Turbo’s appear to have been forgotten utterly.  Whatever happened to the plans that Nick Hodges had back in 2008 for a Turbo Delphi in 2009?

Perhaps the Turbo Explorer’s weren’t the success that were hoped for – the Turbo Professional’s of course transmogrified into the single-personality “studio”s.  As I mentioned, I think some fundamental mistakes were made in choosing the configuration for the  Explorer’s, keeping things that had no business being in a free, hobbyist product (refactoring and modelling), and leaving out things that absolutely should have been included (the ability to install components).

They were used more as a perpetual “trial edition”, than a true, properly considered, free, “community edition”.

Community Edition: Redux

“A loaf of bread,” the Walrus said,
“Is what we chiefly need:

It’s easy to criticise, though.  So now let me get to the point and attempt to be more constructive by suggesting what I think a Delphi Community Edition should be:

  • No explicit restrictions on commercial use.  Limitations on commercial endeavours will be imposed in other ways (see below).
  • Digital watermarks in binaries produced by the product.
    • The compiler shall inject a splash screen or some-such into into applications announcing that they have been produced using the community edition.  (yes, this may be defeatable by someone sufficiently determined, but someone so determined will currently just defeat the licensing system in a Pro SKU, so really, let’s not write this one off on that basis).  With the right marketing, it might even be seen as a “badge of honour”.
    • Design-time packages produced by the Community Edition shall include a watermark and some additional “negotiation” with the host IDE and shall not allow themselves to be installed except into any IDE except the one that was used to compile them.  This will mean that components etc shall have to be distributed with source (so that they may be compiled and installed by the recipient).  This will of course require an update to the Professional Edition IDE to similarly handle the negotiation with such packages, but packages compiled with the Professional Edition will install into any edition, yes, even the Community Edition.  Just because someone didn’t pay for the IDE why should they be denied the right to pay for some additional components to install into it?  (More on components in a moment).
  • I believe such impositions will severely limit the ability for the Community Edition to product software of a truly “commercial” nature (i.e. for the developer to distribute and/or charge a large amount for their works), but crucially it doesn’t prevent them from doing so.  It simply creates a clear distinction between the truly commercial Professional product and the Community Edition.  And all without having to get expensive lawyers involved to draft a different license for the Community Edition.
  • Resist the urge to provide “professional” features for a non-professional user to evaluate.  Stick to what is needed by the target user. Hobbyists really don’t need refactorings or modelling or even DUnit (if we want it we can get it ourselves).  The same applies to any other component set included which is available separately.  I’m think of IntraWeb and Indy in particular.  But this means that database access components have to stay in the box – users could get other database access technologies elsewhere, but they cannot buy dbExpress separately so these have to stay in the Community Edition.
  • No BlackFish SQL.  I know that giving it away is perhaps the only way to build the user-base for this engine, but really.  Does anyone use this?  Surely people are just using SQL Server Express anyway?

I may have missed some things that might have to come out as a result of taking out Indy, and they should come out too (if appropriate offer them as a free download that can be installed if/when a user has installed Indy separately, for example).

Apart from that, as far as I can tell, this would leave IDE that provides complete freedom to create and share code, with some limitations – though none too crippling – on the level of professionalism or apparent commercialness (yuck) that can be projected by someone using the tool along with some limitations on the components provided to be consumed (but if someone wants to acquire/install those separately then let them).

But now here comes the clever bit……

Standard Edition: Redux

The Turbo Explorer’s did not qualify for any preferential or upgrade pricing for someone wanting to step up to Professional.  What you had to to was first buy a Turbo Professional, but this was priced very much more cheaply than Delphi 2007 Professional (when it arrived a little later).

So cheaply in fact that you could have, if you wanted, bought a copy of Turbo Professional and then upgraded it to Delphi 2007 Professional for less than the cost of a new user license of Delphi 2007 Professional.  When this transpired the Turbo’s made less and less sense and looked more and more as if they hadn’t been thought through properly.  That they were quietly forgotten is, then perhaps not entirely puzzling.

But there is still a chance to snatch victory for the Turbo brand (or at least the concept, if the brand remains in Borland/Microfocus ownership as I suppose it may very well do).

Although welcome in very many ways, Delphi 2007 Professional created a problem:  it rendered the Turbo Professional, “single personality” editions completely and utterly redundant and superfluous in the 2007 product line-up, slipping cuckoo-like into the Turbo Professional slot in terms of feature set (single personality IDE) but at more than twice the price of the Turbo it replaced (US$899 vs US$399 iirc).

However, if a Community Edition were created along the lines outlined above then this creates an obvious “intermediate” product edition, let’s call it Standard Edition.

This would be different from the Community Edition in only one respect – the digital watermarking in the compiler products would be removed, so it would be possible to create applications without any Community Edition branding and provide functionally or time-limited trial editions of components etc in binary form.  In all other respects the two editions would be the same.  OK, maybe reinstate some of the refactorings or offer some other additional incentive as well, but not the whole shooting match and certainly not the components.

It is important to retain a clear and sensible difference between Standard and Professional editions.

So, to the all important pricing….. Standard Edition would simply cost the difference between a new user license and an upgrade license of Delphi Professional (give or tack a buck).  So at current Delphi 2010 pricing (from the US store):

Delphi Community Edition FREE

Delphi Standard Edition US$499

Delphi Professional US$899

Delphi Professional Upgrade US$399

Now pay attention…. here comes the clever bit I promised.

As I say, a user would “upgrade” from Community Edition to Standard Edition simply by buying a Standard Edition license.  They can then upgrade to Professional just by paying the difference between the Standard and Professional Edition prices (which is the same as everybody else’s Professional upgrade price).

But let us assume that Standard Edition is good enough for them and that we aren’t obsessing about how to get everyone onto Professional Edition, whether it’s right for them or not.  12 months later when Delphi  20xx+1 is released they have two choices:  Upgrade to Professional as usual (pay the difference between current Standard and Professional editions) or update to the new Standard Edition for US$199.

Bargain!

Who isn’t going to pay each and every year to stay current at that price and support the community too?

Anoint the Community Edition as  Turbo Delphi, relegating the “Community Edition” moniker to the by-line (but avoid the temptation to create an entirely separate Turbo product line – just leverage the brand name within the Delphi product line), and all would be set for a prosperous and exciting future for Delphi.

“Turbo Delphi – The new Community Edition of the worlds favourite high performance, rapid development tool for creating Microsoft Windows applications and creating and sharing code with the Delphi developer community”

Of course, the last part of the first sentence might need to be revised a little for Delphi 2011.

Partner this with a “DelphiPlex” community source code repository and, really, I don’t reckon it couldn’t get much better than that.

Footnote

I’m not sure why I feel it relevant to mention, but I do – no software was paid for in the creation of this blog post: WordPress, Google Chrome, Windows 7 RC1.  With thanks to Charles Dodgson for taking us Through The Looking Glass.

But answer came there none–
And this was scarcely odd, because
They’d eaten every one.

Tags: , , ,

  1. Gustavo Carreno’s avatar

    @Philip: Yes, that’s our present situation. But don’t you agree that if we get the next “batch” of new graduates interested in Delphi, they will try to get a Delphi job first and then something else?

· 1 · 2