comp.lang.ada
 help / color / mirror / Atom feed
From: crowl@rochester.arpa (Lawrence Crowl)
Subject: Re: Software Reuse  --  do we really know what it is ?
Date: Mon, 22-Jun-87 14:59:41 EDT	[thread overview]
Date: Mon Jun 22 14:59:41 1987
Message-ID: <378@sol.ARPA> (raw)
In-Reply-To: 4658@utah-cs.UUCP

In article <4658@utah-cs.UUCP> shebs@utah-cs.UUCP (Stanley Shebs) writes:
]... software people fume and gnash their teeth over "wasted space". ...  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!  ...
]
]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:
)))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!

Let me clarify my position.  I can specify a sort as a set of predicates and
let the system figure out how to satisfy those predicates.  This is the WHAT
approach used in languages such as Prolog.  Another approach is to write a
algorithm for sorting, e.g. quicksort.  This is the HOW approach used in
languages such as Ada.  Yes, the packaging of the sort will result in some
loss of efficiency.  However, it will be substantially faster than the WHAT
approach.  I am advocating an approach in which a package interface describes
WHAT and the implementation of the package describes HOW.

Because I wish to keep the macro-efficiency of algorithmic languages, do not
accuse me of wishing to keep the micro-efficiency of hand-tuned assembler.

]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!

Programmers to this sort of program combination many times a day in the Unix
shell.  There ARE approaches to software reuse that CAN work.  We need to
provide this kind of capability within a language.

]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.

There are technical problems.  For instance, how do you insure that the 
parameters to a generic package are appropriate.

Performance will always be a goal.  However, it must be balanced against cost.
Most programming done today is in a high-level language.  In the early sixties,
most programming was done in assembler.  So, the software attitude has changed.

Modular code also allows changes in representation that can lead to orders of
magnitude performance improvements.  Non-modular code strongly inhibits such
representational changes.  In short, the micro-efficiency of non-modular code
leads to the macro-INefficiency of poor algorithms and representations.

)))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.

Again, let me clarify.  I meant that the reusable software would be written by
software houses and sold to companies which write applications.  For instance,
Reusable Software Inc. sells a sort package to Farm Software Inc. which uses
it in its combine scheduling program.  Farm Software Inc. need not divulge its
algorithms or its use of packages written by Reusable Software Inc.

]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.

You forgot cost.  Modular code will cost substantially less in the long run.
-- 
  Lawrence Crowl		716-275-5766	University of Rochester
			crowl@rochester.arpa	Computer Science Department
 ...!{allegra,decvax,seismo}!rochester!crowl	Rochester, New York,  14627

  reply	other threads:[~1987-06-22 18:59 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1987-06-16  1:55 comments on Ed Berard's S/W reuse part 5 CONTR47
1987-06-18  8:46 ` Software Reuse -- do we really know what it is ? craig
1987-06-22  0:50   ` Lawrence Crowl
1987-06-22 15:40     ` Stanley Shebs
1987-06-22 18:59       ` Lawrence Crowl [this message]
1987-06-23 17:28         ` Stanley Shebs
1987-06-29  9:16           ` Software Reuse -- do we really know what it is ? (long) Ian Dickinson
1987-07-04 21:19             ` John B. Nagle
     [not found]             ` <glacier.17113>
1987-07-07  2:21               ` Software Reuse (short title) pase
     [not found]           ` <titan.668>
1987-07-06  5:28             ` Software Reuse -- do we really know what it is ? (long) David C. DiNucci
1987-07-07 15:18               ` Automatic implementation of abstract specifications debray
1987-07-09 22:40                 ` Automatic implementation of abstrac ron
1987-07-14 16:00                 ` Automatic implementation of abstract specifications Edward Hayes
1987-07-02  7:55 ` Software Reuse -- do we really know what it is ? Drew Adams
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox