[Lazarus] Is Lazarus project in a downward spiral?

Michael Van Canneyt michael at freepascal.org
Sat Mar 6 16:51:55 CET 2010



On Sat, 6 Mar 2010, Juha Manninen wrote:

> 
> Hi,
> 
> Michael Van Canneyt wrote:
> 
> > It is a matter of resources. The design of the LCL is good.
> 
> > It's goal is
> 
> > - to look and feel native on all platforms.
> 
> > - At the same time it also aims to be Delphi compatible as
> 
> > much as feasible: porting a basic Delphi app to lazarus
> 
> > should be a fairly easy task.
> 
> >
> 
> > In my opinion, it succeeds in these goals. More and more so.
> 
> >
> 
> > Keeping the various widget-sets up-to-date is just a task that
> 
> > requires work and resources. And yes, there will be bugs in the
> 
> > process.
> 
> Lots of bugs, yes, because it is complicated.
> 
> But, that is not the main problem unfortunately. Those libraries have their own message notification mechanisms and mapping them to LCL
> messages causes weird errors occurring only with certain clib or x-org or window manager versions (or whatever). The QT combobox bug is a
> good example, it happens only in my machine and we still couldn't find the reason.

This is in the nature of bugs. I spent lots of time trying to figure out why
in my Delphi application, the toolbar works on Windows 95-98-NT-2000, but
fails on XP, Vista and Windows 7 with their 'native' theme. I also don't find
it. And that is on a single OS coming from a single manufacturer, who tries
very hard to be backwards compatible.

I appreciate that some bugs are hard to find. But you are wrong if you think
that rolling your own widgetset will guarantee you less bugs.

And the more people go in different directions, the less people will be 
inclined to fix bugs.

> If you look at the binding code (especially GTK2) and debug it, you soon start to question the sanity of its design.
> 
> The choice between widget libs is a nice idea, but I think the goal is too ambitious.
> 
> Please tell me why is it important to connect to many different MULTI-PLATFORM libraries from a system that already implements
> multi-platform support itself (LCL/Lazarus)? That makes multi-multi-platform. :-)

Because they are standard libraries on a unix system, and you are guaranteed to have a
native look and feel. an LCL library will never make it as a standard library for a 
very simple reason: it is written in Pascal.

Why do you think KDE/OpenOffice/Adobe Acrobat/Firefox developers do a lot of effort 
to make GTK apps look like Qt apps and vice versa ? Because they think - and rightly
so - that the whole system should have a uniform look and feel.

Try and sell a Mac application that does not adhere to the conventions on Mac. 
Good luck to the person trying...

> 
> There already are native Windows and Mac OS libraries for LCL. The missing piece is a native *nix library. (actully dedicated *nix
> library, there is no native one on *nix systems.)

GTK and Qt de facto ARE the native linux libraries.

> 
> > [...]
> 
> > But basing Lazarus' LCL on [fpGUI]: No, thank you.
> 
> Yes, I understand the reasoning. Actually the new *nix library doesn't need to map any existing library but implement a new one, tailored
> for LCL only.
> 
> The code would be copied shamelessly from fpGui, Fox Toolkit and other high quality libraries. They are open source after all.
> 
> I would bet that the whole *nix widgetset could be implemented with the same amount of code that BINDINGS for GTK2 require now.

By all means, go ahead. Prove me wrong...


> When such library works well and can be used for production code, then you could improve GTK- and such mappings. They would be more like a
> curiosity, to show people that "Hey, BTW, you can even map to these libraries if you want".

Maybe, but GTK works well NOW for production code. 
Yes, there is the odd bug here and there.

But your - as yet - imaginary system does not even exist yet.
So I prefer to work on GTK rather than wait for your system, and fix the odd bug here and there.

I bet that Graeme - given a clear notion of the differences between the 3 components - 
could have fixed the notebook issue that vexes him so much, in the time we spend arguing...

> --------
> 
> What did you think of my idea of different GUI-specific target modes for Lazarus 2.0? I myself feel it is an extremely cool idea!

It is already possible to do so.

Have a look at the examples/designnonlcl directory in Lazarus. It was created specially for such things.

Michael.




More information about the Lazarus mailing list