[GUI] Re: Know you backends

Wolfgang Thaller wolfgang.thaller@gmx.net
Thu, 30 Jan 2003 17:11:16 +0100


> This actually brings me to another issue I have been wondering about.
> Why don't we use the GTK library as our portable GUI library directly?
> I may have missed some discussions about this, but if it is a really 
> portable
> library, we can use the fruits of their labor. (Of course, it does 
> need to
> give a native look and fool, I wonder whether GTK does that?)

GTK currently does not give native look on Mac OS. I'm convinced that 
it will never provide native feel.
The reason is that as a complete and therefore complex GUI toolkit, it 
makes too many assumptions about how the UI should behave.
I'm not saying that GTK is bad, I'm just saying that it is not capable 
of providing native look and feel on all platforms. I know of no 
full-featured library that really achieves this goal.

However, Port is not as "full-featured" as GTK, nor will it be in the 
forseeable future. A simple library like Port can probably achieve 
enough abstraction to bridge the differences. It will (hopefully) be 
possible to write programs with simple user interfaces that look and 
work well on all platforms.

We shouldn't try to write a perfect full-featured cross-platform 
library. Haskell is a cool language, but if nobody has achieved that 
with any language (IMHO), why should we?
There is definitely room for a good GTK binding and for a good 
high-level library based on that. But it can never be a "standard GUI 
library for Haskell" because it just doesn't work _well_ on all 
platforms (in order to say that a toolkit works well on MacOS, I 
mustn't easily recognize an application as "written using toolkit XY" 
when I use the Mac version of the application).
On the other hand, a "standard cross-platform GUI library for Haskell" 
will never provide everything you would find in a platform-specific or 
not-quite-native-looking GUI library. People will choose what they need 
for their current task.

Cheers,

Wolfgang