[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: LFM + LFSP = LFE?
At 11:12 AM -0700 6/12/03, Avi Bryant wrote:
>On Thu, 12 Jun 2003, Scott McKay wrote:
>> (*) It was not a goal for the Dylan environment to be
>> programmable, so a user could not do this programmatically.
>> You could do it by going into Deuce (its editor), editing
>> all the subclasses of <Foo>, and then executing a count
>> lines command in the "composite" buffer created by the
>> "edit subclasses" command. Of course, you could also
>> edit the composite buffer and save the changes, which
>> would write everything back into its proper home.
>By the way, Scott, this sounds very cool. I like the idea of a composite
>buffer that remembers the origin of each of its chunks - I might try to
>implement that in Squeak. Are the chunks visually separated at all? Do
>you have any screenshots?
Deuce draws a thin light-colored divider line between
each definition, annotated with definition's name. The
name is a target that you can click on to get a menu of
operations on the definition as a whole.
The "composite buffer" idea has some interesting user
model "gotchas". For example, Deuce maintains an Emacs-
style undo/redo history. What should the history hang
off of? The definition? If you do that, when you are
editing a buffer with lots of definitions and there is
a command that changes more than one definition, you have
to go to each definition to undo/redo. On the buffer?
What happens, then, if the same definition is in multiple
buffers? I settled on maintaining it on the "container"
object for the definition's home file and then doing a
bit of magic in composite buffers, since that seemed to
have the most intuitive behavior with the fewest gotchas.
I'll see if I can persuade my home machine to spit out
some screen shots.
>It's too bad Fun-O never did a Linux port of the environment (I know they
>did an alpha port of the compiler), I'd love to have a chance to play with
>it more extensively.
What geographic location are you in? I could give
you a demo if you are in the MIT area. I think that
the FD environment turned out quite well -- it's an
interesting hybrid of ideas from the Lisp machine,
ideas from Smalltalk, and a bunch of our own innovations.
It's too bad it never got the chance to mature.