Dear all,

I'm not an active developer of Lazarus (hope to use it in the future) but how it is about the following idea:

step 1: addition of a priority index in the list of open issues, e.g.
        high = necessary for version 1.0
        middle = necessary for later versions
        low = just nice to have also
step 2: freeze the status of all developments with middle and low priority and concentrate all effort for the actions with high priority
step 3: soon release a version 1.0

This is transparent and brings lazarus in an upward spiral imho.

Thomas

Am 06.03.2010 um 13:51 schrieb Juha Manninen:

Hi!
> Perhaps we should have two branches, one for a common GUI for multiple > targets, and one with dedicated components (and designers?) for distinct > targets. The latter approach would use thin wrappers around the native
> components, so that the components themselves will not be subject to
> development efforts at all. This IMO will be the most attractive
> solution for commercial developers, stable and with a clear goal. With
> proper separation between GUI and worker code it should be easy to
> implement multiple widgetset specific GUIs for every application, if
> desired. It also would use the widgetset-specific layout management in
> the first place, with only stable extensions as conforming to the
> widgetset-specific procedures.
I have had the same ideas, this kind of cleared my thoughts.
*** Now, the future goals for Lazarus: ***
1. Stabilize the current features for 1.0 release.
  Nothing special here, I think everyone agrees.
2. Make different GUI-specific target modes for Lazarus!
  Three such modes would be:
a) LCL-mode, the current (more or less Delphi compatible) interface. It would have only (light?) native widget bindings like Windows and MacOS and a future *nix widget binding (maybe based on fpGui). GTK* and QT bindings would be dropped. b) QT-mode. This would implement QT-lib classes, methods, properties and signals in a thin, one-to-one mapping. The programs would not be Delphi compatible but they would be more like QT compatible, just using pascal instead of C++. This mode would compete with dynamic language bindings for QT. c) GTK2-mode. Again, a thin mapping for GTK2. However, it could improve the weird programming model of GTK2 and be fully object oriented.
-------------
Those modes would implement different component sets and also different (or modified) form designer. It is not a small task and so the target is Lazarus 2.0 (many years...). However, this is a design change that must be done because the current binding design sucks, at least for big GTK2 and QT libraries. This is a known issue but nobody has suggested how to fix it except for hacking more and adding more spaghetti code. I just tried to find a bug in QT combobox which occurs in my machine but not in QT-bindings maintainer's machine. See Lazarus-QT list for reference. The fact is that much of the control's behavior is re-implemented in the binding code to make it behave just like LCL has it (separate droplist and edit controls re-implemented).
And QT-bindings are in good shape, GTK2 is worse...
This design is brain-dead! Please ask any SW-design expert if you don't agree. Note: I am not criticising the binding maintainers. They have done a good job given the brain-dead design goals. My experience with programming is that a design problem should be fixed as early as possible. If you build more features on a flawed base then you need to make more ugly hacks and the problems accumulate. You must change the design, refactor, change some more and refactor again... It may feel like waste of time at that moment but it pays off at the end. It makes the difference between a high quality SW and an "almost good" or "so-so" quality SW.
Regards,
Juha Manninen
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to