[Lazarus] Delphi XE2 uses FPC, plus VCL just not portable

Felipe Monteiro de Carvalho felipemonteiro.carvalho at gmail.com
Sun Aug 7 22:30:47 CEST 2011


On Sun, Aug 7, 2011 at 2:32 PM, Graeme Geldenhuys
<graemeg.lists at gmail.com> wrote:
> Please tell me that was a joke.

Unfortunately it isn't. Let's compare what was achieved in the last 10
years by these two companies:

* Borland/Embarcadero -> In the last 10 years they started multiple
failled products (Kylix, Delphi.NET), added 1 major feature to the VCL
(Unicode), bought a couple of other projects (Delphi for PHP) and
managed to reduce themselves from a major player to a minor one which
isn't even in the news usually.

* Qt -> Started in a garage with 2 guys while Borland was in NASDAQ
and grew to become much more important then Delphi today. In the city
where I live there are many Qt programmer jobs, but zero Delphi
programmer jobs.

How can this not be incompetence?

> To be VCL "compatible" they have to resort
> to only using the common features across platforms

That's valid for *any* cross-platform toolkit.

> Qt being proof that a cross platform toolkit is possible,
> but you need to be flexible in your design. With some innovation and
> unique design it is much more plausible.

If Qt did it, why can't they do it to? It's just a question of adding
more APIs for the missing functionality which people were completing
with the Windows API. Qt did the same when they gradually added APIs
for their toolkit.

There is nothing special in the VCL that stops it from being a
cross-platform GUI toolkit. It could even be implemented fully custom
drawn if they think it is too much trouble to learn Cocoa...

Even for mobiles, Qt doesn't use a different toolkit for mobiles, so
why should we?

> Let history be a lesson too. What "clone" of a popular product is
> currently a success today. NONE!

All basic GNU tools (bash, rm, ls, etc) are clones of proprietary UNIX
equivalents.
Linux <- started as a minix clone
KDE copies the Windows desktop style and it even has a KolourPaint

OpenOffice is pretty much a clone of MS Office 97. Now, here we see
something very similar to the VCL/LCL thing. OpenOffice pretty much
clones MS Office, but that does not mean a blind follower like mono
was. When MS Office introduced their new reboon, OpenOffice didn't
follow them. Similarly the LCL doesn't have to blindly follow what
Embarcadero does in the future. But just like OpenOffice we are *not*
into changing because of fashion. Backwards compatibility is
important. Adding new stuff is much more relevant then changing old
stuff which works perfectly well for fashing reasons.

> Many dialog didn't look like Mac dialogs and
> components. eg: LCL buttons are rectangular, or rectangular with
> rounded edges and sometimes round (like actual Mac button).

Who do you think that paints LCL-Carbon buttons? They are native, aqua
buttons, they are just square because of the size...

Aqua paints all buttons with height >= 23 square. Just try in the
Lazarus in the form designer and you will see. You don't see many
square buttons in other apps simply because they use smaller
buttons....

So I don't see anything wrong with the LCL here. Unless you think that
Carbon and Cocoa are wrong too, but that would be a non-sense.

>> http://wiki.lazarus.freepascal.org/Lazarus_Custom_Drawn_Controls
>
> Funny you mention that. Isn't that exactly the opposite of what the
> Lazarus project is trying to achieve? Or are you now agreeing that the
> native LCL controls are just not good enough, or flexible enough, so
> you have to resort to custom drawn controls?

As I said, Lazarus gives you choice. You can choose for your project
what you want and you can mix native and non-native controls in the
same project. That's very powerful and unique, I don't know any
toolkit which offers that.

> So what is the Lazarus project going to do now? Wait to see what
> Embarcadero releases, then start the whole catch-up game again -
> always being two steps behind.

Does Embarcadero actually release anything new to the VCL? The only
thing in the last 10 years was unicode support...

And we are *not* playing catch-up, we introduced Unicode support
before the VCL...

> The IDE has unique features that
> make it a better product. So developers want to use it. LCL is a
> clone, always behind what Delphi does, cannot innovate or be original.

The LCL has unique features, it looks like you just don't know them.
Some examples:

WindowState: wsFullscreen
TDBNavigator Option to have focusable buttons (useful for mobiles,
accessibility)
TForm/TWinControl.setShape (one version receives a bitmap another
receives a TRegion)
TLazIntfImage
TIcon in the LCL is extremely powerful and *much* larger (in amount of
functionality) then the VCL equivalent
TTrayIcon <- We introduced it before the VCL did

-- 
Felipe Monteiro de Carvalho




More information about the Lazarus mailing list