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: 103376,e8c725ea56364578 X-Google-Attributes: gid103376,public X-Google-Thread: 109fba,9aa4a1851f1e4800 X-Google-Attributes: gid109fba,public X-Google-Thread: fac41,e8c725ea56364578 X-Google-Attributes: gidfac41,public X-Google-Thread: f5d71,30c97c79ca78278e X-Google-Attributes: gidf5d71,public X-Google-Thread: 114809,9aa4a1851f1e4800 X-Google-Attributes: gid114809,public From: Richard Riehle Subject: Re: abstraction and encapsulation (Re: Will Java kill C++?) Date: 1996/05/16 Message-ID: #1/1 X-Deja-AN: 155166795 references: to: John English content-type: TEXT/PLAIN; charset=US-ASCII organization: National University, San Diego mime-version: 1.0 newsgroups: comp.lang.java,comp.lang.c++,comp.lang.eiffel,comp.lang.ada,comp.lang.smalltalk Date: 1996-05-16T00:00:00+00:00 List-Id: On Wed, 15 May 1996, John English wrote: > Extensibility is important for maintenance too; a lot of maintenance > changes involve adding extra bells and whistles which can be a major > problem if extensibility *wasn't* designed for. This (IMHO) is a > much more important consideration than reuse, ... Exactly. As a software product ages, more of the maintenance (Meyer cites a study showing 42%) is devoted to extending that product with new features than any other single activity. In conversations with other developers, and based on personal experience, I believe that maintenance of a mature software product is closer to 75% to 80% new features. The important thing is to add these new features without breaking the existing product. Before OOP, this was the equivalent of open-heart surgery, and the mortality rate of the software was about the same as one expects from such surgery. How do we extend an existing product without breaking it. Inheritance is one mechanism. It is not enough, but it is important. Ada 95 provides some additional mechanisms, as does Eiffel. C++ is a little frail in this regard, but it is better than what we have had in the past. The reality is that we are a long way off from fully satisfying the demands of extensibility. Yet this is where the long-term economic benefits are hidden. Richard Riehle