Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site wanginst.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!wanginst!fairley From: fairley@wanginst.UUCP (Dr. Richard Fairley) Newsgroups: net.lang,net.lang.st80 Subject: Re: Definition of Buzzwords: "Object-Oriented" Message-ID: <163@wanginst.UUCP> Date: Mon, 28-Jan-85 17:50:15 EST Article-I.D.: wanginst.163 Posted: Mon Jan 28 17:50:15 1985 Date-Received: Wed, 30-Jan-85 05:24:18 EST References: <4288@ucbvax.ARPA> Distribution: net Organization: Wang Institute, Tyngsboro, Ma. 01879 Lines: 55 Xref: watmath net.lang:1325 net.lang.st80:169 > I have recently been involved in some discussions in which the topic > of so-called "object-oriented" languages and programming techniques > has been explored. Despite the fact that "everybody knows" that > Smalltalk-80 is "object-oriented" and "everybody knows" (or pretends > that they do) what "object-oriented programming" is, this same > group of "everybody"s is having a hard time coming up with a rigorous > definition of those terms which goes beyond one of the two following: > > 1) The term is self-explanatory: the orientation of the language/program > is towards the "object". This causes the discussion to move in > the direction of defining an "object", and how exactly the language > or program is oriented in that direction. > > 2) The term is defined by example: if somebody says a language is "object- > oriented" and most people agree, then the language is object-oriented > (the "science fiction" definition approach - "science fiction" is what > "science fiction authors" write, "science fiction editors" buy, and > "science fiction fans" read). > > Neither of these approaches makes anybody particularly happy. Nobody's > been able to find an accepted definition in the literature, either. > So, the question is: > > Is there a definition of the term "object-oriented" which is both descriptive > of all current uses of that term and accepted by all who currently use it? > If not, can such a definition be constructed? > > I would be interested in hearing from anybody who has any ideas relating > to this topic. > > Bill Laubenheimer > ----------------------------------------UC-Berkeley Computer Science > ...Killjoy went that-a-way---> ucbvax!wildbill In my view, object-oriented means data abstraction PLUS inheritance and dynamic binding; although most data abstraction languages use strong type checking, which is inconsistent with dynamic binding. By data abstraction, I mean separation of specification from implementation, information hiding, and state retention within the object. The term object-oriented has been appropriated by different disciplines: database, architecture, operating systems, and programming languages all use the term with different meanings. The term is especially confused within the programming field because Grady Booch and the Ada crowd use the term for what most people refer to as data abstraction; i.e., information hiding with state retention and strong type checking. The easiest way to distinguish object-orientation from data abstraction is to say it's what Smalltalk does that Ada does not. I think you will find that the Smalltalk people at Xerox PARC have the historical edge on use of the term. Dick Fairley decvax!wanginst!fairley