It was decision we took quite seriously. Using Delphi we spent a few days developing Firemonkey sample applications and compared them to what we could do in VCL. Firemonkey is quite nice. It has some really nice way of presenting data. However, ultimately we have decided on writing our application using the VCL.
Primary reasons we to considered using VCL
- Existing libraries that can be reused.
- We have written 30+ Custom Controls, that we can reuse.
- Still maintained and enhanced.
- Can create some really pretty applications, animations, etc... that are more time consuming to create under VCL.
- Gets most of the new features in the Delphi libraries.
- Gives a potential to go cross platform However, we have no requirements for this.
- We have no need to go cross platform with this application
- VCL applications look like the belong on windows, Firemonkey applications look like that are made to work on Windows.
- Firemonkey is a fast moving target, and Delphi upgrades may be more difficult if we skip versions.
- VCL is still getting improvements (But since it's mature it's not as difficult to adapt) but it's easier to upgrade between Delphi versions.
- Existing code libraries can be reused.
- Cost we don't have to buy or develop controls we already have.
- Specific VCL controls - (Where we could not find a equivalent in Firemonkey)
The good news is that XE7 supports both and I have a decision to make. I know some have said get rid of one or the other. I personally like having the choice, they each meet a different set of needs.
That being said part of my hope is that some of the reasons we chose VCL or Firemonkey are removed are removed in future releases. I also really want supported interactions that allow us to mix Firemonkey and VCL Code, such as a TFrame in VCL or Firemonkey being able to be embedded into VCL or Firemonkey form.
Regardless of the the framework choice, XE7 appears to be a good choice for development and has compelling reasons to use over XE6.