
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