Delphi XE2 FireMonkey for Windows, Mac, iOS: great idea, but is it usable?

I am sure all readers of this blog will know by now that Delphi XE2 (and RAD Studio XE2) has been released, and that to the astonishment of Delphi-watchers it supports not only 64-bit compilation on Windows, but also cross-platform apps for Windows, Mac OS X and even iOS for iPhone and iPad (with Android promised).

I tried this early on and was broadly impressed – my app worked and ran on all three platforms.

image

However it is an exceedingly simple app, pretty much Hello World, and there are some worrying aspects to this Delphi release. FireMonkey is based on technology from KSDev, which was acquired by Embarcadero in January this year. To go from acquisition to full Delphi integration and release in a few months is extraordinary, and makes you wonder what corners were cut.

It seems that corners were cut: you only have to read this post by developer and Delphi enthusiast Chris Rolliston:

To put it bluntly, FireMonkey in its current state isn’t good enough even for writing a Notepad clone (I know, because I’ve been trying). You can check out Herbert Sauro’s blog for various details (here, also a follow up post here). For my part, here’s a highish-level list of missing features and dubious coding practices, written from the POV of FireMonkey being a VCL substitute on the Mac (since on OS X, that is what it is).

Fortunately I did not write a Notepad clone, I wrote a Calculator clone, which explains why I did not run into as many problems.

Update: See also A look at the 3D side of FireMonkey by Eric Grange:

…if you want to achieve anything beyond a few poorly texture objects, you’ll need to design and write a lot of custom code rather than rely on the framework… with obvious implications of obsolescence and compatibility issues whenever FMX finally gets the features in standard.

There has already been an update for Delphi XE2 which is said to fix over 120 bugs as well as an open source licensing issue. I also noticed better performance for my simple iOS calculator after the update.

Still, FireMonkey early adopters face some significant issues if they are trying to make VCL-like applications, which I am guessing is a common scenario. There is a mismatch here, in that FireMonkey is based on VGScene and DXScene from KSDev, and the focus of those libraries was rich 2D and 3D graphics. Some Delphi developers undoubtedly develop rich graphical applications, but a great many do not, and I would judge that if Embarcadero had been able to deliver something more like a cross-platform VCL that just worked, the average Delphi developer would have been happier.

The company must be aware of this, and one reading of the journey from VSCene/DXScene to FireMonkey is that Embarcadero has been madly stuffing bits of VCL into the framework. Eventually, once the bugs are shaken out and missing features implemented, we may have something close to the ideal.

In the meantime, you can make a good case for Adobe Flash and Flex if what you really want is cross-platform 2D and 3D graphics; while VCL-style developers may be best off using the current FireMonkey more for trying out ideas and learning the new Framework than for real work, pending further improvements.

On the positive side, even though FireMonkey is a bit rough, Embarcadero has delivered a development environment for Windows and Mac that works. You can work in the familiar Delphi IDE and code around any problems. The Delphi community is not short of able developers who will share their workarounds.

I have some other questions about Delphi. Why are there so many editions, and who uses the middleware framework DataSnap, or other enterprisey features like UML modeling?

There appear to be five editions of Delphi XE2: Starter, Professional, Enterprise, Ultimate and Architect, where Architect has features missing in Ultimate – should the Ultimate be called the Penultimate? It breaks down like this:

  • Starter: low cost, restrictive license that is mainly non-commercial (you are allowed revenue up to $1000 per year). No 64-bit, no Mac or iOS. $199.00
  • Professional: The basic Delphi product. Missing a few features like UML diagramming, no DataSnap. Limited IntraWeb. $899.00.
  • Enterprise: For more than double the price, you get DataSnap and dbExpress server drivers. $1,999.00
  • Ultimate: Adds a developer edition of Embarcadero’s DBPowerStudio. $2999.00
  • Architect: Adds more UML modeling, and a developer edition of Embarcadero’s ER/Studio database modeling tool. $3499.00

The RAD Studio range is similar, but adds C++ Builder, PHP and .NET development. No Starter version. Prices from $1399.00 for Professional to $4299.00 for Architect. The non-Ultimate Ultimate is $3799.00.

All prices discounted by around 40% for upgraders.

The problem for Embarcadero is that Delphi is such a great and flexible tool that you can easily use it for database or multi-tier applications with just the Professional edition. See here, for example, for REST client and server suggestions. Third parties like devart do a good job of providing alternative data access components and dbExpress drivers. I would be interested to know, therefore, what proportion of Delphi developers buy into the official middleware options.

As an aside, I wondered about DataSnap licensing. I looked at the DataSnap page which says for licensing information look here – which is a MIDAS article from 2000, yes Embarcadero, that is 11 years ago. Which proves if nothing else what a ramshackle web site has evolved over the years.

Personally I would prefer to see Embarcadero focus on the Professional edition and improve humdrum things like FireMonkey documentation and bugs, and go easy on enterprise middleware which is a market that is well served elsewhere.

I have seen huge interest in Delphi as a productive, flexible, high-performance tool for Windows, Mac and mobile, but the momentum is endangered by quality issues.

19 thoughts on “Delphi XE2 FireMonkey for Windows, Mac, iOS: great idea, but is it usable?”

  1. Your question if Firemonkey is usable?
    you can already see application written with Firemonkey inside Apple App Store!!!

  2. I agree entirely with your post, that’s why I’ve put my customers on hold into purchasing XE and XE2, too many issues, an very little gain…
    But give them some time, they had to take this approach due to money issue, release at each beta phase and between patches <– this gives them more time and in the same time some money.

  3. That licensing information for MIDAS/DataSnap is badly out of date and shouldn’t be on EMBT’s web site. I’ll report that. DataSnap licensing is free now. There should be a redistribution file installed with Delphi to that effect. Thanks.

  4. Previous version was harshly criticized because it didn’t include the promised 64 bits and cross platform. They had to deliver ASAP. Even if it’s a little rushed, I’m happy to have something to play with now.

    The worst thing of the last years Borland disaster was the feeling that Delphi was a shrinking puddle. Now, it’s expanding. I’ve bought the Starter upgrade (see the terms for competitive upgrade, mostly anyone qualifies) “for use at home” and maybe for the next year I could convince the bosses.

    About the enterprising features, people with inside information had said several times that the most expensive “editions” are also the ones bringing the most profit. So even if I also would like more love to Pro edition, it seems difficult that they will change their minds.

  5. Of Course it is usable! I am writing a commercial app that out the gate will work on all these platforms out the gate. AND I don’t have to learn other languages to do so. So I’m thrilled! While yes the have some things to improve but they are moving fast, give it a chance!

  6. I’ve used professionally Delphi for 15 years and have never touched Datasnap, or even seen the need for it. For the first time, I now see its usefulness, on the mobile platform. If we want to create apps that allow our customers to interact with their live data that our Windows application uses, then Datasnap provides the perfect bridge between the two. I’m looking forward to investigating this further.

  7. Usable to whom?
    Well, I took a good look at FM and I am impressed, but unfortunatly I don’t think that I can use it (unless I will write a smastphone application, maybe…)
    In the meantime we, commercial developers, need the 3rd party involvement in our projects. As long as i cannot print a grid, filter it, show automatic totals, group columns or use a pivot grids, I will wait. Those features are only mere examples of the richness we have today in, for example, devExpress component set and othrs.
    David

  8. I’m working in a new project for Windows and Mac right now, I decided to use FireMonkey and it’s totally usable and fantastic.

    I also have a VCL project that my team started the migration 2 weeks ago, we are redesigning the UI because we want to take advantage of the great FireMonkey stuffs.

    Last week CodeRage 6 had lots of presentation about FireMonkey, which is helping a lot since the documentation is a little limited now.

  9. Hi Tim,

    Related with the features you mention about the Delphi editions, I would like to give more details about each one and some corrections:

    – Delphi Professional -> this edition includes UML class diagram, which is the most used diagram, also includes some audits and metrics, FireMonkey, 64-bit, Mac OS X, LiveBinding, cloud support, RTTI improvements, deployment manager, third party tools and components like AQTime, CodeSite Express, Beyond Compare, etc.

    – Delphi Enterprise -> All of the UML diagrams, audits, metrics, 10 dbExpress drivers including the new ODBC driver introduced in XE2, third party tools like Final Builder, etc. It also includes DataSnap which and new features like Connectors and monitoring – DataSnap is large used by our customers, n-tier development with DataSnap is much easier and faster then any other solution, DataSnap native Servers provide communication through TCP/IP, HTTP and HTTPS, the communication between client and server is not limited to REST interface, it also include other features like callback support, filters, etc.. Visit http://www.embarcadero.com/rad-in-action/delphi-labs and watch the DataSnap in action videos.

    Just to reinforce Craig’s comments, DataSnap is free, there is not deployment or run-time fee.

    – Delphi Ultimate -> all of the Enterprise features plus DB PowerStudio, our set of tools for database management with RapidSQL, database, schema and server configuration comparison and synchronization with DB Change Manager, and our premier tools for SQL profile and tunning DB Optimizer.

    – Delphi Architect -> all of the Enterprise features plus ER/Studio, which is our database modeling tool, btw the best data modeling tool in the market.

    The full feature matrix is available here: http://www.embarcadero.com/delphi-features-matrix

    We are making big investments in FireMonkey, improving documentation, publishing articles, blogs, supporting the community, etc.. Last week we had CodeRage 6 where many community members and Embarcadero employees did show FireMonkey in Action and many other Delphi related topics, all replays are available here http://blogs.embarcadero.com/davidi/category/coderage

    Regards,

    Andreano Lanusse
    Technical Lead Evangelist
    Embarcadero Technologies

  10. any times is Delphi IDE to be not perfect for FM usage… I got Mida to convert our vcl project to FM ( 120 forms ) Everything went well 🙂 , now.. I’m just waiting for a blessed db-Grid !!!

  11. I’ve been using Datasnap (in its DCOM incarnation) since Delphi 3. When it was rolled out it was really ahead of times, and compared to other middleware tools had the advantage (despite some disadvantages) of using DCOM and thereby being fully integrated into Windows security model. Most third party libraries using other protocols are not.
    Unluckily the initial effort was wasted later because the framework was upgraded slowly and without believing too much in it. The later dbExpress-based version was ill-designed, and developed very slowly as well, especially from the security point of view, which is much more important today than it was in 1997.
    I believe a remoting framework can’t be just a third party effort, because it may need compiler support to ease the developer work which of course can’t be easily implemented by them. And I expect a $2500 Enteprise version offer me real “enterprise” capabilities (remoting, message queues, etc), not just a bunch of database drivers or UML designers.

  12. Delphi XE2 could work great, perfect even, but at that price! Wow . . . $900. It’s really an almost impossible justification considering that you get Xcode for free when you get your Mac, any Mac. All updates are also free, forever. Pricing is one of the reasons our Windows-centric dev group that uses Delphi is migrating to Java. For a tiny bit, I thought Embarcadero maybe saved me from Java & Mono.

    What I’m about to note is not an ad – I’m not associated with them – this is simply for people here looking for multi-platform dev, as I am: There is also REALStudio (realsoftware.com). Quacks a bit like VB, is Windows, Mac & Linux, but not iOS (that I can see).

    BTW, thanks for these postings.

  13. When I saw the news about the new RadStudio XE2, I was excited and waiting to put my hands on it…

    I must confess that embarcadero made an awesome effort in order to improve Delphi, but it’s not enough. For me, it’s not worth an upgrade, specially because my last upgrade (2005 to 2007) was very expensive and without any benefits except bufixes in Delphi IDE. Somehow, Delphi Xe2 Firemonkey looks more like a field test build.

    Maybe Delphi XE3 can supreise me, and for a more reasonable price (I hope so…)

  14. Delphi has the same price structure since 1995. They only added a few more versions, and increased the confusion. In 95 it made sense to charge more for SQL database connectivity. But today there are many free database components. The extra money for Enterprise version can hardly be justified. The same goes for Architect and Ultimate versions.

  15. I would love to own it. Unfortunately, the Pro edition is just too costly, even on an upgrade, and the started edition pointless from a commerical perspective. It’s a shame there is no “Pro-Starter” edition, because the loss in functionality between the start and pro is massive.

  16. I have found a very good alternative to Delphi which is as far as I know currently the only true cross platform that supports x86/x64/ARM cross compilation for Windows, Linux, Mac, iOS, Android, Haiku, … and and.

    It is called XPower++ (I know ugly name), and on top of cross stuff it introduces also a very promising SaaS model with grid computing and Live Applications.

    Now I am not here to say it is better than Delphi, but it is a speed-train it gets the job done very fast, and that’s why I think it is very promising.

    The licensing is not that expensive either, I bought one and use it very commonly for small project, but I am considering it now also for a big project of mine.

  17. I know this is rather an old thread, but I wanted to answer one of your questions.

    I don’t care for DataSnap, never have.

    But I abolutely do want UML modeling in the RS/Pro edition. What is there (class diagrams) is reasonable, but I really really really want sequence diagrams.

    I mean REALLY REALLY REALLY.

  18. Delphi X2 is awesome, its so write programs that run on Win 32 64 and Mac. I converted my existing PC programs to firemonkey and they work great on the Mac ! The cost was only $500 , look for the specials.

Comments are closed.