Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!princeton!allegra!ulysses!mhuxt!m10ux!mnc From: mnc@m10ux.UUCP Newsgroups: comp.lang.misc Subject: Re: Teaching object-oriented paradigm to beginners? Message-ID: <147@m10ux.UUCP> Date: Sun, 11-Jan-87 13:47:27 EST Article-I.D.: m10ux.147 Posted: Sun Jan 11 13:47:27 1987 Date-Received: Mon, 12-Jan-87 23:19:15 EST References: <4000001@nucsrl.UUCP> <3288@milano.UUCP> Organization: AT&T Bell Labs, Murray Hill, NJ Lines: 31 Thank you, Michael for a lucid, no-bullshit explanation of your view of the object-oriented paradigm. I have heard a similar summary from some of the (precious few) other promoters of this paradigm who are willing to provide a non-mystical comparison of it to more established programming techniques, using conventional computer science terminology. This leaves me with two unanswered questions: (1) What is the difference (other than a rather contrived, anthropomorphic view of the relationship between functions and values), between O-O programming and the ten (?) year old theory and practice called "abstract data types"? The fundamental belief with technical importance in both methods (with which I completely agree) is that pieces of programs should be divided into chunks that have a precisely documented interaction with other chunks, but the internals of which are completely unknown (or irrelevant to) other chunks. Put more concisely, "separate WHAT it does, from HOW it does it, so that the HOW can be changed without affecting the WHAT". Isn't O-O programming simply a special case of, i.e. one particular method for achieving, abstract data types? It seems to lie completely under the definition of an abstract data type as a collection of types and functions on those types, together with the notion that we can have multiple objects of the abstract data type. (2) Why is it so hard for O-O programming advocates to explain the advantages of their programming methodology without slipping into obscure, specialized O-O jargon, or invoking the religious argument, "well you can't under- stand why it is better until you've done a large amount of O-O programming yourself"? -- Michael Condict {ihnp4|vax135}!m10ux!mnc AT&T Bell Labs (201)582-5911 MH 3B-416 Murray Hill, NJ