OOFS -- Transactional or Transparent (fwd)

BRIAN SPILSBURY zhivago@iglou.com
Fri, 9 May 1997 23:21:16 -0400 (EDT)


> OOPS -- I see that Adam Alpern was not the one advocating the transparent
> OOFS!! Well, still, I would like to be illuminated on exactly how such a beast
> is going to make my life easier than the transactional OOFS support I am
> already familiar with.

Depending on what you're doing, it may not, however it will make my
life a lot easier, and you can write a traditional OOFS system
over the top of a transparent one.

The main problem you seem to have with transparent persistence seems to
center around collection. Which doesn't really make sense unless you're
thinking about a transparent traditional oofs, as opposed to simply
transparent persistency of data.

As for an example of how it makes life easier, try this.
; load this once only
(defclass mailbox () (
  (mail :initform nil :type list :reader mail)
  ))

(defmethod add ((box mailbox) (item letter))
  (push item (slot-value box 'mail)))

(setq brians-mail (make-instance 'mailbox)))

; somewhere in mail-bouncing land

(add brians-mail important-letter)

; ok, you'd actually want to dewsign your mail system
but thats' all I need to do. I can turn the machine off at this point
and (mail brians-mail) will have important-letter in it unless its been removed.And more imporatntly I don't get the overhead that a non-transparent
system has since these are natural lisp objects. You're not squeezing
transactions though a straw to talk to objects that are pretending to be
lisp objects.

And if I feel the need for a non-transparent system, I can write it as an
object in the transparent one. :)

Is this anything like what you're meaning? or am I off at some tangent?

Brian