[racket-dev] using Racket to build an image-based Lisp: feasible?

From: Eli Barzilay (eli at barzilay.org)
Date: Tue Mar 5 13:12:30 EST 2013

A few minutes ago, mikel evins wrote:
> On Mar 5, 2013, at 11:55 AM, Eli Barzilay <eli at barzilay.org> wrote:
> > An hour and a half ago, Matthias Felleisen wrote:
> >> 
> >> I have empathy for your perspective, because I have worked with
> >> images and -- at the time -- found them useful.
> > 
> > I think that *most* of Mikel's long post was about the advantages
> > of having a live REPL,
> Then I didn't express myself clearly enough. Sorry about that.

So let me clarify a bit more (though this is obviously my very
subjective opinion)...  I loved doing the kind of live-REPL-based
debugging that you're talking about, but every once in a while things
would get messed up in a way that made it much easier to just restart
the whole thing.  I've also used images, but the main thing that
bothered me about them is that they're heavily oriented in the other
direction: instead of restarting the application from scratch where I
know that the code is only what's in the source, it encourages
continuous tweaking of the live REPL where you continue to tweak and
try to fix it to later dump a new image.

Eventually, I concluded that images are a cute thing in theory, but in
practice they were too limited in the reduced ability to deal with the
source code.  Maybe Emacs is a good example of this: even though it's
image-based, developement happens on the source, with the image
feature being pushed to just another step in the compilation chain.

(Disclaimer: the systems that I used with images were the common ones
where there's no support for editing the live source -- not the fancy
lisp machine or smalltalk things.)

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.