Newsgroups: comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!nntp.club.cc.cmu.edu!news.mic.ucla.edu!unixg.ubc.ca!vanbc.wimsey.com!scipio.cyberstore.ca!math.ohio-state.edu!howland.reston.ans.net!EU.net!uunet!olivea!charnel.ecst.csuchico.edu!csusac!csus.edu!netcom.com!thinman
From: thinman@netcom.com (Technically Sweet)
Subject: Scheme GUI support
Message-ID: <thinmanCxMJ6q.MI7@netcom.com>
Organization: International Foundation for Internal Freedom
References: <1994Oct8.115151.17399@news.cs.indiana.edu> <hbakerCxEz5z.CEF@netcom.com> <CxKA9E.CHp@cerc.wvu.edu> <hbakerCxL9vx.AAx@netcom.com>
Date: Thu, 13 Oct 1994 18:25:38 GMT
Lines: 40

hbaker@netcom.com (Henry G. Baker) writes:

	[ other deleted ]

>I'd love it if someone would produce a really good
>paper/monograph/book which shows how one could really program a GUI
>truly _elegantly_ in Scheme using closures, continuations, etc.  I can
>readily believe that your GUI is better, but I'd love to see a really
>good and compelling description, complete with pretty pictures, etc.

	[ other deleted ]

>As you no doubt already know, there are serious problems trying to integrate
>the concept of continuations with multiple threads.  I haven't studied this
>issue nearly as much as some people, but I still have to believe that there
>is something more elegant than what I have seen proposed so far.

Scheme really does need some sort of OS interface extension for
doing graphics and networking nicely.  A new kind of file I/O
port where creation takes a random set of arguments makes 
sense.  One type of argument set would make various kinds of
graphics entities, another would create network ports.

There would be the official graphics argument set which does generic
2D graphics things, and OS-specific sets which let you do spiffy
Windows, Mac, or X apps.  But the pan-OS argument sets are very
important: if I write a Scheme program, it should work anywhere.

One problem with integrating this is that graphics and networking
like to work in thread/continuation modes, and the system should
provide transparent support for activating continuations if
a continuation is waiting on this or that port.  To do this well
requires adding explicit concurrent controls to Scheme.
Otherwise it's going to be klunky, and people won't use it.

-- 

Lance Norskog
thinman@netcom.com
Artisputtingtogether. Art  s th ow n  aw y.
