March 21, 2013
A very short description of the key differences between the two libraries.
A couple of days ago in the non-tech forum I posted a very short description of the key differences between the VCL and the FireMonkey libraries you can use in Delphi to build a Windows application (Of course, FireMonkey is the only choice for Mac development, and will be the only choice for iOS and Android). These aren't complete definition, not marketing ones, simply a way to discriminate among the two libraries in a rather coincise way.
VCL
"On one side we have a great library wrapping the native Window API,
which is far from obsolete on many counts (the Win32 API, I mean). For
example, it keeps your code compatible with older versions of Windows,
still heavily used. And it is great for migrating existing applications
that are OK to live on Windows only. It has minimal footprint, good
speed, and has support for a huge set of 3rd party components."
FireMonkey
"On the other side we have FireMonkey, which is a UI abstraction layer
intended for cross-platform (but also rather nice on each of the
specific platforms it supports). If you need 3D, graphics, UI scaling,
and many of the other supported features, this is a better choice than
VCL today."
Keeping Both
This was in the context of a thread in which a few people were expressing worries about the VCL being drop. This is not going to happen anytime soon (and probably not until Microsoft drops the Win32 API). And while it is true Embaradero is currently investing a lot in FireMoneky, this is mostly because the VCL is a rather mature solution, requiring continuos improvements and fixes, but not a mayor overhaul.
VCL Enhancement
In the same thread I also mentioned a set of recent VCL-related enhancements. While not all specific to VCL or part of its core, these features offer new opportunities for VCL developers:
So what was added to the VCL recently or can be used from the VCL:
- Styles (and BTW, FireMonkey later borrowed the bitmap-based styles)
- Metropolis look and feel
- LiveBindings
- FireDAC
- Sensors (for Windows 8 -- I know, not wrapped in VCL components, but
this might as well change)
So while this is not currently the key focus, keeping the best native
Win32-based library out there up to date in the long run is part of our
plans. But when looking for more flexibility (like extended scaling,
vectors based graphics, 3D) our solution is FireMonkey.
Nothing terribly new, but probably worth sharing in the blog.
posted by
marcocantu @ 9:15AM | 20 Comments
[0 Pending]
20 Comments
VCL or FireMonkey Short Take
vcl = poor bidi support
firemonkey = not supported till now
Comment by aTayib on March 21, 09:47
VCL or FireMonkey Short Take
After reading your blog post, I have two questions...
1) Can an application written using an earlier version
of Delphi using VCL be moved across to FireMonkey?
2) When deploying applications that use FireMonkey, does
the person using the software need any extra software to
be installed on their computer?
For example, if I created a simple "Hello World"
application in Delphi, then gave that to a client, if it
was a VCL application they would not need anything extra
installed on their computer. Is this the case with
FireMonkey?
Comment by Simon on March 21, 09:50
VCL or FireMonkey Short Take
VCL
FireMonkey dont support Right to Left
Comment by kabiri on March 21, 10:03
VCL or FireMonkey Short Take
I hope EMB will increase the performance for FMX, in
the next version XE4. Currently, applications written
in FMX are very slow and sluggish. At least on my PC:
Win 7 32-Bit
Pentium Dual Core CPU E5500 2.80 GHz
2 GB RAM
Graphic Card: ATI Radeaon HD 4300 Series
Comment by Markus Ja on March 21, 11:37
VCL or FireMonkey Short Take
FireMonkey: "If you want to have ugly fonts, or UI
from 1998 ... It's like using Unreal engine for
business application."
But for iOS and Android is acceptable solution.
Comment by PS on March 21, 12:49
VCL or FireMonkey Short Take
I very much want to convert my Windows application
over to FireMonkey, but FM has no Web Browser
component. For the past year and half, when asked
about a FM Web Browser, he says, Embr has to choose a
Web Browser. Just HOW LONG does it take to choose a
Web Browser?
Comment by Keith on March 21, 13:06
VCL or FireMonkey Short Take
Please keep investing in Firemonkey, I hope you guys
don't give up too soon this time.
I think the concept of basing the UI on OpenGL is a good
one. I'm currently using QtQuick 2.0, but who knows.
If Firemonkey continues to get better, I might switch
back to Delphi (my last Delphi was Delphi 6).
Comment by Fritz on March 21, 16:58
VCL or FireMonkey Short Take
There are still too many fundamental bugs and basic
missing features in Firemonkey to make it a via platform
to develop UIs. I've tried and failed, posted bugs to
QCs. Waiting for a major update to Firemonkey. In the
mean time I've started looking at Lazarus as a viable
cross-platform solution.
Comment by Herbert Sauro on March 21, 19:52
VCL or FireMonkey Short Take
Simon,
there is a VCL to FireMonkey converter called MIDA, it was included in
XE3 for free. FireMonkey doesn't require a runtime to install or deploy,
everything is compiled into the executable. Computer requires a GPU and
recent DirectX (on Windows).
kabiri,
Right To Left we know is a relevant problem
PS,
UI from 1998? This I don't get...
Keith,
we are adding a WebBrowser on iOS, there are plans to include one also
on Windows/Mac, but not that simple.
Fritz,
we are investing and will keep investing, improving speed, architecture,
and features
Herbert,
which time frame? FM2 was a large upgrade, more is coming and lots of
bugs are being fixed
Comment by Marco Cantu
[http://www.marcocantu.com]
on March 21, 22:50
VCL or FireMonkey Short Take
"Computer requires a GPU and recent DirectX (on Windows)."
C'mon Marco, know your own product - unless it's about
to be dropped, there's a GDI+ backend as well. Whether
applications using it are shippable is another matter
of course given the well-known text issues, but it's
there.
Comment by CR
[http://delphihaven.wordpress.com/]
on March 22, 00:29
VCL or FireMonkey Short Take
Hi Marco,
One more request, please continue to do any
examples. I use Delphi to write internal business
application and sometimes to find answers to a
problem is almost imposible. StackOverflow does not
have them all.
I use predominatly VCL framework with Raize
components.
Best,
C
Comment by chris on March 22, 00:49
VCL or FireMonkey Short Take
When update 3 comes out for XE3 I will revisit FM2.
There were no fixes for FM2 in update 2 so hopefully
update 3 will focus on FM2. One showstopper for me is
the inability to put gradients in shapes (I can do with
with VCL using GDI+). One can add a gradient to a shape
but only if the shape is at coord 0,0. If the shape is
moved, the gradient stays behind.
Comment by Herbert Sauro on March 22, 01:52
What Really Matters
A constructive criticism
What Really should be implemented in Delphi and RAD
Studio.
1)A MVC Framework to Enterprise Database developers
Really take advantage of of POO.
-This framework should do Transparent Real Object
entity Persistence a la hibernate
-DRY in mind.
-Take full advantage of RTTI introspection.
(people already tried this hopf, tiopf).
-Provide Application server manager (one shared
library linked to app services could be the facility
to rtti?).
2)Provide a better way to develop web Applications!
Is it so Hard ? the services should just generate
HTML and JavaScript to Http Server in a directory!
It should take advantages of framework above. With
full featured RIA components See IceFaces!
3)Linux server applications
4)Native iOS and Android.
5) a new portable VCL (Break compatibility with old
VCL) Look forward ! mantain Old VCL for lagacy
applications. Visual components should not be tied
with system dependences! Look wxWidgets !!!
Comment by Marcelo Fortes on March 22, 02:28
VCL or FireMonkey Short Take
we are very intersting about fmx but the most important feature for us
is full bidi support , untill now the framework does not support it ,3rd
party can not do anything on this except it is being supported by the
framework. Please can u clarify about what is going about right to left
language support . Is it on your roadmap? In active development or
not scheduled yet?
Comment by ahmed on March 22, 08:46
VCL or FireMonkey Short Take
Yes, bugs are fixed but in order to get them, we need to
buy whole Delphi package, instead of just getting the
fixes that Embarcadero owes us for the software we have
bought already...
Comment by Roumen on March 22, 13:05
VCL or FireMonkey Short Take
@Marco,
Is FM going to include support for BiDi in XE4?
I did not upgrade to RAD XE3 from RAD XE2 Enterprise
because FM2 did not add a workable solution for BiDi
functionality just like in XE2.
I am hoping RAD Studio would become more popular in
the Arab world in the near future. We are being asked
the "what tools are you using in your software
development" question a lot. But many don't recognise
Delphi and RAD Studio when we answer back.
Good luck to you and your team.
Comment by Mowat on March 22, 21:55
VCL or FireMonkey Short Take
The biggest thing holding us back from moving forward
with any version of Delphi is BIDI. The canned
response of "look the text prints backwards in RTL
bidi" simply does not cut it. We need Full BIDI. All
of the UI should look like a Mirror image, not just a
few controls flipping.
Comment by Jeremy Evans on March 25, 15:34
VCL or FireMonkey Short Take
Is firemonkey able to do the same as possible with vcl
graphics with more or less the same speed? Before I
start I wish to have some clarity.
Comment by Piet van Blokland on June 5, 12:52
VCL or FireMonkey Short Take
XE6 Released, and Still no support for BiDi R2L
languages, Is there any plan to support it FM in this
release or we have to wait ?
Comment by Barry on June 16, 12:59
Right to left
i have same curiosity about supporting arabic
language for firemonkey
Comment by Mahdi on January 18, 17:30
Post Your Comment
Click
here for posting
your feedback to this blog.
There are currently 0 pending (unapproved) messages.