On Mar 5, 2013, at 1:39 PM, Ray Racine <ray.rac...@gmail.com> wrote:
> Larceny (a Scheme) supports images. I had another dance with them awhile > back playing around with Gilad Bracha's Newspeak. I hear the Dart folks have > debated support for platform independent images of Dart programs to be served > out for executing in Chrome. They'll probably do it. They are certainly > experimenting with the idea. > > The problem I hit with images was knowing the state of the state of the image > and ability to recreate that known state if necessary upon loss of an image. > > With Typed Racket, immutable structs etc. I really do focus on writing > pragmatically Functional code, in the sense of referential transparent code. > As a result there is very little state to capture other than exploratory > interactions at the top level or within a namespace via the REPL. Those > explorations I'm more than happy to throw away as I've lost track of the > mutating sequence of steps I've been binding in there anyway. > > How much value is there in creating an image of a purely functional program? > How far from a persisted image is the persisted code? > > Compare and contrast with an OO language like Smalltalk or Newspeak which are > encapsulating state and evolving that state. Snapshotting the current state > of that evolving state in a persistent image has more utility there I think, > modulo, the mentioned issue of a perfect understanding of the current state, > and confidence in a 100% reproducability, back to that state. > > With Git, for example, one has very granular state of source code evolution > and given a primarily purely Functional code base, the source code offers a > fairly close approximation of an image. > > At the function/procedure definition level incremental compilation at the > REPL is a bit more of loss for me. But I'm finding that is also lessening. > These days (re)launching a REPL into a fresh namespace is almost immediate. If you don't benfit from image-based programming, then you don't. I benefit from it enough to be willing to build the feature for myself if I have to. _________________________ Racket Developers list: http://lists.racket-lang.org/dev