home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / object / 2982 < prev    next >
Encoding:
Text File  |  1992-07-23  |  2.2 KB  |  50 lines

  1. Newsgroups: comp.object
  2. Path: sparky!uunet!odi!dlw
  3. From: dlw@odi.com (Dan Weinreb)
  4. Subject: Re: A question of notation
  5. In-Reply-To: moss@cs.umass.edu's message of 22 Jul 92 14:35:37 GMT
  6. Message-ID: <1992Jul23.144937.25764@odi.com>
  7. Reply-To: dlw@odi.com
  8. Organization: Object Design, Inc.
  9. References: <graham.711774150@galois> <MOSS.92Jul22103537@ibis.cs.umass.edu>
  10. Date: Thu, 23 Jul 92 14:49:37 GMT
  11. Lines: 37
  12.  
  13. In article <MOSS.92Jul22103537@ibis.cs.umass.edu> moss@cs.umass.edu (Eliot Moss) writes:
  14.  
  15.    An additional remark I would make is that there is no "standard" about this at
  16.    all. Trellis does it the M (O ...) way (kind of following CLU syntax),
  17.    Modula-3 does it the O.M way, and Smalltalk does it O M with arguments, if
  18.    any, mixed in with the method name. Syntax can be relevant to readability,
  19.    writablity, and software engineering concerns deriving from them, but there
  20.    are no semantic power or expressiveness reasons to prefer one of these forms
  21.    over another.
  22.  
  23. I agree and I'd like to add a footnote.
  24.  
  25. In Lisp-with-Flavors (or Lisp-with-CLOS), the language both has the
  26. concept of "function call" and "message send".  The main difference
  27. between Old Flavors and New Flavors was to go to a syntax in which a
  28. "message send" looks syntactically like a function call.
  29.  
  30. A typical Old Flavors "message send": (send my-window :refresh)
  31. A typical New Flavors "message send": (refresh my-window)
  32.  
  33. We considered it a big advantage to use the same syntax for both
  34. ordinary functions and "message sending", for several reasons.
  35.  
  36. The main reason was modularity.  The idea is that from the point of
  37. view of the caller, "refresh" is an operation with a certain contract.
  38. Whether "refresh" implements that contract by using an automatic type
  39. dispatch or not is an internal implementation issue that should not be
  40. reflected in the advertised interface.
  41.  
  42. Secondary reasons were so that "message send" operations could be
  43. treated as "funargs" in a uniform way, and things like that.
  44.  
  45. CLOS is like New Flavors in this respect.  C++ is analogous to Old
  46. Flavors in this respect.
  47.  
  48. In languages with no special distinction between "function call" and
  49. "message send" (e.g. Smalltalk), of course, this issue does not arise.
  50.