Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!uakari.primate.wisc.edu!gem.mps.ohio-state.edu!usc!apple!agate!shelby!decwrl!megatest!djones From: djones@megatest.UUCP (Dave Jones) Newsgroups: comp.object Subject: "Messaging" (Re: Reentrant code) Message-ID: <8636@goofy.megatest.UUCP> Date: 6 Oct 89 22:31:06 GMT References: <4540@internal.Apple.COM> Organization: Megatest Corporation, San Jose, Ca Lines: 52 From article <4540@internal.Apple.COM>, by Piersol@apple.com (Kurt Piersol): > In article <24517@dcatla.UUCP> itwaf@dcatla.UUCP (Bill Fulton [Sys Admin]) > writes: >> (Messages are specific to certain implementations of OOPS) > > Now here's an interesting thought. Am I in fact incorrect in assuming that > all OOP systems contain some concept of messaging? Yep, you are are incorrect in assuming that. > I have difficulty > imagining why one would bother with OOP at all without an idea of > messages, I have difficulty imagining why you have difficulty imagining that. Perhaps something is going around. An imagination virus maybe. There are plenty of reasons to orient programs around objects, without looking up procedures in hash-tables. Try using both standard C and C++ for comparison. C++ has several features which makes it easier to use than plain old C. That's why it exists. But it does bot have "messages". > ... I can recall a few systems claiming to support OOP which > had no message concept, but instead claimed operator overloading amounted > to the same capability. Who said that? It is obviously not the same capability. Each has its own advantages and disadvantages. And of course there are still other ways to bind functions. Storing pointers to functions within structures, (so-called "virtual functions"), is another technique that has practical value. > I suppose I just dismissed that notion out of > hand. What say the rest of you? I find few applications for messaging which can not be handled in some more direct way. The only system I can recall building which used messaging in a fundamental way could not have been implemented directly using most message-based languages, because the messages were sent between processes on different machines. Come to think of it, it was really a substitute for static binding of interprocess function calls, a concept which I have never seen implemented. Perhaps if I routinely used a language with messaging built in, I would find more application for it, but I am dubious. If it were really that useful, I think I would have invented a home-grown method. It's not that hard to do in an ad hoc way. (The "Objective C" book has a clear description of one way to implement it.) I have some qualms about messaging. Concerns about type-security, etc.. What is the state of the art these days?