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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID, LOTS_OF_MONEY autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 11cae8,b87849933931bc93 X-Google-Attributes: gid11cae8,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public From: malak@access2.digex.net (Michael Malak) Subject: Re: What is wrong with OO ? Date: 1996/12/21 Message-ID: <59gu69$mcd@access2.digex.net>#1/1 X-Deja-AN: 205273739 references: <32AA207E.3199@deep.net> <32B758D7.61EF@deep.net> <32BB2C50.2B0B@rase.com> organization: Express Access Online Communications, Greenbelt, MD USA newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.lnag.java,comp.object,comp.software-eng Date: 1996-12-21T00:00:00+00:00 List-Id: In article <32BB2C50.2B0B@rase.com>, Tansel Ersavas wrote: > ><< $1,000,000.- Question >> >What is the most important difference between the procedural paradigm >and the object oriented paradigm that makes OO a significantly different >one? ><< End question >> OO reduces complexity in a system by reducing the number of dependencies. A good OO system will have a number of loosely coupled objects, with much of the detail encapsulated in the objects themselves. Moreover, OO systems are resiliant to change. In OO, one identifies the "objects", the "things" in the domain. It turns out that these boundaries change less frequently than do their implementations. Objects may (and are almost always) expanded, but not "changed" as the system grows. In procedural systems, boundaries are less common (to be sure, different "subsystems" are independent, but that's the big exception) and less rigid. Dependencies are combinatorically more prevalent. Worse, the dependencies are not necessarily organized or recognized in any explicit way, so that a change to one part of the system has unknown effects in other parts of the system. OO exploits (and relies upon) human being's ability to abstract -- to be able to see a table and recognize its "tableness" -- in order to "magically" reduce dependencies, complexity, and brittleness (w.r.t. change). -- Michael Malak Magic forwarding e-mail address: Washington, DC malak@acm.org