home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.object
- Path: sparky!uunet!decwrl!csus.edu!netcom.com!objsys
- From: Bob Hathaway <objsys@netcom.com>
- Subject: Re: O.M(...) vs M(...), and is the Real World O-O?
- Message-ID: <q9mnb_l.objsys@netcom.com>
- Date: Sat, 05 Sep 92 01:15:41 GMT
- Organization: Object Systems
- References: <a6bb2744@infoage.com> <45jnpm_.objsys@netcom.com> <KERS.92Sep3100309@cdollin.hpl.hp.com>
- Lines: 112
-
- [Don't read the P.S.'s on this one!]
-
- In article <KERS.92Sep3100309@cdollin.hpl.hp.com>, kers@hplb.hpl.hp.com (Chris Dollin) writes:
- > > .................................................... This means the
- > > object-oriented constructs are simply used to simulate and model the
- > > real-world. For example, the "world" will enforce an equal and opposite
- > > reaction whenever an object undergoes some force in the world model.
- > >
- > >Isn't this use of a ``world'' a violation of the object-oriented model you
- > >propose?
- >
- > Absolutely not. It is a perfect use of object-oriented technology as I've
- > already given you many examples and explanations of.
- >
- >If that's your idea of perfection in an object model -- resolve difficulties by
- >having an additional object which handles all the things that local objects
- >can't handle -- then you and I have remarkably different notions of perfection,
- >object models, and what constitues a ``natural model'' of the world -- again,
- >if you recall, this being where we came in.
-
- This paragraph is just to show tenability for the approach *I* was advocating.
- To keep things very simple, if one has a graphical model in which objects
- exist (or are mapped into) then there must be a coordinate "space". For
- example, it is common to use a spacial partitioning representation which
- keeps track of various object's positions in space. Then its easy to see
- when objects come in contact or to apply (or to have the objects apply)
- forces. This space is therefore an object and can even be viewed as a
- container. It can enforce laws such as: two objects cannot occupy the same
- space at the same time. The objects themselves could enforce such laws but
- the space must still exist nonetheless. And the objects deciding for
- themselves has the problem that they can do anything. This is not a problem
- with a controlling "space" (universe, world, or whatever) that ensures all
- laws are enforced. This is a "natural" solution since it fits in with the
- real world well (objects do exist and do *occupy space* whether one
- subjectively understands or believes this or not) and is a classical solution.
-
- >It's never been clear to me whether you've been arguing from the *descriptive*
- >stance (``this is how certain languages *are*''), the *prescriptive* stance
- >(``this is is how languages *should be*''), or the *analytic* stance (subcase
- >of descriptive; ``this is how languages *could be seen*'').
-
- I was arguing from a general position: "this general facility can do ...,
- ... does it this way, ... does it that way. Why are people pointing to ...
- when it is weaker than the general case and since the latter is what's
- important?" When none of the ...s do it well enough I try to do something
- about it and carefully consider *constructive* feedback.
-
- >Thus, C++ and other statically typed OO languages *do* only dispatch on one
- >(the ``first'') argument [anyone have a counter-example?], but they *need not*
- >-- that is, static typing does not conflict with many-arg dispatch.
-
- Static typing does interfere with multiple argument dispatch. Just like C++'s
- multiple-inheritance interferes with virtual's contra-variance and C++'s
- implementation of virtual base classes interferes with downcasting, downcasting
- interferes with C++'s ability to perform multiple argument dispatch with
- virtuals (meaning all overriding signatures must match exactly). And C++ is
- a perfectly good example of a statically typed (no types exist at run-time)
- OO language. To spell it out completely,-) all statically typed OO languages
- will suffer from this "conservative estimate" problem and *obviously* static
- and dynamic functions *always* switch on all argument types available either
- statically or dynamically (with static overriding as the special substitution
- case under discussion). [8th time]
-
- >fact, I don't think it's a ``trivial static efficiency trick'' -- given the
- >(a) alternative, such as CLOS-style multi-methods, which are quite hard to
- >implement efficiently in the general case, it's a rather elegant solution.
-
- Its not very hard since there are loads of common optimization techniques but
- it can take a little longer.
-
- >Regards | "Always code as if the guy who ends up maintaining your code will be
- >Kers. | a violent psychopath who knows where you live." - John F. Woods
-
- Regards | "Always seamlessly and elegantly implement your well thought out
- Bob. | design and never just "code" lest you be judged by the consequences
- | of your own actions." - S. Engineering
-
- P.S. I'm truly sorry, but I can't resist:
-
- >[Bevan: he (like Chris) couldn't understand OO message "multi-methods"]
- >
- > 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.
- >
- >At the risk of appearing as arrogant as the above: ditto
- >
- >bevan
-
- Considering the number of mistakes made by Chris on this subject (arg matching)
- and your ambiguous referent (which I thought you disapproved of, Steve):
-
- AT LAST WE AGREE!
-
- For background, bevan is an old outspoken mathematician/functional-oriented
- person while I am an outspoken OO person. We first met when bevan argued
- against natural language "like" programming langauges (Pascal/Ada/Smalltalk
- were some of my examples along with some extensions) and he even went so
- far as to claim that natural language interfaces to databases (which allow
- anyone to easily access a database) were a bad thing! Chris and I first got
- into it when Chris claimed that hierarchical restrictions on packages were a
- good idea! [This hasn't been popular lately and nor was it with me back then]
-
- P.P.S. I've done all of this argument matching stuff before (including
- something like the CLOS style) so its not really fair (to Chris or Steve).
-
- P.P.P.S. I'll have to relookup objectivism. I thought they included
- ridiculous principles such as "universal truths" and not just scientifically
- measurable and observable universal laws. Because I draw the distinction
- between the subjective and the objective I don't believe I'm in their camp.
-
- P.P.P.P.S. As usual, my company doesn't even know about my postal activities!
-