Why I like FireMonkey

Yesterday I had a presentation at the SDE+ event, talking about Actions in general, and the addition of these in FireMonkey in particular. The implementation of Actions in FireMonkey differs somewhat from the VCL implementation, but I’ll plug that info a separate article.

At the presentation someone asked me; “Danny, why are you so fond of the FireMonkey framework?”. This made me think. Although there are more than enough tangible benefits to using FireMonkey instead of the VCL for your next Delphi project, there are actually only two that convinced me it’s the framework of choice of all the frameworks out there.

FireMonkey in Delphi allows you to develop cross-platform applications for Win32, Win64, OSX and soon iOS, Android and WinRT, but i find it unique because it’s:
1. One framework
2. One language

Let’s think about that; there is no other framework out there that succesfully abstracts (hides) a lot of the platform specific details, and does this with only one programming language.

If you look at competitors like Hydra or Oxygene or even C# .NET. Hydra has the same framework for a lot of platforms, but requires you to learn Objective-C for iOS and Java for Android. Oxygene has only one language, Object Pascal, and although it’s a nice product, it does not hide the underlying platform, it just exposes it. So you need to learn the underlying Cocoa framework if you want to develop for Mac OSX. If you’re using C# .NET, you do have one framework, one language, but you’re limited with Mono or WinRT. I asked a C# developer about his opinion, and he said that just now it’s easier to develop two applications if you want to deploy to Windows Phone and Windows-8 Desktop.

Food for thought.