Newsgroups: comp.lang.smalltalk
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!vixen.cso.uiuc.edu!uwm.edu!lll-winken.llnl.gov!uop!pacbell.com!amdahl.com!amd!netcomsv!slcgate!servio!servio!marcs
From: marcs@slc.com (Marc San Soucie)
Subject: Re: Persistence?
Message-ID: <marcs.793045840@servio>
Sender: news@slc.com (USENET News)
Nntp-Posting-Host: servio
Organization: Servio Corporation, Beaverton OR, USA
References: <3h7uba$qav@tpd.dsccc.com> <3hbhv6$94h@news1.delphi.com>
Date: 17 Feb 95 18:30:40 GMT
Lines: 37

jsutherland@BIX.com (Jeff Sutherland) writes:

> Robert Lingenfelter (rlingenf@imtn.dsccc.com) wrote:

> > This may lead to a greater depth than I can fathom(weak pun!), but I would
> > like someone to explain (define) what persistence of a object really means.

> A persistent object is an object that continues to exist after the
> application that created it ceases to exist.

I'm actually going to differ slightly with this definition. This is
generally true of C++ applications, but not necessarily of Smalltalk
applications. Because Smalltalk operates on an "image" of its object space,
and because that image is usually stored in a file, if a Smalltalk
application hangs objects off some well-known object, and then it or user
of the application saves the image back to its file, one could genuinely
say that the objects are persistent.

At the same time, there are bazillions of non-persistent objects created
while a Smalltalk application is running - interim results, strings created
on the fly, sets used for temporary aggregations, and the like. These do, 
in fact, go away when the application terminates. Or when GC happens.

For Smalltalk applications, the term "persistence" is something of a red
herring. A more useful term would be "sharing". Attaching a separate object
database to a Smalltalk image does more than just make objects
"persistent". It allows other Smalltalk images to access those same
objects, and provides transaction semantics for arbitrating potentially
conflicting uses of those objects.

So don't ask how to make Smalltalk objects persistent. That's easy. Ask how 
to share them with other users. That's much harder.

    Marc San Soucie
    Servio Corporation
    Beaverton, Oregon
    marcs@slc.com
