home *** CD-ROM | disk | FTP | other *** search
- From: kers@hplb.hpl.hp.com (Chris Dollin)
- Date: Wed, 2 Sep 1992 11:15:20 GMT
- Subject: Re: O.M(...) vs M(...), and is the Real World O-O?
- Message-ID: <KERS.92Sep2121520@cdollin.hpl.hp.com>
- Organization: Hewlett-Packard Laboratories, Bristol, UK.
- Path: sparky!uunet!sun-barr!ames!elroy.jpl.nasa.gov!sdd.hp.com!scd.hp.com!hplextra!otter.hpl.hp.com!hpltoad!cdollin!kers
- Newsgroups: comp.object
- References: <1992Aug5.162329.22871@ucunix.san.uc.edu> <KERS.92Aug26181137@cdollin.hpl.hp.com> <#6jn_y+.objsys@netcom.com>
- Sender: news@hplb.hpl.hp.com (Usenet News Administrator)
- Lines: 214
- In-Reply-To: objsys@netcom.com's message of 1 Sep 92 22:51:39 GMT
- Nntp-Posting-Host: cdollin.hpl.hp.com
-
-
- In article ... objsys@netcom.com (Bob Hathaway) writes:
-
- | [I think we've beaten these subjects to death and I unfortunately don't have
- | the time for these long replies. I'll just wrap-up and let us try to get
- | on with things. Perhaps a wrap-up from Chris would be nice too]
-
- I agree about the amount of time we're taking. I'll try to be brief and
- not *too* argumentative in this posting -- it's only just over 200
- lines long.
-
- I'll attempt to summarise positions rather than giving a blow-by-blow
- response to Bob's wrap-up. I hope there'll be enough context around to
- make things clear.
-
- -- On multi-methods ---------------------------------------------------
-
- The term seems to have been invented by the CLOS community and it seems
- wise to restict its use to the CLOS style of method dispatch in order
- to avoid confusion.
-
- CLOS has both ``ordinary'' functions (provided by the Common Lisp in
- which it is present) and ``generic functions'' (which provide, or
- ``are'', multi-methods). Multi-method invocation is not biassed toward
- any particular argument as a ``receiver'' of the ``message'', or toward
- any particular class as ``owning'' the method.
-
- Bob correctly calls me on the ``symmetry'' I have been claiming for
- multi-method dispatch, because of the CLOS's (default!) left-to-right
- precedence order. Note, however, that this precedence order is used only
- when selecting among several applicable methods, to decide whether one
- method is ``more specific'' than another. When the details of Bob's
- dispatch algorithm are known, it will be interesting to compare them to
- the CLOS one.
-
- -- On packaging & ``friend'' ------------------------------------------
-
- Bob says that classes and friends are more powerful than packaging,
- because they give you more control over scoping -- that is, you
- can express the necessary connections of names without having to provide
- many additional connections.
-
- I think that name-hiding is important *independantly* of classes,
- because classes are but one of the interesting structuring methods to be
- found in programming. If the C++ notion of ``friend'' is genuinely
- useful, it can be incorporated into a module mechanism -- presuming that
- other, more elegant, techniques are not found.
-
- Bob regards CLOS as not having a ``real'' protection mechanism. I regard
- it as having a real, if less powerful than I would like, protection
- mechanism, viz packages. I think Bob confuses the philosophy of Lisp
- systems with language structures they provide -- a Lisper might be
- unhappy to be deprived to access to the internal symbols of a package,
- but the Lisp ``packages+generic functions'' approach would transplant
- quite happily to such an environment -- and give the protection that Bob
- desires.
-
- -- On physics and modelling the world ---------------------------------
-
- Bob's position, which initially I read as ``the world *is* made of
- objects which interact by sending messages'', seems now to be that as
- our knowledge of the world improves, so do our models [It's not clear
- to me if by ``model'' he means ``program''; I certainly don't.] and
- hence, so do our object-oriented models.
-
- My position is that physics teaches us that objects are *not* givens of
- the natural world, and that the notion of ``object'' is a human
- construct -- very useful, true as far as it goes, but only one way of
- viewing an enormously rich world, and inadequate to describe in its own
- terms phenomena that actually arise in the world -- phenomena of
- *relation* rather than *object*.
-
- And that, so far as modelling the world goes, use whatever works.
-
- -- Bob's Book ---------------------------------------------------------
-
- Bob suggests that he's going to produce a book explaining his views more
- fully.
-
- I look forward to reading it. Have you a publisher?
-
- -- OO Books -----------------------------------------------------------
-
- I treat this one with quoting, because it makes a point that I think has
- been important at several places in this debate.
-
- | [On all OO books (hundreds of them) oriented towards more accurately modeling
- | the real world. Chris doesn't beleive me?]
- |
- | There're too many to list. Just go to your local technical bookstore and dig
- | thru a few hundred. If you do this and don't find literally hundreds of them
- | (maybe your bookstores stock differently than ours) send email and I'll send
- | you a list. I'm not just going to send you the oggles of them lying around
- | on my (and others) desks.
-
- Bob seems to have missed my point and substituted one of his own -- in
- wild defiance, I might add, of my message, which read:
-
- # Well then, let's have the references. Let's say ten works which take the
- # view that the world is object-oriented in the style that Bob has
- # described in earlier posts.
- #
- # I am *not* interested in works by the sellers of OO methods or OO
- # language designers, unless they specifically address the issue of the
- # ``universality'' of OO. I *am* interested in works by physicists,
- # philosphers, and psychologists. If you (Bob, or any other reader) don't
- # like these criteria, let me know why.
-
- I do not doubt that the sellers of OO methods are using OO to model the
- real world, and that they be doing a better job of such modelling than,
- say, ``functional modelling'' does, or hack-and-slay coding does, or
- Blind Faith ``Do What You Like'' does. The point we were addressing [or
- I thought we were addressing]
-
- Are the notions of OO (objects, messages, encapsulation) in some
- sense a property of the *world*, or are they just was in which we
- *think* about the world? Is the world ``object oriented''?
-
- That is, we started out talking philosophy. Now Bob appear to be talking
- about software engineering. I don't mind, so long as it's clear what
- the topic *is*.
-
- I would rather like to know which ones are *representative* of Bob's
- rather -- to my mind -- extreme point of view.
-
- -- On concurrency -----------------------------------------------------
-
- Bob has expressed surprise at my my surprise at him having concurrency
- in his model. In fact, I was not surprised at *having* concurrency, but
- at him having produced it out of a hat -- concurrency not being a
- standard feature of OOP.
-
- This reduces to my not knowing what the base level of Bob's OO system
- being. Since Bob has never spelt it out, I do not think I am entirely at
- fault.
-
- [Let it be recorded that I think that concurrency *is* an important
- feature of our descriptions of the real world, and a useful thing to
- have in a programming language. Let it also be recorded that I think it
- can be very tricky.]
-
- Bob suggests that there are many excellent reference works on concurrent
- OO systems. I would be happy to hear what they are. [Reading them is, of
- course, unlikely to affect my views on how OO is related to physics and
- the real world, although it might teach me a great deal about certain
- representational schemes.]
-
- -- On modes of discourse ----------------------------------------------
-
- Because of my persistant failure to convince Bob of anything (and, I
- suppose, the reverse as well), I suspect some communicational problem.
- Bob suggests in several places that I am ``confused'', without seeming
- to realise that, to me, *he* is confused.
-
- To improve communication, we should (have made) make our bases clear; to
- say what problems we are trying to solve; to avoid ascribing to others
- feelings and ideas not supported by their own words. I cite:
-
- | You seem to have latched on to some trivial static efficiency tricks and
- | took them as the general case.
-
- Here (as elsewhere) he seems to have invented some behavior for me which
- is not only false-to-fact, but pointing *away* from positions I might
- reasonably be thought to hold. Where in what I have said is there a
- suggestion of ``static efficiency tricks''? Given that I have not
- *argued* for static *anything*, whay should I be taken to be bound by
- certain ``static ... tricks''?
-
- | Maybe you should consider this issue further before posting any more
- | specifically on this subject. It appears to me you're not even close
- | and I'll often assume someone is when they discuss a subject. You're Ok
- | on other points but seem to be still learning on this one.
-
- Since Bob hasn't said what he thinks my confusion is (that is, in the
- light of my earlier remarks, he hasn't stated what the problem is), I
- have no idea what he means. How am I supposed to make progress?
-
- The tone of the last sentence is condescending.
-
- | >That's odd, because a few messages back, you claimed that they *did*
- | >have multi-methods. At least, that's how *I* read what you said; if you
- | >were actually discussing your company's own language, there was no way I
- | >could tell, and you certainly didn't disabuse me of the notion.
- |
- | Nope, you were confused. You were claiming that O.M(...) meant single
- | argument dispatch, which was wrong, and which is why you had trouble
- | understanding my postings.
-
- If I was confused, it was because Bob hadn't made his ground rules
- clear. The traditional OO languages have used both the O.M syntax, and
- mono-method dispatch (at the language level; I do not dispute that could
- have constructed multi-argument method selection on top of that).
- Without evidence, why should I have believed that he meant this
- ``non-standard'' interpretation?
-
- | All of what I said was quite clear with a good
- | understanding of the issues involved and their context.
-
- And when you are explaining new and different ideas to people,
- it's usual to assume that they *don't* already understand what you want
- to say. Perhaps this is a lesson for all of us; try and make it clear
- what you mean and what you're asking; don't assume the other has access
- to technical knowledge that you have been inventing; give references to
- your source material.
-
- -- On finance ---------------------------------------------------------
-
- | But don't worry, my consulting fee is only $500 an hour and I'll just bill
- | you;-)
-
- The billing (if not the cooing) will be mutual, I'm sure :-)
- --
-
- Regards, Kers. | ``Remember Thor Five!'' (Earthman, Come Home)
-