[lazarus] GTK or XLib or Whatever

Sebastian Günther sguenther at gmx.de
Wed Jun 30 04:48:58 EDT 1999

Sergio Kessler wrote:

> > I'm personally quite bored of this discussion. Do you really think it's
> > _that_ difficult to write a re-targetable component library, i.e. a CL
> > which supports whatever you want to?
> *NO*

ok, I really think it _is_ possible and we will do this, in KCL.

> But I've heard many people here to say:
> "we must work on gtk because it's multiplatform"
> and this is wrong, /wrong/, *wrong*


> YOU must deal with the multiplatform issue, not expect that the
> toolkit resolve it for you.

I'm expecting that the component library will solve most of those
multiplatform issues. Each platform has its own best-suited toolkit, so
we need an abstraction layer above those toolkits.

> and this can be done somewhat easily, in fact I've done it in
> my house, but stopped for lack of time.
> I've done something like:
> fcl/
>    gui/
>       /inc    -> interfaces and multiplatform code
>       /gtk
>       /gnome
>       /win32
>       /qt
>       /kde
>       /be
>       /motif
>       /<include your platform here>

This is quite similar to the structure of KCL:

> > Very intersting. IMHO the biggest problem of Lazarus is that there is
> > too much talk and too slow progress.
> I agree, but this come for the reasons above.

I personally think that it is better to start with only a limited group
of people and to add public discussions later on.

> because they started with the wrong idea, the very wrong idea
> look at the "code" if you want ...
> Absolutely tied to gtk and horribly structured.

That's the reason why we started with KCL this soon. At first it was
planned to add Qt and KDE support to FPC, but after the announcement of
Lazarus and some unresolved issues regarding the compiler we decided to
start with the GTK and Win32 targets.

> > Is this simple enough, in your opinion? :
> > [snip of pascal code]
> I was talking about the /gtk/ code (not pascal) vs. the gnome code
> needed to implement a showMessage() routine (60 lines vs. 3 lines)

I don't think this is important when you have a component library which
wraps those internals from you.

> and in the /long run/, when you have to do DB access, Corba access,
> media (audio, video, etc) access, desktop access, etc
> HOW do you do it with Gtk-only approach ? (or Qt-only ?)
> In the long run, you will =need= Gnome or KDE, no matter what you
> think, no matter if you like it or not.
> So _I_ think that going with the full toolkit from the begining
> will simplify things.

But it will limit you in a way. BTW:
- DB access has _nothing_ to do with desktop environments
- Corba support is only partly dependend on it
- Media access is usually independent from it
- Desktop access: Most applications won't need it

But, the main problem is, that there are at least three different groups
of people:
- KDE fans
- Gnome fans
- People who won't use any of them

I think a RAD IDE for FreePascal is _extremely_ important, especially
under Linux; and if you choose to support *only* KDE *or* Gnome you can
be sure to have about 2/3 of the people against you.

- Sebastian

More information about the Lazarus mailing list