From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site ucbvax.BERKELEY.EDU Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!ucbvax!dartmouth.CSNET!mss From: mss@DARTMOUTH.CSNET Newsgroups: net.lang.ada Subject: Re: OOD References Message-ID: <499215441.mss@dartvax> Date: Sat, 26-Oct-85 19:57:00 EST Article-I.D.: dartvax.499215441.mss Posted: Sat Oct 26 19:57:00 1985 Date-Received: Mon, 28-Oct-85 03:53:07 EST Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet List-Id: One should be careful when referring to "Object Oriented Design". There are two separate design approaches that share that name: abstract data types (a.k.a., data abstractions, information hiding) and hierarchical types (a.k.a., classes). The former focuses on the idea that an object's type should be defined by a name (rather than by a storage structure) and a set of operations on the objects. One thinks of Ada's packages (with private types), Modula's modules, Clu's clusters or Alphard forms in this category (no pun intended). Hierarchical types allow one to provide a "general" interface which can be refined as necessary, for example, a graphics-object may be further refined into rectangles and ovals. One thinks of Smalltalk's classes, Simula-67's classes, Object Pascal's Objects and Scratchpad-8? (84 I think) as examples. Note that these are orthogonal concepts. One can have hierarchies without hiding (e.g., Simula classes without the use of "hidden" attribute) and hiding without hierarchies (e.g., Ada packages). Smalltalk has hiding and hierarchies. In reading the literature, one should be especially careful of separating concerns of "Object-Oriented" systems. A lot of discussion about the Smalltalk-80 system implies that its Object-Orientation is what makes the bit mapped graphics, interactive debugging, automatic garbage collection, symbolic debugger (a.k.a. browser) and other development aids available. This is not true. For example, MacPascal (limited though it is) gives many of the same features w/o any pretense of "Object Orientation". Historically, the development features just weren't available elsewhere besides Smalltalk-80, hence there is an implication that the development features and OOD must be synonymous. In fact, you can get the same features for an assembler system if you are willing to "pay" for it. The LRG was willing to pay, the Mesa group was willing to pay less, others were not willing to pay at all. -Mark Sherman (mss@dartmouth.csnet)