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 autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public X-Google-Thread: 11cae8,b87849933931bc93 X-Google-Attributes: gid11cae8,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public From: rmartin@oma.com (Robert C. Martin) Subject: Re: What is wrong with OO ? Date: 1996/12/19 Message-ID: #1/1 X-Deja-AN: 204919417 references: <32A4659D.347A@shef.ac.uk> <32A71BC6.2D857063@arscorp.com> <32A82AFE.255A@possibility.com> <58bq8c$3n6@news.utdallas.edu> <32AA207E.3199@deep.net> <32B3F45C.5140@deep.net> organization: Object Mentor Inc. newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.lnag.java,comp.object,comp.software-eng Date: 1996-12-19T00:00:00+00:00 List-Id: In article , dewar@merv.cs.nyu.edu (Robert Dewar) wrote: > The fact of the matter is that there is NO giant shift of paradigm involved > here, despite what anyone says. Just look at the OO programs that people > produce. They are not radically different from conventional procedural > programs, and one would not expect them to be. > > OO techniques are a useful way of extending the conceptual design domain, > and OO features in programming languages allow added flexibility in > the solution space. Good! But trying to fit everything into the OO mold > is as reasonable as believing these ads on TV that suggest that all your > handy-man's problems at home can be solved with one amazing tool! I certainly agree with this sentiment; with one minor exception. While there may not be a "Giant Shift" of paradigm; there is a paradigm shift, and it can be overwhelming for some. The shift is, for the most part, a shift in priorities. We shift our focus from the details of what needs to be done to the structure of the code that will do it. We think more in terms of abstractions and interfaces than functions and data. We guard against undesirable dependencies rather than just depending on what we think we need at the time. We think about cogent groupings of data and function that can implement those interfaces as a single unit rather than just the data and functions that will do the job. Some engineers have a great deal of trouble making this kinds of shift. In some cases the problem is conceptual. i.e. the engineer just can't see the interfaces, the groupings, the structure, etc. In other cases the problem is a fear of overdesign. By building the abstractions and structures the engineer feels that he/she is wasting time and not actually making the program work. In either case, the shift of thinking, the paradigm shift, can be quite difficult to make. -- Robert C. Martin | Design Consulting | Training courses offered: Object Mentor | rmartin@oma.com | Object Oriented Design 14619 N Somerset Cr | Tel: (847) 918-1004 | C++ Green Oaks IL 60048 | Fax: (847) 918-1023 | http://www.oma.com "One of the great commandments of science is: 'Mistrust arguments from authority.'" -- Carl Sagan