Subject: Re: What Lisp needs to beat Java, etc.
From: rpw3@rigden.engr.sgi.com (Rob Warnock)
Date: 26 Nov 2000 02:38:33 GMT
Newsgroups: comp.lang.lisp
Message-ID: <8vpt39$24936$1@fido.engr.sgi.com>
Jochen Schmidt  <jsc@dataheaven.de> wrote:
+---------------
| So why not building a GUI-Server in wxWindows - which would run nice on 
| win32, Linux(Motif), Linux(GTK) and so far I know on BeOS and MacOS too.
+---------------

This is exactly why the Rice PLT group chose wxWindows for their
"MrEd" <URL:http://www.cs.rice.edu/CS/PLT/packages/mred/index.html>
GUI application toolkit (upon which the "DrScheme" development & teaching
environment is built). MrEd runs on all of Windows 95/98/NT/2000, MacOS,
and Unix/X (including Linux here as a "Unix").[*]  It provides:

	- A windowing toolbox for creating windows and menus 
	- A drawing toolbox for drawing to windows, bitmaps,
	  and printer devices
	- An editor toolbox for creating multimedia editors 

	MrEd's GUI toolbox is integrated with a thread system.
	MrEd dispatches each GUI event to the handler thread via
	synchronous (single-threaded) callback procedures, but
	MrEd also supports multiple eventspaces, which permit
	asynchronous (multi-threaded) event handling among
	different sets of windows. 

MrEd's underlying Scheme engine, "MzScheme", provides a fairly typical
interface to TCP/IP networking, so hooking a Common Lisp application
to a MrEd-based GUI over sockets should be relatively straightforward.

The *real* question is going to be the protocol between the CL application
and a MrEd-based GUI. I don't mean the syntax -- you can certainly use
S-exprs & READ [though one would of course want to stick to the common
subset of the CL & Scheme S-exprs syntaxes] -- I mean the semantics.
There's the inevitable question of trading off simplicity of interface
(which many presume to equate with portability, though that's really a
*different* issue) versus exposing the full functionality (or most of it)
of the backend GUI. Look at this and you'll see what I'm talking about:

	<URL:http://www.cs.rice.edu/CS/PLT/packages/doc/mred/index.htm>

The good news is that there's a lot more than Tk there.
The bad news is that there's a lot more than Tk there.  ;-}  ;-}

+---------------
| I would prefer a very simple approuch like LispWorks CAPI (or simpler
| for the beginnigs). IMHO if we concentrate on simplicity we could
| have it in _very_ short time.
+---------------

Suggestion: Start by defining the protocol. Then publish it for comments.


-Rob

[*] While MzScheme itself does run on BeOS [and even on "bare" x86
PCs, as a kernel based on Utahs' "OSKit"], unfortunately MrEd doesn't,
at least not as distributed. If, as you say, wxWindows *does* run on
BeOS, it might be possible to port MrEd fairly straightforwardly
(though note that the wxWindows which MrEd uses has diverged somewhat
from Julian Smart's original version).

-----
Rob Warnock, 31-2-510		rpw3@sgi.com
Network Engineering		http://reality.sgi.com/rpw3/
Silicon Graphics, Inc.		Phone: 650-933-1673
1600 Amphitheatre Pkwy.		PP-ASEL-IA
Mountain View, CA  94043