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

Reply via email to