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: fc89c,e2e7624a3542400a X-Google-Attributes: gidfc89c,public X-Google-Thread: 109fba,e2e7624a3542400a X-Google-Attributes: gid109fba,public X-Google-Thread: 1014db,e2e7624a3542400a X-Google-Attributes: gid1014db,public X-Google-Thread: 1089ad,e2e7624a3542400a X-Google-Attributes: gid1089ad,public X-Google-Thread: 103376,e2e7624a3542400a X-Google-Attributes: gid103376,public From: Bob Stout Subject: Re: Software reuse Date: 1996/08/19 Message-ID: #1/1 X-Deja-AN: 175115413 x-nntp-posting-host: freddie.wins.compaq.com sender: news@twisto.eng.hou.compaq.com (System Administrator) references: <320EF9AB.42877E5C@sh.bel.alcatel.be> <3210AA4B.2578@tus.ssi1.com> <32133648.4CBA@la.ccfo.carel.fi> content-type: text/plain; charset=us-ascii organization: Compaq Computer Corp. mime-version: 1.0 newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada,comp.lang.vhdl x-mailer: Mozilla 1.22 (Windows; I; 32bit) Date: 1996-08-19T00:00:00+00:00 List-Id: baynes@ukpsshp1.serigate.philips.nl (Stephen Baynes) wrote: >: Some people, though, can't really begin to think in terms of an overall >: design until they've deconstructed down to the component level. These >: people are library programmers. >If they start at or wait untill they reach the low level components before >looking for reuse then they are not much good. They should be aiming to >reuse whole subsystems, and in the extream to reuse the whole program. You're showing the mindset of an applications programmer. What you say is true if and only if the overall program is foremost in your mind. Library programmers, OTOH, deconstruct the program searching for solutions for the general case each step of the way. As each level is reached, the preceeding higher level is all but forgotten as a new set of problem domains emerge. When these become atomic, then the overall solution builds itself from the ground up. Well designed subsystems aren't built out of application-specific building blocks, but out of well-designed components. What you're saying is equivalent to saying that to design a radio of reusable components, you design the IF subsystem without worrying about building it out of standard parts. This is obviously asinine! You build maintainable programs out of maintainable subsystems out of maintainable components. The reason that most "reusable" components aren't reusable is due in large part to attitudes such as yours that view reusability within the tunnel vision of the task at hand. OTOH, some of the most reusable library functions start out life as general case solutions in search of specific sets of problems to solve.