[cap-talk] Terminology and soap box
David Hopwood
david.nospam.hopwood at blueyonder.co.uk
Wed Aug 9 11:47:33 EDT 2006
Ian G wrote:
> David's list is very useful in nailing down what it
> is that is capabilities. But in the end it simply
> reads to me as objects. I.e., OO.
Most OO systems don't satisfy point #7 or #7'. In any case, isn't it
useful to spell out precisely which properties of OO it is that capability
systems depend on?
Note that there is much confusion in the OO community about what OO is.
The best definition I've seen is Jonathan Rees' radial definition [1],
which is discussed by Paul Graham at <http://www.paulgraham.com/reesoo.html>.
Of the nine properties listed there, only two ("Protection" and
"All you can do is send a message" [2]) are *required* in order for a
system to be considered a capability system -- although many cap
systems have all nine.
So, a description of the *essential* properties of capability systems
as a delta from OO systems, would have to be mostly composed of a
discussion of which OO properties are not essential, as well as explaining
the additional requirement of #7/#7'.
[1] A radial definition is a useful way of defining a concept for
which there is no concensus on necessary and sufficient properties.
It gives a list of properties which are all *typical* of instances
of the concept, but none of which are absolutely necessary, and no
subset of which are sufficient to fully characterise what people
mean by the concept. See George Lakoff, "Women, Fire, and Dangerous
Things", ISBN 0-226-46803-8, particularly chapters 5 and 6.
(The definition of capability systems I gave is not a radial
definition, because all points are intended to be necessary, and
in combination, sufficient -- even if the list does need some
tweaking in response to feedback from Jed. IMHO, necessary-and-
sufficient definitions are preferable to radial ones for technical
concepts where there is concensus -- and I believe there *is*
concensus on what a capability system is, despite minor disagreements.)
[2] Jonathan Rees is quoted as saying
"All you can do is send a message (AYCDISAM) = Actors model" which
is an oversimplification: the actors model specified many aspects
of concurrency semantics besides the fact that actors can only
affect each other by sending messages. What I think he meant to
refer to is the Actor Locality Laws.
> It may be that there is a difference, but I'm now sufficiently
> comfortable that I'd declare capabilities to be OO
> perhaps with a stress that it works across a net.
Cap systems do not necessarily work across a net. Please don't confuse
whether it is *desirable* for a cap system to work across a network
(partial network transparency), with whether this is part of the concept
of a capability system.
--
David Hopwood <david.nospam.hopwood at blueyonder.co.uk>
More information about the cap-talk
mailing list