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