Charles Fiterman wrote:
Slices connects well with another idea which I call colored glasses.
Given colored glasses on an object your changes to the object go to the colored glasses. To you it looks like you have changed the object but to other viewers the object remains constant.
[more glasses examples]
While I understand the advantages of your idea, it feels too "magic" for my taste. It goes in the exact opposite direction of persistent objects where the saving of state to secondary store is invisible. Most novices have a hard time dealing with the open/save commands so I doubt they would find colored glasses very easy to grasp.
This connects well to slices. A slice is a kind of colored glasses. Changes stop at the slice. They only go to the object at commit time.
That is one way to do it. Another is to automatically commit every change and have a way to undo it for the rare cases where you need it.