Testing the waters.

Rainer Joswig joswig@lavielle.com
Fri, 9 May 1997 09:39:31 +0200


At 9:48 Uhr +1000 9.5.1997, Chris Bitmead uid(x22068) wrote:

>You won't get portability from LispOS to other versions of CL in any
>case, because you won't have the POS ported to the other version of
>CL. And POSes are always very tightly integrated with the virtual
>machine and garbage collector, and application code.


If you don't define interfaces that will make your code
portable (as portable as you can), then you're doing something
wrong. I want Lisp code to be as portable as possible.


********************** MAXIMIZE PORTABILITY **************************


Define the system rigorously in layers and modules.
This is extremely important. Don't make the mistake
not doing this - your code will get unmaintainable, unevolvable,
big, complicated ... simply a mess.
Sometimes you will need to replace subsystems -
make it as easy as possible.


>You may get your existing CL lisp programs working on LispOS, but they
>won't do things the LispOS way, so they fall into the general category
>of how to get legacy applications working on LispOS.


I don't agree a bit with this posting.


If I have CL+TCP -> I get instantly CLX -> then I can start using
a lot of Lisp code. Files don't matter here a bit.

If I have CL+Threads+TCP -> I can get instantly CL-HTTP -> then
I can start using a lot of Lisp code. Files don't matter
here a bit.

I don't see at all why Franz's own web server (where can I get it?)
should be better than CL-HTTP.
If we can get a hand on it we can judge whether it is good.
Right now CL-HTTP is freely available (minus giving improvements
back to the developers - which is a good thing).
If you don't like something -> hack it up.
Which by the way also uses persistent object stores.

CL-HTTP on the Lisp Machine:
  White House installation uses Statice
  Statice is a OODB for Genera and Lucid CL
  The user/group substrate has an API which makes uses of Statice
  when available. Information about the documents are stored
  in Statice.

CL-HTTP on the Mac:
  Infostop from Digitool uses WOOD.

If you have an object store which makes all code *unportable*,
then this is a *really* bad thing. The tragic of Lisp was/is
unportable application code.

If the project leads to a common defsystem, a common definition
for threads, a common definition for a TCP/IP interface,
a graphics substrate, a persistent object store, a 3d API,
... - this should all be supported on the other Lisps that
would be a possible target.

If you are going to start a project where you even can't use
vanilla CLOS application code - good luck.


My tip is just: Use abstraction to get away from particular 
underlying layers. Make as few assumptions about how some
services works as possible.


Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041
Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202,
Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/