[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