From: Steve Clark
Subject: Re: lisp environments summary
Date: 
Message-ID: <331@siemens.UUCP>
In article <···@gort.rutgers.edu> ·······@gort.rutgers.edu (Tom Fawcett) writes:
>In article <···@siemens.UUCP> I wrote:
>
>     The correct way to deal with files and storing your lisp code is
>     essentially the way Interlisp does it.
>
>Spoken as if opinion were fact.
Of course!  MY opinions ARE fact! :-)

>     You edit your functions in Lisp, [...]
>     a file is treated as a database of definitions [...]
>
>The Symbolics/Explorer approach is to give you a powerful set of tools
>linking the text editor to the lisp environment.  
>
>     Unfortunately, CL has the wrong idea of files & editing somewhat wired
>     into it. 
>
>As I've said: different, not wrong.

and a "good" assembly language gives you a powerful set of tools and
features like data structures, looping macros, etc.  Does that make "C"
just different, not better?

>The problems come when you try to do anything
>even slightly unusual.  The D-machine facilities *require* that you do all
>file/code manipulations through them; if you ever want to do something out
>of the ordinary, you have quite a hassle, which is exacerbated because all
>the utilities talk to one another.

The correct hassle is not the hassle of doing what you want in
spite of the tools, but rather figuring out how to do it WITH the tools.
I worked with Interlisp-D for 2-3 years before I stopped having occasional
hassles figuring out how to do what I want WITH the tools.  The documentation
has improved, but I still hold this against Interlisp.

>However, it seems that Common Lisp has
>adopted the Symbolics/Explorer paradigm, so chances are that it will
>eventually dominate.

My problem is that Common Lisp did not have to adopt either paradigm.  The
designers simply forgot to allow the possibility of anything other than the
old files-as-characters-from-the-keyboard paradigm.

From: ······@think.COM (Barry Margolin)
)I also wonder whether the Interlisp database is as powerful as the
)Common Lisp LOAD style.  [...] it can contain immediate code to be executed.

Interlisp can too.  You can have forms to be executed at load time, or
when you write the file, or to be saved on the history list; you can say
other files need to be loaded.

)  If there is a way to do it, then
)what's the difference between that and LOAD?

For example, you can tell the system to look at a file, but not actually
load it.  Then when you want to edit a function in that file, the system
selectively loads just that function definition.  I guess you can do
approximately the same thing with some Emacs/CL environments, but it's
just a lot less kludgey a concept.  (I DO NOT claim that Interlisp is
not kludgey - but a number of its concepts are much cleaner and more advanced
than CL, and CL didn't need to preclude them.)

)How does Interlisp know which definitions are important to save?

It asks you where to put all of the new definitions.  This is the most
painless part of the system, too.  You can name a file, you can say
to put it near some other definition (i.e. on the same file), or you can
say nowhere.

)I constantly
)create little temporary functions and variables while debugging.
So you put those into a "junk" file.  Then if your system crashes or
you decide three weeks later you need the same debugging function, you
can get it back - but it doesn't clutter anything up.
)---
)Barry Margolin
)Thinking Machines Corp.
)
)······@think.com
)seismo!think!barmar

Steve Clark
princeton!siemens!steve
·····@siemens.com