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