[GUI] Towards a low level specification?

Simon Peyton-Jones simonpj@microsoft.com
Thu, 20 Mar 2003 08:49:14 -0000


| So, I ask to everybody: would it be right to provide a working
low-level
| interface, in the IO monad, even if it sucks completely, call it "the
| CGA core", and ONLY THEN think about issues as initialization syntax
and
| a nice way to handle local state?

I think it makes sense to have a clear picture of what the
*programmer's* interface will look like, and then design the underlying
core to support it.  Or, perhaps to do both at once.  If you do the
low-level stuff first, you may find it just doesn't support any decent
mid-level interface nicely.  (The reverse is also true: one might design
a programming interface that is so convenient it's just
unimplementable.)  After all, the mid-level interface is the goal; the
low-level stuff is just a means to that end.

However, its true that the fine details of the mid-level interface are
not so important (what functions, with what names); it's just the
architectural features that matter.

| A related issue is that, ideally, the common API should start at as
| low a level as possible, so that as much code as possible only needs
| to be implemented once rather than separately for each back-end.

Indeed so; there is another reason to keep clear sight of the mid-level
goal.

Simon