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=2.1 required=5.0 tests=BAYES_05,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!ut-sally!utah-cs!shebs From: shebs@utah-cs.UUCP (Stanley Shebs) Newsgroups: comp.lang.ada,comp.lang.misc Subject: Re: Software Reuse -- do we really know what it is ? Message-ID: <4658@utah-cs.UUCP> Date: Mon, 22-Jun-87 11:40:19 EDT Article-I.D.: utah-cs.4658 Posted: Mon Jun 22 11:40:19 1987 Date-Received: Tue, 23-Jun-87 04:18:14 EDT References: <8706160502.AA26398@ucbvax.Berkeley.EDU> <371@dcl-csvax.comp.lancs.ac.uk> <374@sol.ARPA> Reply-To: shebs@utah-cs.UUCP (Stanley Shebs) Distribution: world Organization: PASS Research Group Xref: mnetor comp.lang.ada:404 comp.lang.misc:460 List-Id: In article <374@sol.ARPA> crowl@rochester.UUCP (Lawrence Crowl) writes: >In article <371@dcl-csvax.comp.lancs.ac.uk> >craig@comp.lancs.ac.uk (Craig Wylie) writes: >>1. We don't really know what it is. > >Well, I find a glimering of re-use in reading Knuth's books. I will point at >an analogy though. Board level designers constantly use circuits designed by >others. They are packaged in integrated circuits. An interesting analogy. It says a lot about prevailing software culture: 1. Available chips do not always meet requirements exactly. For instance, a board might need 3 NAND gates, but the 7400 has 4. EEs just ignore the extra gate, or tie its pins to something stable. In a similar situation, software people fume and gnash their teeth over "wasted space". 2. Running wires around boards loses some performance, relative to cramming everything onto a single chip. All the techniques for modules, objects, etc, tend to slow things down. Again, software types tear their hair out and vow to recode everything into one assembly language procedure. Worse, other software types admire them for doing so! Come to think of it, the advent of VLSI tools promotes the same idea for hardware, and we're seeing lots of specialized chips these days... >>3. Languages such as Ada and Modula-2, and imperative languages in >> general are unsuitable for writing reusable software because of >> their concentration on the HOW rather than the WHAT. > >Clearly, we need more concentration on WHAT, but we should not abandon the ^^^^^^^^^^^^^^^^^^^^^^^^^ >efficiency of HOW. ^^^^^^^^^^ QED! 3. In general, hardware types have standards for every imaginable sort of interface, and they stick to them remarkably well. You can plug boards into a standard bus with only a small chance of sparks flying everywhere as the boards fry. In software, standards are strictly for lip service to managers; only a novice would consider combining programs from several different sources without planning a few hours or days of debugging! In short, I believe there are no technical problems or issues with reuse; it's the software culture that has to change. At present, the prevailing attitude is that the densely-coded, highly-optimized, do-everything program is a sort of ideal to which everyone aspires. Until this attitude changes, software reusability will continue to be a bad joke among those who actually write programs. >>5. Nobody can force programmers to write good reusable code. > >True. But no one need buy code that is not both good and reusable. I believe >there is a market for such code. Manufacturers seem to think their interest is in maintaining secrecy of code. Customers only care about speed and features. Read Infoworld and see if they ever say anything positive about a program that is slower but more modular. > Lawrence Crowl 716-275-5766 University of Rochester stan shebs shebs@cs.> ie do-r