home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / object / 3403 < prev    next >
Encoding:
Internet Message Format  |  1992-09-03  |  2.8 KB

  1. From: kers@hplb.hpl.hp.com (Chris Dollin)
  2. Date: Thu, 3 Sep 1992 09:13:40 GMT
  3. Subject: Re: O.M(...) vs M(...), and is the Real World O-O?
  4. Message-ID: <KERS.92Sep3101340@cdollin.hpl.hp.com>
  5. Organization: Hewlett-Packard Laboratories, Bristol, UK.
  6. Path: sparky!uunet!wupost!sdd.hp.com!scd.hp.com!hplextra!otter.hpl.hp.com!hpltoad!cdollin!kers
  7. Newsgroups: comp.object
  8. References: <KERS.92Aug26181137@cdollin.hpl.hp.com> <#6jn_y+.objsys@netcom.com> <KERS.92Sep2121520@cdollin.hpl.hp.com> <b2kn_3q.objsys@netc
  9. Sender: news@hplb.hpl.hp.com (Usenet News Administrator)
  10. Lines: 41
  11. In-Reply-To: objsys@netcom.com's message of 2 Sep 92 20:29:22 GMT
  12. Nntp-Posting-Host: cdollin.hpl.hp.com
  13.  
  14. In article ... objsys@netcom.com (Bob Hathaway) writes:
  15.  
  16.  
  17.    >| You seem to have latched on to some trivial static efficiency tricks and
  18.    >| took them as the general case.
  19.    >  ... [Why me?] ...
  20.  
  21.    C++ and other statically (strongly) typed object-oriented languages do
  22.    only switch on the first parameter; all other argument types must be
  23.    contra-variant with respect to subtyping.  C++ even forces argument
  24.    types (and currently return types) to be the same [for virtual functions].
  25.    This is close to what you said: "only the first argument type is used and
  26.    the rest are ignored".  This is also a trivial static efficiency trick.
  27.    This is what I was referring to above, the other case of a statically
  28.    typeless language (Smalltalk) also only switches on the first argument type
  29.    but includes keywords in the matching.  This is because Smalltalk is a
  30.    prototype language and doesn't provide types for argument matching (and
  31.    only keywords, it should be both); a weakness of Smalltalk and clearly not
  32.    of OO or of the O M ... notation.
  33.  
  34. Hmm. The keywords in SmallTalk are just part of the message name, so I don't
  35. think they matter from the point of view of types; but that may depend on how
  36. you carve up your object orientation.
  37.  
  38. It's never been clear to me whether you've been arguing from the *descriptive*
  39. stance (``this is how certain languages *are*''), the *prescriptive* stance
  40. (``this is is how languages *should be*''), or the *analytic* stance (subcase
  41. of descriptive; ``this is how languages *could be seen*'').
  42.  
  43. Thus, C++ and other statically typed OO languages *do* only dispatch on one
  44. (the ``first'') argument [anyone have a counter-example?], but they *need not*
  45. -- that is, static typing does not conflict with many-arg dispatch. And, in
  46. fact, I don't think it's a ``trivial static efficiency trick'' -- given the (a)
  47. alternative, such as CLOS-style multi-methods, which are quite hard to
  48. implement efficiently in the general case, it's a rather elegant solution.
  49.  
  50. It's just that it's not the solution that some of us want ...
  51. --
  52.  
  53. Regards | "Always code as if the guy who ends up maintaining your code will be
  54. Kers.   | a violent psychopath who knows where you live." - John F. Woods
  55.