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.6 required=5.0 tests=BAYES_05,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,ef0074ec236ba6e3 X-Google-Attributes: gid109fba,public X-Google-Thread: 108717,ef0074ec236ba6e3 X-Google-Attributes: gid108717,public X-Google-Thread: 1014db,ef0074ec236ba6e3 X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,b19fa62fdce575f9 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,ef0074ec236ba6e3 X-Google-Attributes: gid1108a1,public X-Google-ArrivalTime: 1994-11-23 12:04:46 PST Newsgroups: comp.lang.ada,comp.lang.c,comp.programming,comp.lang.c++,comp.object Path: nntp.gmd.de!xlink.net!sol.ctr.columbia.edu!howland.reston.ans.net!swrinde!emory!slammer!sd!dvick From: dvick@lanier.com (Don Vick) Subject: Re: What is OO (Was Why don't large companies use Ada?) References: <3aamuc$14l@matrix.fwi.uva.nl> <785104767snz@rippleco.demon.co.uk> Message-ID: Sender: dvick@lanier.com (Don Vick) Organization: Lanier Worldwide, Tucker, GA Date: Wed, 23 Nov 1994 20:04:46 GMT Xref: nntp.gmd.de comp.lang.ada:16948 comp.lang.c:69590 comp.programming:13055 comp.lang.c++:80165 comp.object:17686 Date: 1994-11-23T20:04:46+00:00 List-Id: In article <785104767snz@rippleco.demon.co.uk>, Doug Robertson wrote: >> > >Object Orientation is one of those things where almost everyone seems >to be able to identify what isn't, but few people seem to be able to >identify what is. > I'm sure lots of people will have answers for this one. Here's a historical view (as best I can remember it). In the mid to late '70s, people who developed large complex software for a living were trying to find a good way to divide a large system into smaller pieces to make it more manageable and (theoretically) allow the coding to be done by teams instead of individuals. Lots of people had theories on ways to divide, or decompose a system. Ken Orr said, "Make the program structure like the output structure." Michael Jackson (the computer scientist, not the singer) said, "Make the program structure like the input data structure." Glen Myers said, "Make the program structure like the functional structure of the application." Others (I've forgotten who said what) looked at data flow or process structure in different ways to get clues on decomposition criteria. And someone said, "Think of the objects that the application models; identify the data (what we know about the objects) and the operations (what we do to the objects), and make *that* your program structure. This turned out to be a pretty good way to do things - programs could become more maintainable and understandable, and it was easy to hand out objects to different programmers for implementation, as long as they implemented the agreed-upon operations for their object. Now this object oriented decomposition could be done in any language. I have done it or seen it done in FORTRAN, COBOL, BASIC, C, assembler, Unix shell scripts -- you name it. But as you use this technique, you start to wish for features in your programming language. "I wish COBOL had functions and allowed for private data." "I wish FORTRAN allowed longer variable names." "I wish C made it easier to encapsulate an object." etc, etc. So people started making languages that had these features. Then they wanted to store the data objects they could describe in these languages, so they started making databases that could do *that*. In other words, "object oriented" was first of all a decomposition strategy, and only incidentally a kind of language, or database, or design methodology. Anyway, that's the way I remember it. -------------------------------------------------------- Donald E. Vick (dvick@lanier.com, dvick@crl.com) Voice: (404) 493-2194 Fax: (404) 493-2399