home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / object / 3289 < prev    next >
Encoding:
Internet Message Format  |  1992-08-21  |  30.4 KB

  1. From: kers@hplb.hpl.hp.com (Chris Dollin)
  2. Date: Fri, 21 Aug 1992 14:06:58 GMT
  3. Subject: O.M(...) vs M(...), and is the Real World O-O?
  4. Message-ID: <KERS.92Aug21150658@cdollin.hpl.hp.com>
  5. Organization: Hewlett-Packard Laboratories, Bristol, UK.
  6. Path: sparky!uunet!paladin.american.edu!darwin.sura.net!mips!sdd.hp.com!hpscdc!hplextra!otter.hpl.hp.com!hpltoad!cdollin!kers
  7. Newsgroups: comp.object
  8. References: <1992Aug5.162329.22871@ucunix.san.uc.edu> <KERS.92Aug20120508@cdollin.hpl.hp.com> <1#_n4_m.objsys@netcom.com>
  9. Sender: news@hplb.hpl.hp.com (Usenet News Administrator)
  10. Lines: 634
  11. In-Reply-To: Bob Hathaway's message of Fri, 21 Aug 92 02:18:25 GMT
  12. Nntp-Posting-Host: cdollin.hpl.hp.com
  13.  
  14.  
  15. I changed the Subject, because we don't seem to be discussing
  16. conformance and inheritance at the moment. Sorry to anyone who thought
  17. they'd killed the discussion.
  18.  
  19. This looks like another long one (~~ 600 lines. Should I reduce the
  20. context to save space?). (I've had two votes in favour of continuing
  21. here, none against. Statistics? Sampling? Who she?)
  22.  
  23. In order to organise my thoughts, I've re-arranged the order of Bob's
  24. response. I hope I have not introduced additional confusion; as before,
  25. I've retained some context. As a happy consequence of this being
  26. a two-person debate, and Bob quoting with ">" while I quote with "|",
  27. you should be able to tell one of us from another (as if the content
  28. wasn't enough!). As a result of the reorganisation, all the stuff about
  29. the invocation notation comes first, so if you're not interested in the
  30. philosophy, you can stop when it starts obtruding.
  31.  
  32. In article ... Bob Hathaway <objsys@netcom.com> writes:
  33.  
  34. |>|>In the presence of multi-methods, why should one argument to a message send
  35. |>|>have a special syntactic position?
  36. |>|
  37. |>|Because it is the object performing some action, as is always the case in
  38. |>|the real world.
  39. |>
  40. |>Not with multi-methods, it isn't; that's the point.
  41. |
  42. |Uh huh.  You're confusing lack of encapsulation with multiple-polymorphism
  43. |which as I've already stated is obvious and *should* always be present.
  44. |Thats my axiom.
  45.  
  46. Sorry, I don't think I am subject to that confusion here. (In fact I
  47. think the usual way encapsulation is described in OO languages -- with
  48. all this emphasis on ``keeping the operations in *the* class'' -- is
  49. another mistake. Hiding names and doing method dispatch are two separate
  50. things; routinely conflating them is in itself a confusion. In CLOS, the
  51. equivalent of encapsulation is provided by using the separate namespace
  52. control mechanism, viz packages. At least that's how I understand it --
  53. a CLOS person might wish to correct me here.)
  54.  
  55. |>|.......  The languages here obviously have O.M... notation and use
  56. |>|multi-methods, they always have.
  57. |>
  58. |>They *don't* have multi-methods. They *never* have. Bob, is it possible we
  59. |>have drastically different notions of what ``multi-method'' means? My notion
  60. |>is taken from CLOS, on which I'm no expert but I think I understand the
  61. |>basics.
  62. |
  63. |I gave you a reference to Coplien (I though you read it already;-) and he
  64. |defines multi-methods as simply multiple-polymorphism (as we do).
  65.  
  66. The term ``multi-methods'' comes from CLOS (I don't know if it was
  67. inherited from elsewhere, or not) and means that the action performed is
  68. selected on the basis of the ``message'' and the (types of) all the
  69. arguments to that message (there is no distinguished ``receiver'' in
  70. CLOS). I think we agree on this, at least.
  71.  
  72. |This means the status of the receiver is not considered important in
  73. |definition.
  74.  
  75. Yes, because there is no receiver (in CLOS multi-methods).
  76.  
  77. |And I don't like hearing that multi-methods are a superset of OO dispatch.
  78.  
  79. Not liking it is your problem, because they *are* a superset.
  80. Conventional OO dispatch is simply the case where a particular argument
  81. position is selected and the (types of) all other arguments ignored [for
  82. the purpose of method selection]. This is usually combined with a
  83. special syntax for method invocation (message sending, whatever).
  84. Sometimes this is the *only* syntax (and semantics) for invoking
  85. actions. [Yukk.]
  86.  
  87. |They are much weaker from my point of view because they aren't encapsulated
  88. |within a class.
  89.  
  90. This is not an issue of *dispatch*, but an issue of *hiding*. CLOS
  91. provides two independant mechanisms to do two different jobs. Naturally
  92. using only one of them will not give you the power of both.
  93.  
  94. It's just a different way of carving the computational cake. As it
  95. happens, it allows the more conventional style of expression, should you
  96. wish to use it.
  97.  
  98. |Please keep in mind we used to allow both forms and rejected the idea because
  99. |of poor protection.
  100.  
  101. [Which ``both forms'' were these? Which ``we'' was this? Which
  102. ``idea''?] The protection offered by OO languages is twofold -- name
  103. hiding, and automated method selection. CLOS has both. [What it
  104. *doesn't* have is static typing. This is another independant issue, and
  105. I think it has no bearing on the original topic -- O.M(...) vs M(...) --
  106. so I propose we don't follow it up here.]
  107.  
  108. Just to check, Bob, do you still think that Smalltalk, C++, and Simula
  109. *have* multimethods? [I don't dispute that you can code up some sort of
  110. equivalent. But you could do *that* in C, or assembler, or Scheme.] If
  111. so, could you explain why?
  112.  
  113. |>|Notice that makes the receiver special (which it should be anyway)
  114. |>
  115. |>But Bob, that's exactly the point that's being argued -- should there *be* a
  116. |>receiver, specially marked? Not whether or not you *can* use that notation,
  117. |>and have ``receivers'' as a concept, but whether that's a *necessary* part of
  118. |>OO. If you take ``the receiver should be special'' as an axiom, of course its
  119. |>going to appear as a theorem. But PG (I think) and myself are saying that *we
  120. |>dispute your axiom* -- a distinguished receiver is not *necessary* and is not
  121. |>*sufficient* for object-oriented dispatch.
  122. |
  123. |Please elaborate on "not sufficient".  And I think I've shown it is an
  124. |excellent model that always works.  Can you show another approach is better?
  125.  
  126. It ``always works'' because it's embedded in a programming language in
  127. which you can code up the alternative (multi-method) dispatch yourself.
  128. It's ``not sufficient'' because when you want multi-methods, they're not
  129. there, and you have to write the machinery out (several times).
  130. Multi-methods are better, because receiver-oriented dispatch is just a
  131. special case.
  132.  
  133. The language could even permit the special syntax, and check that it's
  134. only used on appropriate messages. [I'd hate to be a maintainer in such
  135. a system.] [My preference is to allow ``x.f'' as just another notation
  136. for ``f(x)'', so I couldn't use that syntax anyway. I have used
  137. ``o<-m(e)'' as special syntax for monomethods, meaning ``m(e,o)''.]
  138.  
  139. |OO still supports operators (including overloading), just look at C++. This
  140. |is an AWM, however.
  141.  
  142. Yes, C++ supports compile-time overloading (and run-time OO dispatch) --
  143. losing out on the unification. Sad.
  144.  
  145. The fact that these things are different to ``objects'' and ``messages''
  146. suggest that Os and Ms are not the only things we might want in
  147. descriptions (of the world, or of computation). Perhaps it's because
  148. they're not the only things in the world, either.
  149.  
  150. |>|Also, if I write an imperative algorithm without an explicit doer, such as:
  151. |>|  take this
  152. |>|  do that with it
  153. |>|  put this here
  154. |>|  do that
  155. |>|  you're done
  156. |>|
  157. |>|There is the implicit imperative you for each instruction.  If I now reuse
  158. |>|this component by following it myself, handing it to a robot to perform, or
  159. |>|whatever then self becomes the implicit receiver.  In OO any such imperatives
  160. |>|are considered with an implicit self making this algorithm *completely
  161. |>|reusable*.
  162. |>
  163. |>It doesn't need OO to make this reusable; all it takes is an implicit
  164. |>parameter, or an explicit one if you like.
  165. |
  166. |OO has the implicit parameter as above but I'm not aware of any other
  167. |notation which does.
  168.  
  169. Are you saying that, because no notation you know of has this feature,
  170. that it's therefore an intrinsic part of object-orientation?
  171.  
  172. Suppose I write a set of Pop procedures which perform actions. The
  173. ``doer'' of the action (let's say they are known to be the doer because
  174. their energy level gets drained, their experience level goes up,
  175. observers are informed that the doer has done something, etc) is held in
  176. the permanent (global) variable ``doer''.
  177.  
  178. When another doer has to do something, I can call ``please_do'', which
  179. takes a (potential) doer and an action (or a description of same).
  180. Here's please_do:
  181.  
  182.     define please_do( dlocal doer, action ); lvars action;
  183.         action()
  184.     enddefine;
  185.  
  186. This temporarily sets ``doer'' to the argument, runs the action, and
  187. then resets ``doer''. There need be nothing particularly OO about the
  188. code.
  189.  
  190. -- Philosophy mode now ON ---------------------------------------------
  191.  
  192. In fact, this brings up a pertinent point. This discussion (about
  193. objects and the real world) started with my endpiece remark ``The real
  194. World is not Object Oriented''. Perhaps I haven't made my position on
  195. this clear. What I mean is that
  196.  
  197.     the world is not structured into ``objects'' and ``messages'' in the same
  198.     way that (certain kinds of) objected-oriented languages structure their
  199.     data and actions.
  200.  
  201. I'll not deny that the informal term ``object'' is useful in discussing
  202. the world we (locally) inhabit, nor that it is a motivator for the use
  203. of the same word in OOP. Nor will I deny that there is cross-talk, even
  204. fruitful cross-talk, between OOP and the way in which we view the world.
  205.  
  206. What I *do* deny is that the ``natural'' way we see the world and our
  207. programs means that the underlying structure of the world is necessarily
  208. ``like that'', and that object models are more than an analogy for the
  209. world -- and that they are *worse*, for the purposes of understanding
  210. the world, than other models that we *do* have.
  211.  
  212. In particular, even when there *are* objects and actions we can agree
  213. on, the description of a system need not attribute the ``doing'' of
  214. those actions to any one object. Making the attribution is a *choice*,
  215. and one can make different choices for different circumstances, with the
  216. underlying system behaviour remaining the same. The fact that we can do
  217. this suggests -- very strongly -- that the actions do not ``naturally''
  218. belong to particular objects, despite our propensity for seeing
  219. ``doers'' in the world. Being a doer is an abstract notion, one that we
  220. have invented; it makes sense for us, as part of a community of people,
  221. to ascribe intention and autonomy to other people, and (by extension) to
  222. animals, and (by extension) to the sun, wind, clouds, and rain.
  223.  
  224. But I deny that clouds are ``doers'' in the same sense that people are.
  225. I even deny that a cloud is an ``object'' in the same sense that a rock
  226. is. If objects are ``in the world'', surely we could give an account of
  227. objects that was satisfactory for all of them -- that said why a rock
  228. was an object and the wind isn't, why teapots are objects but spoonsful
  229. of tea aren't, why bank accounts are objects but space-time isn't?
  230.  
  231. ``Being an object'' is a property given by a *description* of the world.
  232. Bob says (following my quote):
  233.  
  234. |>If objects are ``real'' -- if being an object is a property of the *world*,
  235. |>not of a *description* of the world -- then we'd all carve the world into the
  236. |>same set of objects, right? But I don't think we do.
  237. |I do.  We all can recognize and distinguish between pencils and people
  238. |since they have discernable properties and attributes.
  239.  
  240. Well, yes. Certainly this is a common distinction. But I did not mean to
  241. be taken as saying that we *never* share descriptions -- otherwise
  242. communication would be impossible. [Perhaps that's the problem here!]
  243.  
  244. To take a trivial example, you (Bob) think that a ``push'' isn't an
  245. object. Well, I'll reserve judgement. In previous posts, I have asked
  246. whether several things are objects are not. Bob usually replies by
  247. saying that they are, or are not. I do not agree with all of his
  248. distinctions. Bob seems to think that some objects are ``real'', others
  249. are ``abstract'', and yet others are ``mental'' (have I got that
  250. right?). His distribution of objects into these categories does not
  251. match mine.
  252.  
  253. Of course, for common, everyday things we're likely to share the notion
  254. -- they'd not be common and everyday otherwise. To test, you have to
  255. push.
  256.  
  257. [I wrote before]
  258.  
  259. |>I'm sorry. It is this point on which we seem to have a fundamental
  260. |>disagreement -- or perhaps a terminology problem. This model of the world --
  261. |>that there are objects, and properties, etc -- is a nice friendly (but not
  262. |>universal) one. But you are giving primacy to matter clumped in ways
  263. |>appropriate to the senses which we possess, and the real world is much, much
  264. |>richer than your model allows.
  265. |
  266. |The abstraction level can always be broken down (even dynamically) further
  267. |thru aggregation if the level is too high.  This always works even for your
  268. |shattered cup example.
  269.  
  270. Hmm, I think I see where this is going.
  271.  
  272. You identify particles and clumps thereof as ``objects'', and forces
  273. (fields) acting on them as ``messages''. Since particles and forces are
  274. all we know about (I speak loosely; if necessary we can speak more
  275. tightly), and we have this handy renaming, you can now say that the
  276. real-world is object-oriented.
  277.  
  278. If that's all you mean, I can't really quarrel with it. But if I call
  279. forces ``functions'' and particles ``values'', I can claim that the real
  280. word is function-oriented.
  281.  
  282. This is just playing word games [some people call this ``just
  283. semantics''. I've never understood why; surely arguing about meaning is
  284. exactly what's important. It's arguing about *definitions* that can be
  285. pointless.]
  286.  
  287. |>What is the OO interface of my cup?
  288. |
  289. |A spatial representation and the mass properties of the surface and object.
  290. |And maybe any forces it may be giving off.  If I want more detail, I could
  291. |get into molecular bonds as in molecular modeling.  Quite common, I believe.
  292.  
  293. But these are not the properties we ``naturally'' think of as belonging
  294. to a cup; they are properties that we have come to use to describe the
  295. cup and its internal structure. If I am write an adventure game (let's
  296. amke it textual; I don't wish to worry about vision, etc, here), almost
  297. surely I shall give to the cup some more abstract properties; weight,
  298. bulk, can-be-held, can-hold, and so on. Several of these ``properties''
  299. are abstract notions that we use to describe things in the world.
  300.  
  301. |What is your prefered interface anyway?
  302.  
  303. Whichever one works for the job I'm trying to do. Since I don't hold
  304. that natural objects have ``given'' interfaces, I'm free to pick
  305. whichever one suits my fancy. Of *course* I'll try and pick one that
  306. fits the way other people think about the situation, if I have a choice;
  307. of *course* the choice is not completely arbitrary.
  308.  
  309. |>If you take this view, suppose that the cup shatters into a
  310. |>lay-persons-million pieces. Where's the cup? From whence came the pieces?
  311. |Broken into its constituent parts.  The pieces came from its mass.
  312.  
  313. But a cup doesn't *have* ``constituent parts'' (unless you count the --
  314. human, abstract -- separation into ``handle'' and ``container''). The
  315. cup can fall apart in an enormous number of different ways. Were all
  316. these parts there before? No. The *stuff* was there before, but the
  317. parts were not.
  318.  
  319. |>I think it's easier to say here that the ``cup'' is an *abstraction*, a
  320. |>*model* of some part of the real world which behaves in a particular way. When
  321. |>I drop the cup, and it shatters, the abstract notion becomes inapplicable. The
  322. |>``object-ness'' of the cup is an illusion -- it resides in our models, not in
  323. |>the world.
  324.  
  325. |Depends on your domain of discourse: RWM, MWM, or AWM.  The latter two
  326. |usually don't worry much about dynamics and space much.  But the former
  327. |does.
  328.  
  329. You'll have to explain these terms in more detail, I'm afraid.
  330.  
  331. |>How do you identify the objects? The interactions? Even the notion of
  332. |>``process'' is part of our *description* of the world.
  333. |
  334. |But I still believe in an objective reality.  We may have trouble seeing it
  335. |but its there none the less.  Maybe I should take up theoretical physics
  336. |again.  Maybe even solve the unified field theorem; then I'd have a strong
  337. |argument now wouldn't I;-)
  338.  
  339. I believe in an objective reality, too, and that it's hard to see. Where
  340. we disagree is that I don't think that the notion of object-oriented
  341. that appears in OOPLs is particularly appropriate.
  342.  
  343. Finding a unified field theory (hard; you don't just stub your toes on them,
  344. or have a feeling about them in your gut) would surely be a triumphant
  345. *denial* of the ``objectness'' of the real world).
  346.  
  347. [stuff about "doers" omitted, leading to]
  348. |[Slight admission]
  349. |Ok, I've wondered about alternatives to the behavioral interface myself.
  350. |I may have jumped the gun here but I don't see better alternatives.  I
  351. |still question the lack of encapsulation, maybe its just a bias, maybe not.
  352.  
  353. The lack of encapsulation in what? -- I've lost track. There is precious
  354. little encapsulation in the real world (light cones and black holes come
  355. to mind as examples), and I've already stated my view (above, and
  356. earlier messages) that [a] in CLOS, encapsulation is provided by
  357. name-hiding, and [b] encapsulation is a property we choose to give to a
  358. language in order to make aspects of it easier to handle.
  359.  
  360. |> |> So you identify doers with intelligent (or do I mean sapient?) agents?
  361. |> |> But that makes a nonsense of your stack example -- I can talk to the
  362. |> |> dish-stack as much as I like, but nothing happens until I put the tray
  363. |> |> on the stack. Then it ``pushes'' down. You may choose to say that's an
  364. |> |> action performed by the stack, but it seems to me that you'd say that
  365. |> |> just to keep the OO model going.
  366.  
  367. |Actually, its physical dynamics working on aggregate objects.
  368.  
  369. Is this an admission that the ``stack'' doesn't know how to push?
  370.  
  371. |>And a single example is hardly enough to justify such a sweeping statement.
  372. |>What message is sent to the clouds to tell them to rain?
  373. |The event driven approach (as I discussed towards the end of my last
  374. |article) can handle this as a message.  Actually clouds are made up of
  375. |little drops of water, again breaking an object into a finer level of
  376. |aggregate parts seems to work well.
  377.  
  378. Calling a cloud an ``object'' just means that there's a certain
  379. relationship betwixt the composing droplets that makes it descriptively
  380. useful to treat the cloud as a whole. Recognising the cloud as an object
  381. is a *human act* -- an *invention*.
  382.  
  383. |>What message to the clock, to tell it another second has passed?
  384. |The little spring component or maybe the frequency of the crystal.
  385. |It seems to me there is always some form of contact, whether physical
  386. |or not and this contact can be modelled with OO methods.  I'm still
  387. |waiting for better way.
  388.  
  389. What message to the crystal, to tell it that another second has passed?
  390.  
  391. |>What message to the river, to say ``flow downward!''?
  392. |Gravity, as given off by the earth object.
  393.  
  394. As I've said above, if you're prepared to call any force a message, then
  395. OK, but I don't think this is a constructive way to use the terminology.
  396.  
  397. |>What message to the iron, to say ``To the magnet!''?
  398. |The magnetic waves come in contact with the object, the universe does the
  399. |rest.  This one isn't up to the object, whatever it decides.
  400.  
  401. *None* of these things is ``up to the object'', if we're talking
  402. physics; there's no choice for it (unless you want to go all mystical
  403. about the uncertainty principle). The fact that you have to attribute
  404. the doing to a new abstract object -- the universe as a whole --
  405. suggests that the metaphor is being stretched rather hard.
  406.  
  407. |Whats the alternative?  Discussions of alternatives would be constructive,
  408. |not just pointing out percieved differences with reality or even our ability
  409. |to determine a models closeness with it.
  410.  
  411. The language of physics *is* an alternative -- when you want to talk
  412. physics.
  413.  
  414. |>So, at the very least, your objects are autonomous processes -- unlike the
  415. |>object models supported by Smalltalk, C++, and CLOS?
  416. |These are weak models.  Try Ada.
  417.  
  418. A better example would be CSP, if we want to talk processes. It's not
  419. clear to me now what your notion of (programmatic) notion of object is
  420. -- I had assumed it was something like a Smalltalk object, but now it
  421. appears to be an Ada process. OK, we can give some sort of interface
  422. specification to a process.
  423.  
  424. |>``Bob, break the cup!''. You -- Bob -- are the doer. The cup is done-to. (One
  425. |>of you is the object -- ha! -- and the other the subject of the sentence ``Bob
  426. |>breaks the cup'', but I can't recall which is which and the dictionary entry
  427. |>is sufficiently obscure that I can't tell from that, either. Bah.)
  428. |
  429. |No.  The subject is the implied you.  In "Bob, break the cup", Bob is an
  430. |independent element (as I previously pointed out), the implied subject is
  431. |you (a pronoun standing in for Bob), break is the action transitive verb
  432. |and the cup is its complement (or object).  The fact that the doer (Bob)
  433. |is pointed out first is clear.  There's also: "break the cup, Bob" and even
  434. |"break, Bob, the cup".
  435. |
  436. |As for "Bob breaks the cup" this is not an imperative, it is a declarative
  437. |statement.
  438.  
  439. Yes, I knew that. My phrasing was intented to avoid confusion about
  440. objects and subjects -- that's why I used the terms ``doer'' and
  441. ``done-to'' -- and to make the point that, in English, the doer (the
  442. implied you of an imperative) is usually distinct from the thing that
  443. gets done to; although the *message* of the imperative statement is
  444. intended for the doer. (The doer isn't a receiver, even then, because
  445. the message is usually broadcast, and other potential actors ignore it
  446. -- which is different from not receiving it.)
  447.  
  448. |Want to go prolog programming today?  It describes an action
  449. |and isn't really good for algorithms; I think, but story telling maybe;-)
  450. |Experience actually.
  451.  
  452. I'm not sure what you mean by this; we can go and insult Prolog
  453. elsewhere, if that's what you want to do.
  454.  
  455. |>Better [point of view] for what? Look, my argument is primarily that *there is
  456. |>no best view* -- that you pick a descriptive technique that fits the problem
  457. |>and solution domains. The OO view is good for a class of systems, and I have
  458. |>no objection to *using* it *for that class*. I am not *advocating* a
  459. |>functional viewpoint, but I am advocating that it have equal status with other
  460. |>viewpoints -- that there's nothing *inherently* wrong with it.
  461. |
  462. |For abstract problem solving maybe.  But since I believe in an objective
  463. |reality trying to better understand, model, and simulate it is worthwhile.
  464.  
  465. Yes, but this has little to do with OO.
  466.  
  467. |> Bank accounts aren't ``natural objects'', they're invented ones like
  468. |> theatre bookings and your employment contract.
  469. |
  470. |Sounds like a confusion between the RWM and an AWM or MWM.  Cups do exist,
  471. |organizations usually exist as abstractions or subjective views.
  472.  
  473. Why do you see me as generating a confusion when I've just drawn a
  474. distinction?
  475.  
  476. |>The point here is that speakers (I generalise from an excellent example :-)
  477. |>*already* treat actions as real, as objects; it is *natural* for them. I know
  478. |
  479. |This is the MWM where actions are obviously objects.  Again, we could just
  480. |be having a domain mixup problem here; I try to deal with all of them at once.
  481.  
  482. Earlier, you argued that ``naturalness'' was a key attribute in deciding
  483. how the world was structured. Now you say that some things, while
  484. ``natural'' (treating a push as an object) are in a different domain to
  485. the others. How does one tell which is which?
  486.  
  487. |>I'm pushing the cup in my example. Suppose I have a metal cup and an
  488. |>interesting arrangement of electromagnets, such that when the current flows
  489. |>the cup is thrown several feet in the air. What pushes the cup? The magnets?
  490. |
  491. |Their magnetic fields do since they come in contace with the object.
  492.  
  493. ``Contact''? What does ``contact'' mean for a magnetic field? I was
  494. rather under the impression they extended to infinity (unless confined).
  495.  
  496. |>Well, that's one view -- seems like magic to me, though. The magnetic field?
  497. |This is subjective; MW here.
  498.  
  499. I find it difficult to reconcile your use of ``subjective'' here with
  500. your previous comment about ``their magnetic fields do''.
  501.  
  502. [Bob elaborates his world-view]
  503.  
  504. |There is a universe.  Space is like a container and time exists
  505. |in it as well, they are components of the universe.
  506.  
  507. Nicely metaphorical.
  508.  
  509. | Time and mass are relative to the speed travelled within this universe.
  510. | Space is believed to be curved, probably positively.  This means there
  511. | may be Einstien-Rosen bridges (worm-holes) in it.
  512.  
  513. General relativity, fine.
  514.  
  515. | For any good Star Trek model this must be simulated.
  516.  
  517. Why? The Star Trek universe seems to be rather unlike ours. If you want
  518. worm-holes in the model, just put worm-holes in; you don't need to
  519. simulate them. Unless you're going to simulate the universe from the
  520. bottom up, in which case I advise investing heavily in Cray. And HP, of
  521. course.
  522.  
  523. | And of course there are the theories for multiple universes. If you
  524. | didn't model the universe as an object (or pass it as a parameter, ekkk)
  525. | minus ten points because there may be many of them.
  526.  
  527. Passing things as parameters is a very powerful technique; don't ekkk on
  528. it when *I'm* around.
  529.  
  530. | In fact, the laws may even change from one part of the universe to the
  531. | other meaning the universe had better keep track.
  532.  
  533. Physicists don't like the laws to change from place to place. When that
  534. happens, they add another layer of abstraction, or introduce a new
  535. field, so that the laws stay invariant.
  536.  
  537. | You'd better link these universes together, too.  Universes seem like an
  538. | implicit self to me with its assorted laws and contained matter/energy
  539. | existing in (or even creating) space. Maybe I'm not object-oriented
  540. | enough, since matter may create the space around it and may actually
  541. | enforce the laws itself.  Anyway, this explains your gravity and force
  542. | field type of questions.
  543.  
  544. Well, it's wonderfully metaphorical, but I don't think it *explains*
  545. anything -- I expect an explanation to have more detail, more power, to
  546. allow me to make predictions, when it's being presented as a Grand World
  547. Model.
  548.  
  549. |>The remark about artificial reality is, I think, irrelevant.
  550. |It is the rule for RWMing; I don't see your point.
  551.  
  552. I don't understand this, but I seem to have lost too much context. Can
  553. you explain this ``rule for RWMing''?
  554.  
  555. |>The notion of push is an abstraction, like the notion of cup. The actual push
  556. |>is real, as is the actual cup.
  557. |
  558. |No the push doesn't exist in its own right, as does the cup.  The push can
  559. |be understood in terms of the interactions between the objects involved.
  560. |You're back to confusing a RWM with an MWM.
  561.  
  562. And the objects can be understood in terms of the interactions involved.
  563. Do the interactions exist ``in their own right''?
  564.  
  565. |>Yes, and there are no ``objects'' knowing what to do in this description; just
  566. |>plain objects and relationships.
  567. |
  568. |The objects know their physical properties if you take away any abstractions.
  569.  
  570. You know very well I'll dispute this, because I don't think ``objects
  571. know'' anything, and I think the notion of object is a human invention.
  572.  
  573. |>In my model the messages carry out the operations; the computer is
  574. |>transparent. [Actually, since I haven't presented a model, you can't say it
  575. |>isn't so, and I can't say it is.]
  576. |
  577. |I meant that given:
  578. |  object msg ...
  579. |        msg ...
  580. |the second form sure looks like the computer (not an object) is executing it.
  581.  
  582. It looks to *me* like the message (or procedure, or function) (not a
  583. computer) is doing the execution. This is just word-play; you can take
  584. whichever view you like; we both know that at the bottom, the machine is
  585. doing everything. You can abstract this out in several ways -- the whole
  586. point of a HLL being this abstraction, of course -- and which you feel
  587. is natural depends on what you've met before.
  588.  
  589. |>Well, it's only clearer if that's how the model works, it has sod-all to do
  590. |>with reusability, and it's only closer to reality if the portion of reality
  591. |>you're modelling is modelled that way.
  592. |
  593. |Well, it is how the model works, it is reusable as shown with the implied self
  594. |as receiver (which you have yet to show in a consistent and complete way with
  595. |any other method), and the portions of reality are modelled that way!!!
  596.  
  597. Yes, *in your instance* -- you haven't made the case for a general rule.
  598. As for a ``consistent and complete way'', none of the examples *either*
  599. of us has presented are complete -- you've done one natural-language
  600. imperative description, and we've both mentioned the O.M(...) notation.
  601.  
  602. |>Shall I say this clearly? The *approach* I am arguing is *the acceptance of
  603. |>diversity* -- in both the world and our descriptive notations. You are
  604. |>insisting that actions are not real (not objects, and the real world consists
  605. |>of objects). Let me put this clearly: I think you're wrong, that you are
  606. |>excluding other approaches, despite their usefulness; and that this does not
  607. |>strengthen the naturalness of your approach, it weakens it.
  608. |
  609. |I don't think so.  I think you've been skipping between the RW, RWMs, AWs,
  610. |AWMs, and MWs and MWMs all over the place.  I know that actions are objects
  611. |in mental worlds (among others) and I know that that functional approaches
  612. |(or any approach) may due for AWs and AWMs but I find it interesting that
  613. |the object-oriented approaches can still do for all of them and I've just
  614. |been wondering if the reverse is true.
  615.  
  616. Translation: you have an abstract view in which RW (etc) feature, and in
  617. this view, I have been skipping about between these things. Apparently
  618. this is a Bad Thing. In this abstract view, you can do everything with
  619. objects. Objects are therefore a Good Thing, and the real world is thus
  620. object-oriented.
  621.  
  622. As a viewpoint, I think ``accepting diversity'' is better, because I
  623. do not believe in ``single solutions'' to large, complicated problems
  624. like modelling the world. Look how many years it's taken to get the
  625. models we have now! Look how many models there are! Physics -- at
  626. severla scales. Chemistry. Biology -- at several scales. Cosmology.
  627. Economics. Medicine. Psychology. Ecology. Calculus, topology, group
  628. theory, chaos theory. Umpteen schools of art and literature. All
  629. different, all having something to say about models of the world, all
  630. with their own vocabulary, techniques, structures, and passions. All
  631. *human* ideas about a world more complicated than we can hope to
  632. understand in detail.
  633.  
  634. |>|Yes, we can give attributes to a flock of birds even if thats not the way the
  635. |>|real world is broken up.  This is the subjective side, not the objective side
  636. |>|of objects.
  637. |>
  638. |>It's not that it's *subjective*, it's that it's *abstract*. (Subjective would
  639. |>suggest that it's private to the individual.)
  640. |
  641. |You're confusing AWs with MWs (to which I was referring).
  642.  
  643. That's what your model says. Do you have references?
  644. --
  645.  
  646. Regards,                    | "I always prefered Sherlock Holmes to Dan Dare"
  647. Kers.                       | Nathan Spring, in BBC2's _Star Cops_.
  648.