[log in to unmask] asked:

 > How can it possibly be that for something as important as software,
 > and for languages that are a decade old, there is 'inadequate data'
 > to support a language decision, and if the data is in fact
 > inadequate, how can it be that it's not worth spending any time or
 > money getting some data?  Or, if it's another case of "make the
 > decision, then do the staff work", what does it say that nobody
 > even bothers to pretend to justify the decision. :(

  A few data points on how hard it is to get good data:

    ANSI C is much better than K&R C if you are trying to do
maintenance.  How much better?  Very difficult to tell now because a
lot of C code, even if it is compiled in a strict ANSI mode, is older
code just modified enough to compile without error.  (But often with
lots of warnings.)  There isn't enough purpose-built, designed and
coded as ANSI C code floating around to have any non-anecdotal
evidence that it is better.

    C++ on large projects is a disaster--if used the way the language
was intended to be used.  But right now one of the things I'm doing
involves a port of C code to NT.  Using the Visual C++ compiler is an
advantage, since we can comment our porting changes in C++ rather than
C style.  The code of course is still C and doesn't use any advanced
C++ features.

   The same seems to hold true in Ada.  Using inheritance and
overriding can make code changes much more difficult.  But Ada 95
style is not Smalltalk, Lisp, or C++ style.  Single level inheritance
from an abstract type appears much more often.  (In the extreme a
forest of bushes instead of a single all-encompassing class hierarchy.
I've even written code where all of the non-abstract types in a class
come from instantiations of a single generic.)  Are we gaining more
safety from such localization than we are losing in opportunity for
reuse?  Anyone even want to propose an experiment to determine an
answer?

   It is an unfortunate property of the business/profession we are in
that it is not a science, or at best it is an observational science
like astronomy.  There are lots of questions where the experiments
needed to find answers would be too expensive or are impractical for
other reasons.


                                        Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...