[cap-talk] "Same" key
Norman Hardy
norm at cap-lore.com
Sat Feb 10 21:56:51 CST 2007
On Feb 9, 2007, at 4:39 PM, David Hopwood wrote:
> Norman Hardy wrote:
>> On Feb 4, 2007, at 2:19 PM, Dean Tribble wrote:
>>
>>> That analogy breaks down fairly quickly for programs that take
>>> advantage of the communications architecture to implement message
>>> plumbing (which I believe is a crucial new form of abstraction). We
>>> wrote many examples in which multiple concurrent processes extract
>>> messages from the receive side (which one is the "object"?), the
>>> thing
>>> receiving messages changed over time, or the thing receiving
>>> messages
>>> handled some and deferred other elsewhere. "Objectness" from the
>>> client's perspective (the message sender) was thus generally
>>> stretched
>>> across several implementation objects. Similarly, with direct
>>> support
>>> for facets (e.g., Joule facets, KeyKOS capability bits, etc.), an
>>> implementation object might appear to be several different "objects"
>>> from it clients' perspectives.
>>
>> This is an interesting case. I think I would provide two descriptions
>> for such a service.
>> The first would be addressed to those who use the service and I would
>> describe the service as one object and strive to write the code to
>> conform to any resulting implications.
>> To those who need to understand the code that defines the behavior, I
>> would refer to several 'real' objects, with a hopefully short
>> appendix on why it appear as one.
>>
>> This is one of those many situations where we shift our manner of
>> speaking in a way to confuse new-comers.
>> I don't see an alternative.
>
> The alternative is to say that the service is a composite, and to
> describe
> its overall functionality, its facets, and its internal objects.
>
> Isn't this precisely the kind of case that the "composite" concepts
> and
> terminology are designed to address, without need for any audience-
> specific
> terminology shifts?
I agree with earlier points made by you and others about the
importance of a uniform terminology but still I must say why I don't
like to talk as you do above.
If I am writing to tell programers how to use the function I have
created, I want them to think of a whole--a unit--a single
thing--'one unit of entangled state' regardless of how I implement it
and regardless of whether there are differing authorities which they
and their deputies may hold to that thing.
The ordinary English connotation of 'composite' serves poorly here.
If I am documenting my implementation for someone to modify, I shall
probably need to describe the 'real' component parts and then
'composite' serves well.
The output from one phase of a program is the input to the next phase.
Calling that data both input and output can certainly confuse until
the reader is well oriented.
After orientation those terms profitably invoke familiar images.
Another form of documentation is where we describe general object
discipline. That discipline should perhaps include or encourage a
style of documentation including terminology,
I think that there was an agreement that facets should be relegated
to a pattern rather than a fundamental aspect of object terminology.
I reluctantly concur for two reasons:
Reducing the fundamental constructs is good.
Some platforms do not provide the the construct fundamentally.
I am reluctant merely because it was so easy and efficient to provide
this construct fundamentally in Keykos.
I think that my all-time favorite manual was the IBM 370 hardware
manual.
They did not do what I advocate here and I shall have to write a
small essay to explain the discrepancy.
I think(!) that that manual entirely eschewed abstraction even as it
described a hardware platform that allowed the user (OS writer) to
generate abstractions.
> --
> David Hopwood <david.nospam.hopwood at blueyonder.co.uk>
>
> _______________________________________________
> cap-talk mailing list
> cap-talk at mail.eros-os.org
> http://www.eros-os.org/mailman/listinfo/cap-talk
More information about the cap-talk
mailing list