{"id":5039,"date":"2011-10-24T18:33:54","date_gmt":"2011-10-24T17:33:54","guid":{"rendered":"http:\/\/www.itwriting.com\/blog\/?p=5039"},"modified":"2011-10-24T18:33:54","modified_gmt":"2011-10-24T17:33:54","slug":"delphi-xe2-firemonkey-great-idea-but-is-it-usable","status":"publish","type":"post","link":"https:\/\/www.itwriting.com\/blog\/5039-delphi-xe2-firemonkey-great-idea-but-is-it-usable.html","title":{"rendered":"Delphi XE2 FireMonkey for Windows, Mac, iOS: great idea, but is it usable?"},"content":{"rendered":"<p>I am sure all readers of this blog will know by now that <a href=\"http:\/\/edn.embarcadero.com\/article\/41593\" target=\"_blank\">Delphi XE2<\/a> (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).<\/p>\n<p>I <a href=\"http:\/\/www.itwriting.com\/blog\/4841-hands-on-with-delphi-xe2-for-apple-ios.html\" target=\"_blank\">tried this early on<\/a> and was broadly impressed \u2013 my app worked and ran on all three platforms. <\/p>\n<p><a href=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2011\/10\/image31.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2011\/10\/image_thumb31.png\" width=\"164\" height=\"244\" \/><\/a><\/p>\n<p>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 <a href=\"http:\/\/www.ksdev.com\/\" target=\"_blank\">January this year<\/a>. To go from acquisition to full Delphi integration and release in a few months is extraordinary, and makes you wonder what corners were cut.<\/p>\n<p>It seems that corners <strong>were<\/strong> cut: you only have to read <a href=\"http:\/\/delphihaven.wordpress.com\/2011\/09\/18\/we-can-expect-frequent-and-regular-firemonkey-updates\/\" target=\"_blank\">this post<\/a> by developer and Delphi enthusiast Chris Rolliston:<\/p>\n<blockquote>\n<p>To put it bluntly, FireMonkey in its current state isn\u2019t good enough even for writing a Notepad clone (I know, because I\u2019ve been trying). You can check out Herbert Sauro\u2019s blog for various details (<a href=\"http:\/\/blog.analogmachine.org\/2011\/09\/02\/bugs-and-issues-in-delphi-xe2-firemonkey\/\">here<\/a>, also a follow up post <a href=\"http:\/\/blog.analogmachine.org\/2011\/09\/04\/useful-tips-for-firemonkey-and-delphi-xe2\/\">here<\/a>). For my part, here\u2019s 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).<\/p>\n<\/blockquote>\n<p>Fortunately I did not write a Notepad clone, I wrote a Calculator clone, which explains why I did not run into as many problems.<\/p>\n<p><strong>Update<\/strong>: See also <a href=\"http:\/\/delphitools.info\/2011\/10\/06\/a-look-at-the-3d-side-of-firemonkey\/\" target=\"_blank\">A look at the 3D side of FireMonkey<\/a> by Eric Grange:<\/p>\n<blockquote>\n<p>\u2026if you want to achieve anything beyond a few poorly texture objects, you\u2019ll need to design and write a lot of custom code rather than rely on the framework\u2026 with obvious implications of obsolescence and compatibility issues whenever FMX finally gets the features in standard.<\/p>\n<\/blockquote>\n<p>There has already been an <a href=\"http:\/\/edn.embarcadero.com\/article\/41650\" target=\"_blank\">update<\/a> 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.<\/p>\n<p>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. <\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>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? <\/p>\n<p>There appear to be five editions of Delphi XE2: Starter, Professional, Enterprise, Ultimate and Architect, where Architect has features missing in Ultimate &#8211; should the Ultimate be called the Penultimate? It breaks down like this:<\/p>\n<ul>\n<li>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 <\/li>\n<li>Professional: The basic Delphi product. Missing a few features like UML diagramming, no DataSnap. Limited IntraWeb. $899.00. <\/li>\n<li>Enterprise: For more than double the price, you get DataSnap and dbExpress server drivers. $1,999.00 <\/li>\n<li>Ultimate: Adds a developer edition of Embarcadero\u2019s <a href=\"http:\/\/www.embarcadero.com\/products\/db-powerstudio-xe\" target=\"_blank\">DBPowerStudio<\/a>. $2999.00 <\/li>\n<li>Architect: Adds more UML modeling, and a developer edition of Embarcadero\u2019s <a href=\"http:\/\/www.embarcadero.com\/products\/er-studio\" target=\"_blank\">ER\/Studio<\/a> database modeling tool. $3499.00 <\/li>\n<\/ul>\n<p>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.<\/p>\n<p>All prices discounted by around 40% for upgraders.<\/p>\n<p>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 <a href=\"http:\/\/stackoverflow.com\/questions\/3959851\/using-rest-with-delphi\" target=\"_blank\">here<\/a>, for example, for REST client and server suggestions. Third parties like <a href=\"http:\/\/www.devart.com\/vcl.html\" target=\"_blank\">devart<\/a> 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.<\/p>\n<p>As an aside, I wondered about DataSnap licensing. I looked at the <a href=\"http:\/\/edn.embarcadero.com\/delphi\/distcomp\/datasnap\" target=\"_blank\">DataSnap<\/a> page which says for licensing information look <a href=\"http:\/\/dn.codegear.com\/article\/20870\" target=\"_blank\">here<\/a> \u2013 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.<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 &hellip; <a href=\"https:\/\/www.itwriting.com\/blog\/5039-delphi-xe2-firemonkey-great-idea-but-is-it-usable.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Delphi XE2 FireMonkey for Windows, Mac, iOS: great idea, but is it usable?<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,24,26,79,80],"tags":[158,301,318,392,499,565,690],"class_list":["post-5039","post","type-post","status-publish","format-standard","hentry","category-apple","category-delphi","category-development","category-software","category-software-development","tag-apple","tag-cross-platform","tag-delphi","tag-firemonkey","tag-ios","tag-mac","tag-osx"],"_links":{"self":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/5039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/comments?post=5039"}],"version-history":[{"count":0,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/5039\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/media?parent=5039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/categories?post=5039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/tags?post=5039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}