CLIM mail archive
[Prev][Next][Index][Thread]
Buffer against the winds of change
We are VERY concerned about portability because we owe it
to our sponsor (NSF) and ourselves to have as much portability
as possible. But I find it hard to make plans, not knowing
what the picture is (maybe it's in a lot of flux?).
All I've heard is that Franz's CLIM is now based on the Symbolics
implmentation. That's why I'm confused -- should be do further
work using the ILA system or wait or switch.
Would appreciate advice/discussion from all you CLIMmers who
must be facing some of these same decisions yourselves.
with bated breath,
bob futrelle
There is a fairly simple approach to CL software engineering
that we are using as our buffer against the winds of GUI change.
We have defined a compatibility package called DWIM which provides
a stable syntax for our graphical user interfaces. Here is
a snippet of the code. (#-clim is implicitly a reference to
Symbolics' Dynamic Windows)
(defun change-size (window new-width new-height)
#-clim (send window :set-size new-width new-height)
#+clim-0.9 (ci::change-size window new-width new-height)
#+clim-1.0 (clim::window-set-inside-size window new-width new-height))
It is not our goal to write yet another interface management language,
but rather to provide a tool for easing the portability problem. Generally,
the name and syntax of the DWIM function follows Dynamic Windows, not
because we think DW is better, but because most of our existing
applications use this syntax. Therefore porting our applications
largely amounts to removing package prefixes. The exception to
this rule is where Dynamic Windows provides a "message" rather than
a function, in which case we use the CLIM 0.9 syntax.
When CLIM 2.0 comes out, we will add #+clim-2.0 to DWIM where needed.
The amount of code needed to cover the majority of functionality
is surprisingly small. We can jump back and forth from one GUI to
another simply by recompiling the source code.
Jeff Morrill
jmorrill@bbn.com
0,,
Main Index |
Thread Index