Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.csd.uwm.edu!bionet!apple!well!nagle From: nagle@well.UUCP (John Nagle) Newsgroups: comp.sw.components Subject: Re: Reasons for low reuse Message-ID: <13499@well.UUCP> Date: 7 Sep 89 03:05:45 GMT References: <765@swbatl.UUCP> <6393@hubcap.clemson.edu> Reply-To: nagle@well.UUCP (John Nagle) Lines: 28 The "reuse" concept is fundamentally flawed. Software components are not "reused", they are "used". This is to say that good software components are not leftovers from past projects, but units designed from the beginning to be components. They are productized, documented, and sold as components. There is a small but successful industry selling software components for microcomputers. Graphics packaged, database management packages, and communications packages seem to be the most common offerings. Having used a few of these products, my main observation is that using software components from multiple vendors tends to result in annoying problems. A typical problem stems from several components assuming that they can safely replace some standard portion of the standard C library (such as "printf" or "exit") with their own version. This is a good reason for only buying components for which one gets source code, so that such problems can be resolved. Another problem is incompatibility of components with new releases of other tools. When a new release of a C compiler comes out, it seems to be necessary, annoyingly, to upgrade some components at the same time. This can create problems, since the upgraded components may not be available for some time after the release of the compiler. Operating system releases can cause similar trouble. This can be a serious problem; in the worst case, dependence on a software component which is not being upgraded can result in the inability to continue work on a program. John Nagle