Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!julius.cs.uiuc.edu!rpi!bu.edu!att!cbnews!cbnewsm!cbnewsl!cbnewsk!ech From: ech@cbnewsk.att.com (ned.horvath) Newsgroups: comp.sys.mac.programmer Subject: Re: Objective-C compiler? Message-ID: <1990Dec12.161329.12831@cbnewsk.att.com> Date: 12 Dec 90 16:13:29 GMT References: <#%F^8W_@rpi.edu> Organization: AT&T Bell Laboratories Lines: 52 I had said, > Frankly, the object models of Object Pascal (i.e., MacApp) and > Objective-C are so different that it's hard for me to imagine > MacApp support. From article <#%F^8W_@rpi.edu>, by Garance_Drosehn@mts.rpi.edu (Garance Drosehn): > Um, but isn't it true that there's a C++ version of MacApp around (or in > the works)? Would Objective-C fit in well with the object models of C++? > Garance_Drosehn@mts.rpi.edu Hmm, I guess I wasn't explicit enough. C++, Object Pascal, and Eiffel all treat the notion of "class" as an extention of the idea of "datatype." The type of an object is always well-defined, and the set of messages that object can respond to are always completely specified (and restricted) by that type. An object reference always has a specific static type, which further restricts the set of messages that can be sent to the object, and the object referred to always has to be "conformable" with the static type of the reference. In Object Pascal conformable just means "of the same class or a subclass of that class." Eiffel and C++ have multiple inheritance, and I won't even TRY to tackle the implications of THAT in a short note! By contrast, Objective-C is, to a first approximation, SmallTalk-80 embedded in C. (I don't claim the approximation is exact, flames to comp.object.) While every object still has a definite type, object references are essentially typeless, and it's always valid to send any message to any object, with a default behavior that the system stops and says " doesn't know how to ." Reconciling such disparate models is a very difficult task, I'd call it a practical impossibility. Indeed, mixing C++ with Object Pascal requires the C++ programmer to restrict shared objects to be heap- resident, handle-based, and use single-inheritance. But even that degree of compatibility required some very careful implementation by the MPW engineers at Apple (thanks, all). The plus side of my posting is that, while I wouldn't expect MacApp to be supported by Objective-C, MacApp is not the only generic application imaginable, or even the only one presently shipping (the Think Class Library comes immediately to mind). In the particular case of Objective-C, Stepstone and third parties have developed and continue to develop class libraries (ICpaks), including Mac-like interface elements, which fit the Objective-C model but aren't restricted to a single platform. Brad Cox isn't just a techie, he's also a businessman. If he's thinking about Objective-C for the Mac, he's fully aware that Mac users (and programmers) take the guidelines seriously. So, I would expect a pretty complete set of ICpaks, exploiting the Mac Toolbox, on day 1... =Ned Horvath=