[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: OBJECT-ORIENTED CLX
> Date: Tue, 01 Nov 88 23:51:58 PST
> From: Warren Harris <harris%hplwhh@HPLABS.HP.COM>
>
> I want to reiterate again why I think approach 1 to event dispatching is
> best.
OK, you convinced me.
> > Very little of the existing
> > CLX programmer interface ought to change.
>
> On the surface this may seem true, but there is a fundamental difference.
> Requiring CLX to be object-oriented would change the way applications would
> use it.
Agreed -- (not (eq clx oo-clx)). But (equalp clx oo-clx)? My point is spelled
out perhaps more clearly in my reply to David: we're talking about a system
which, by definition, is the same as CLX (not strictly but in a strong sense).
Similarly, CLOS is designed to mesh smoothly with non-OO Lisp functions.
Therefore, there is little reason for OOCLX to diverge from CLX -- neither
semantically nor syntactically. Where divergence can be soundly justified,
fine. But the rule of thumb should be "same until proven different".
On a practical note, CLX is already carefully designed to match up well with the
interfaces and terminology of the X protocol. Tinker with this gratuitously
(e.g. x -> outside-left) and you'll be overwhelmed by the moans, squawks, and
bleeps of the multitude of hackers already laboring away in the sulphurous lower
circles. No, don't look at it that way; look at it this way: it'll make the
transition from CLX to OOCLX cheaper.
> I was thinking that you could just save the init-plist on the object when
> you did a MAKE-INSTANCE call. This would require just 1 slot. OPEN-OBJECT
> would then take the init-plist apart. CLOSE-OBJECT could build a new
> "init-plist" for the next time the object is opened, by querying the server
> for all the object's attributes before it actually issued the destroy
> request. The alternative is to actually allocate all the :X-SERVER slots
> with :INSTANCE allocation, and use these slots as caches when necessary.
OK, I think the init-plist is a good idea.