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

Sengan.Baring-Gould@nsc.com Sengan.Baring-Gould@nsc.com
Fri, 24 Jan 2003 16:17:49 -0500


Peter Achten wrote:

  (that Sengan said:)
> "...the library designers never used their toolkits in larger 
> applications..." True: I didn't, but other people have. Check out the 
> CleanIDE (by Diederik van Arkel):
> http://www.cs.kun.nl/~clean/About_Clean/body_the_clean_ide/body_the_clean_ide.htm
> and the beautiful Sparkle Proof Tool (by Maarten de Mol):
> http://www.cs.kun.nl/~maartenm/Sparkle/

Actually I mentionned Object I/O as the only library with which larger scale
applications were written:

| 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.

------------------------------
Another misunderstanding I think:

> I don't agree with the "While programming at the IO level works, it does not
> give one much of an advantage versus programming in C". Many proposals have
> been written that make use of the  elaborate type system of functional languages
> to glue correct GUI programs; many approaches use functional language features
> do construct well-typed and well-structured Domain Specific Languages.

By Programming at the IO level I meant stuff like:

  win <- windowNew WindowDialog
  windowSetTitle win "About BoolEd" 
  containerSetBorderWidth win 10
  --
  frame <- frameNew "The Boolean Editor"
  frameSetShadowType frame ShadowEtchedOut
  --
  label <- labelNew "..."
  labelSetLineWrap label True
  labelSetJustify label JustifyFill
  containerAdd frame label
  --
  but <- buttonNewWithLabel "Ok" 
  buttonSignalConnectObject but (ButtonClickedHandler widgetDestroy) win
  --
  box <- vBoxNew False 0
  containerAdd win box
  boxPackStart box frame True True  10
  boxPackStart box but   True False 10 
 
Not the Object IO style of building a layout with :+: combinators.