[GUI] Proposal Proposal: haskell-gui addendum to haskell

Sengan.Baring-Gould@nsc.com Sengan.Baring-Gould@nsc.com
Wed, 22 Jan 2003 13:21:36 -0700 (MST)


>   I believe that haskell would have great benifit from
> a platform independant specification for a graphical
> user interface module or set of modules.  I've been
> blessed with a lot of time on my hands so I'd be
> willing to organize this project if needed.

I agree this is a big hole in Haskell's library support.


IO/Higher level interface
-------------------------

Haskell has a lot of high level GUI toolkits/proposals
(ObjectIO/Haggis/Fudgets/Fran/etc) and a number of IO
level interfaces which are more or (usually) less maintained.

While programming at the IO level works, it does not give one
much of an advantage versus programming in C, in sharp contrast
to most other Haskell programming.

The diversity of high level solutions which differ totally in
outlook ("express the widget as a datastructure" versus
"everything is a composition of functions") gives the impression
that the library designers never used their toolkits in larger
applications which would have made any rough edges painfully obvious.
It seems therefore that a lot more work needs to go into this field
before we know what a good high level Functional GUI toolkit looks like.
Contrast this with more mature fields such as pretty printing,
parsing, etc where there are many solutions all following the same
ideas.

Therefore while I would like to see a higher level interface than
currently what seems best to me (a binding to GTK), it seems unlikely
that this project will resolve that question completely.

Perhaps the best would be to use an Object-IO like interface
with mvars as proposed by Simon Peyton-Jones, simply because it's
higher level than raw gui-calls and the Clean folks have used
it cross-platform in a few real apps.

SWT
---

I have seen many positive comments about IBM's SWT which
works on the following platforms:

aix/motif 
hpux/motif 
linux/gtk 
linux/motif 
linux/qt 
macos/carbon 
qnx/photon 
solaris/motif 
win32/win32 
win32-ce/win32 

It's a java binding to a native interface layer.
Perhaps the fact it is architected as a binding could ease
the creation of a similar Haskell binding which would work
on all those platforms.

http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/dev.html

Sengan