From: Steve Clark
Subject: Re: lisp environments summary
Date: 
Message-ID: <339@siemens.UUCP>
In article <····@vaxb.calgary.UUCP> ·······@calgary.UUCP (Kevin Jameson) writes:
>References: <···@umbc3.UMD.EDU> <···@siemens.UUCP>
>Editing Lisp functions as text and then loading them into the environment
>is also a method with many advantages.
>
>Stallman addresses this exact issue in Interactive Programming Environments
>(Barstow/Shrobe/Sandewall, McGraw Hill 1984).
>
> 1. It allows user-specified indentation
> 2. Comments are easily stored and formatted as the user likes them.
> 3. Code need not be properly structured (ie, syntactically correct)
> 4. Balanced editing functions (eg. balance-parens-backward) can 
> 5. It supports extended syntax mechanisms (eg, the quote
>    facility) which normally destroy the one-to-one mapping
> 6. It allows the editor to be used for other languages, not just
> 7. It allows smooth changes to operational parts of the Lisp 

1. I hate having to do my own indentation, and when I don't have to, I never
find the automatic indentation bad enough that I want to override it.
2. does not have to be a big problem - so a structure editor should handle
several kinds of comments, and you pick the style you prefer for each one.
3. Especially in Lisp, I think this is a no-op.
4. These are useful in other languages because the other languages don't
have structure editors of their own.
5. I agree with 5 100%!  Except that my conclusion is to fix the structure
editor, not abandon the approach.  It CAN be done.
6. There are research structure editors out there that do different languages -
I think this big win for Emacs will no longer be unique to Emacs.
7. I don't really understand this point.

I think structure editors must have come a long way since 1984.  I know the
Interlisp-D structure editor has.

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

From: Barry Margolin
Subject: Re: lisp environments summary
Date: 
Message-ID: <13427@think.UUCP>
In article <···@siemens.UUCP> ·····@siemens.UUCP (Steve Clark) writes:
>In article <····@vaxb.calgary.UUCP> ·······@calgary.UUCP (Kevin Jameson) writes:
>>References: <···@umbc3.UMD.EDU> <···@siemens.UUCP>
>>Editing Lisp functions as text and then loading them into the environment
>>is also a method with many advantages.
>>
>>Stallman addresses this exact issue in Interactive Programming Environments
>>(Barstow/Shrobe/Sandewall, McGraw Hill 1984).
>> 7. It allows smooth changes to operational parts of the Lisp 
>7. I don't really understand this point.

I think this one assumes that the changes to structures and functions
are made as you type them.  This would make it difficult to edit
functions that are part of the Lisp terminal interface.  If you need
to make two changes to a function that is part of the keyboard driver,
in between those two changes the keyboard driver ceases to work and
you can't make the second change.  Even if changes are only reflected
in the environment when you finish editing a function, this means that
you can't make such changes if they require coordinated changes to
multiple functions.

This argues just as much against structure editing as it does against
the single-address-space style of Lisp Machines.  However, I find the
single-address-space style so much of a win that I think it is worth
the potential problems you can have.

---
Barry Margolin
Thinking Machines Corp.

······@think.com
seismo!think!barmar
From: Steve Clark
Subject: Re: lisp environments summary
Date: 
Message-ID: <345@siemens.UUCP>
In article <·····@think.UUCP> ······@sauron.think.com.UUCP (Barry Margolin) writes:
>I think this one assumes that the changes to structures and functions
>are made as you type them.  This would make it difficult to edit
>functions that are part of the Lisp terminal interface.
>
>This argues just as much against structure editing as it does against
>the single-address-space style of Lisp Machines.

It does not argue at all against structure editing.  It is a point against
editing the current function definition, as opposed to a copy.  (Of course,
the only languages I know of where a text editor could possibly edit the
current function definition are Jovial and Basic.)  In Interlisp it is
easily possible to set yourself up with a little facility to edit copies
of functions and install all the copies simultaneously.

Steve Clark
(maybe ·····@siemens.com or princeton!siemens!steve, maybe not)