Future of Haskell: GUI development

Axel Simon a.simon@kent.ac.uk
Wed, 10 Sep 2003 12:47:46 +0200


[This is a summary on the GUI discussion at the Haskell workshop/HIM, 
as announced by Henrik Nilsson]

The future development of GUI libraries for Haskell


The development of Haskell applications with a graphical user interface 
has long been complicated by the large number of mostly incomplete 
libraries. In spring of this year people tried to focus the development 
effort and came up with the idea of a Common GUI API (CGA for short) 
which should define an intersection of three major platform APIs 
(Win32, Gnome/Gtk and Mac OS X) and that addresses the requirements of 
the platform's style guide (or human interface guidelines). The process 
of defining this CGA is a major undertaking. The alternative is to use 
a readily available cross-platform API, like wxWindows, at the expense 
of creating applications that might violate a platform's style guide 
and the cannot make use of platform specific functionality. A quick 
poll at the Haskell workshop revealed that 1/3 of the people thought 
that the CGA approach is worthwhile, 2/3 thought that the 
cross-platform approach is adequate. Hence the CGA idea as it stands 
right now will not be pursued.

The discussions at the Haskell Implementor Meeting (HIM) yielded some 
interesting options (or compromises) that could help to target and 
unify the development effort of the different library maintainers. In 
particular we would like to

- focus development on wxWindows (in form of wxHaskell) as this 
cross-platform toolkit should be adequate for most needs
- move the programming model of Yahu (Attribute/set/get functionality) 
into the Haskell library hierarchy so that other (GUI) libraries can 
use it.
- exploit wxWindow's capability to extract platforms specific 
handles/objects. The goal is to use other libraries (like gtk+hs, 
gtk2hs, Mocca, etc.) if wxWindows does not provide the needed 
functionality.
- mention the names of the maintainers of each GUI library on the 
Haskell web site so that programmers can estimate how well-maintained a 
library is. Update these names regularly.

In case people feel inclined to still pursue the CGA idea, one of the 
following two routes could be taken:
- re-expose parts of wxHaskell in a way that forces the user to write 
applications that look and feel native on different platforms, i.e. a 
"Common GUI API on top of wxWindows"
- write a GUI Builder application for Haskell; it would surely make 
Haskell itself more attractive as a rapid development language (such a 
Builder could also cater for the look-and-feel requirements of the 
different platforms)

Please send any comments or critics to gui@haskell.org . All input (and 
development effort) is welcome.

Axel (on behalf of the GUI Task Force).