[GUI] Re: Know you backends (was: Re: Portable GUI levels)

Daan Leijen daanleijen@xs4all.nl
Mon, 27 Jan 2003 00:21:07 +0100


Axel wrote:

> That is why I proposed to craft an Object I/O interface which enables
> programmers to write GUI application with a native look and feel albeit
> with a reduced functionality

I am also in favor of a medium level GUI interface. If I gave another
impression, that is my fault. 
 
> Yes, but in my point of view this should be a medium level API like Object 
> I/O, a bunch of IO function is doomed to be defined by the underlying 
> backends. This certainly holds true for the Ports library.

The (Clean) ObjectIO library actually consists of two layers, an (A) 
and (L) part. Given their success, this proves that is certainly possible
to define a decent (L) layer, on top of which a medium level API is built.
Actually, Port is closely modelled after the low-level object IO interface.
The "low-level" is not so low-level as you may think. It is rather the 
core medium-level functionality without any utility functions or abstractions.

Again, I feel that we actually agree on all this topics. I am not a native
speaker, so it may be that I am not always using the right words for 
expressing myself. Sorry for that, but I am doing my best :-)

> You cannot define a common abstraction without looking at all the
> implementations you have to do. I think we want three backends:  Win32,
> Gtk and Aqua. So we need to look at all of them before we define the
> interface.

You are right. I am not advocating that Port is the "right thing" or that it
is already mature. I do not have a personal prejudice or something towards 
Port just because I have worked on it. (I am currently trying to finish my
thesis, so I won't be working too much on it for now :-). Port is certainly
not the greatest interface or something. If someone defines or proposes
something better or more mature, I am all in favor of adapting that.

The reason for mentioning Port, is because I believe that it may be 
a good starting point towards a concrete low-level API. Maybe we
can use it directly, maybe the GUI task force can use it to propose
a standard GUI API. 

> I think Wolfgang will have a hard time making a sensible port of Ports to Aqua. 

If Wolfgang continues his quest, I am sure that he will find many 
deficiencies and hopefully Port will change accordingly. This is the whole
point off course: Port is still small and flexible, and can easily change
when we learn from our mistakes.

Maybe more knowledgeable people about UI's will come up with a much
better interface than Port provides -- and that would be great!
Maybe others have the knowledge or man-power to define a medium level
GUI directly for multiple platforms. However, till that moment, we might
be better off trying to work with resources that we have, and use an
evolutionary approach to building a portable GUI library.

All the best,
    Daan.
 
> Axel.
> 
> 
>