[MUD-Dev] MUD Design Fundamentals (Was: Looking for

coder at ibm.net coder at ibm.net
Sun Aug 31 12:04:19 CEST 1997


On 29/08/97 at 03:47 AM, Ola Fosheim Gr stad <olag at ifi.uio.no> said:
>Jeff Kesselman wrote:

>> engine ala Cold or Smalltalk.  This is akign to the 'realtional databes"
>> oidea where everythitgn is stored as tables, ebven the sturucture of the
>> data itself.

>I don't think of this as persistence. By persitence I mean something
>like handing a reference to an object and tell the persistence system
>to save the object and everything that object refers to unless
>something else is specified. A database is something else, I may be
>wrong..

Rather than get into definitional arguments, its probably easist to
comment on what I do, which is pretty close in this regard to ColdX:

  Everything is persistant.  That means all code, all objects, all
methods, all attributes, all relations, all references, everything. 
The easiest way to think of this possibly would be to consider battery
backed RAM or core memory (magnetic rings et al).  

  Persistance is hidden from the user.  Its automatic, hidden, and
implicit.  The user never actually deals with it or sees the
mechanics.  

>From the user-programmer's PoV there is no concept of a persistance
layer or or persistance being something they have to invoke or even
deal with.  If they add an attribute to an object then that attribute
is bound to that object for the rest of time uintil something changes
it.  If they add a moethod to an object or change the code in an
existant method, then those changes persist, automatically, and
without any other exterior action by the user-programmer.  Persistance
is implicit in the system.  The level to which it is implicit is to
make it an assumed and automatic, even hidden, part of the programming
environment.

There is no concept of taking a reference and handing it to the
persistance system to store.  The persistance system already handles
everything and is what provided you with the reference in the first
place.  There's no reason to ever hand it back to where it came from. 
The persistance system has it already, and all the contents of the
referenced object as well as all other references are also already
within the persistance system.

The storage layer for the persistance may be a DB (was for me but is
no more, is for ColdX, MOO, and the Tiny-* style servers), or can be
closer to a real persistant store (cf Texas, ObjectStore, pointer
swizzling, etc).  However that is an implementation detail that has
little reason to be exposed to a programmer-user.  

--
J C Lawrence                               Internet: claw at null.net
----------(*)                              Internet: coder at ibm.net
...Honourary Member of Clan McFud -- Teamer's Avenging Monolith...




More information about the mud-dev-archive mailing list