[UI] Objects, Files, and Version History

Matthew Fulmer tapplek at gmail.com
Sun Sep 9 06:35:56 UTC 2007


On Sat, Sep 08, 2007 at 09:35:29PM -0700, tim Rowledge wrote:
> 
> On 8-Sep-07, at 6:33 PM, Matthew Fulmer wrote:
> >On Sat, Sep 08, 2007 at 05:39:08PM -0700, tim Rowledge wrote:
> >
> >>
> >>On 8-Sep-07, at 3:46 PM, Matthew Fulmer wrote:
> >>
> >>
> >>>
> >>>The only reason I might want code generation is to retain
> >>>compatability with squeak's limited fileout capabilities. I
> >>>would much rather just have the morph and leave it at that.\
> >>>
> >>Limited? Since you can dump any object to a file (hmm, are there any
> >>problems with recursively structured object? I've never stumbled
> >>across any) I'm not sure I can agree with that. Using ImageSegments
> >>can be a very fast way of loading complex structures.
> >>
> >
> >I didn't know you could dump arbitrary objects to files. Thanks
> >for mentioning that. I see Object>>saveOnFile now
> >
> >
> >However, by fileout, I really meant "snapshot in a Monticello
> >repository". I can easily snapshot and version code, but not
> >anything else using the supported tools that I know of.
> Good point. I don't know the answer to that either. I'd guess that it  
> wouldn't be to difficult to make MC handle binary files but it might  
> be harder to make sure the tools don;t go nuts; diffing binary files  
> is often pointless unless you decode them before the comparison. I've  
> cc:d Colin and perhaps he can offer some opinion?

Last I looked at Monticello 2 (about 3 weeks ago), it still only
models classes, methods, and traits, although in new and better
combinations as before, having similar capabilities as
ChangeSets. 

I don't think object serialization is a good way to preserve
objects, as static files are susceptible to format change and
compatability issues, but more importantly, files are dumb.
Smalltalk is about every object being a smart, individual
virtual machine, capable of sending, receiving and processing
messages.  Serialization turns off that machine and tries to
hook up life support to extract data from the machine. Why not
just turn the machine back on and ask it for it's story?

Objects want to be alive, and work best when turned on and
running live. Serialized objects are dead; they are not running
and cannot be queried. That is why I am looking forward to
Craig's object versioning system, kettle. It utilizes Spoon to
move objects between systems in a real-time negotiation of which
objects are needed to run a program right now. Changes and undo
can be done because you don't need a post-mortem binary diff
mechanism to re-construct the changes after they have happened;
each object is alive and can tell you it's life story; just buy
it a drink and ask it. 

Smalltalk isn't about source code, and it isn't about files. It
is about smart, active systems. Files are dead; they belong in
the cemetery. Let's bury them and really get the party started.

-- 
Matthew Fulmer -- http://mtfulmer.wordpress.com/
Help improve Squeak Documentation: http://wiki.squeak.org/squeak/808


More information about the UI mailing list