[GUI] Re: Gtk and Object I/O

Simon Peyton-Jones simonpj@microsoft.com
Fri, 24 Jan 2003 16:35:35 -0000


| > Peter Aachten goes further.  Based on the Clean group's experience,
he
| > thinks we can not only define a satisfactory (A), but also define a
| > lower-level interface (expressed in the C language) that
| > 	suffices to support (A)
| > 	and yet contains no target specific code

I phrased this badly. What I meant was this.  Let's call the lower-level
interface (L). =20
Let's call the thing we are mapping to the "target".  A target is either
a portable library like GTK, or a native UI platform like Windows. A
target is something we don't implement.

The goals of (A) are:
	Reasonably easy for programmers to use
	Programmer's interface does not change across targets
	Rich enough to be useful

The goals of (L) are
	Reasonably easy to implement (but maybe less easy to
		program with)
	Programmer's interface (from "above") does not change
		across targets
	Rich enough to implement (A)

As I understand it:
	ObjectIO and Daan's Graphics.UI.GIO are examples of (A)

	Daan and Krasimir's Port is an example of (L)

When I said "contains no target-specific" code, I meant that the code
that implements (A) using (L) is not target specific.  The
implementation of (L) will certainly be target specific.

You are right that (L) does not need to be written in C.  Indeed there
might be many implementations of (L): some which are entirely in Haskell
(perhaps implemented by you), others written mostly in C (using existing
libraries).

I know little about particular UI libraries.  My suggestion, though, is
that we focus discussion on what (A) and (L) should look like, rather
than on how they should be implemented.

Simon