ADA/C Flame wars

cspw rures cspw.rures at p0.f4.n494.z5.fidonet.org
Mon Mar 26 04:03:46 AEST 1990


 
I can't resist adding to the sterile ADA/C flame war.
 
Neither of the languages can guarantee even the most fundamental
algebraic properties about their expressions: e.g. that
     f(x) + f(x)
is always the same as
     2 * f(x)
and that
     f(x) + g(x)
is always the same as
     g(x) + f(x).
 
Imperative languages (any that permit re-assignment/side-effects
into memory locations in a time-dependant way) are inherently
"unsafe" and difficult to reason about formally.
 
The C community (a huge generalization!) recognize that the style of
computation is useful and fun in spite of (because of?) this feature.
They suffer no gradiose illusions about the language per se providing
security and reliability, and recognize that programs do not have to
be perfect to be useful.  (I think it was Plauger's Programming Pearls
that describes a programming community were using a fairly slow
type-setting package with about 10 known bugs.   Asked the question
"If you had a choice of fixing these bugs or doubling the speed
of the package, which would you chooose",  the respondents inevitably
chose the latter.)
 
By contrast, the ADA community (and some others) seem to be
suggesting that mere surface changes in the language will somehow
fix deep underlying semantic problems.  I can only see this as
a blatant attempt to mislead the fund givers and managers (those who
wear their suits and browse the manual pages, you know, and are
'put off' by the flippant realism that they find).
 
It is obvious that each language may have a niche, and that the
questions above may have got different answers if the sofware was a
missile guidance system.  What seems strange is that the C community
seem to recognize both sides of the coin, and generally accept that
some guys in some large-scale or sensitive software systems need ADA.
The converse does not seem true: the C community comes under vitriolic
attacks for writing useful software with a damn good price/performance
ratio.
 
Variable-based programming is inherently tricky.  Telling us that ADA
will solve our problems is like suggesting that we wear earmuffs
while playing Russian Roulette, so that the noise won't hurt our
ears.  By all means use the earmuffs, but stop trying to tell us
that this makes the game safe!
 
Pete Wentworth



--  
uucp: uunet!m2xenix!puddle!5!494!4.0!cspw.rures
Internet: cspw.rures at p0.f4.n494.z5.fidonet.org



More information about the Comp.lang.c mailing list