Subject: Re: Theory #51 (superior(?) programming languages)
From: Erik Naggum <>
Date: 1997/01/23
Newsgroups: comp.arch,comp.lang.lisp,comp.lang.scheme
Message-ID: <>

* David Hanley
| The complaint [about overflow] is stupid because it is pretty much a
| non-issue.  I've probably written well over 100,000 lines of C code
| during my life.  A lot of it was doing real integer math--simulations and
| the like.  I was never once bitten by integer overflow 'bugs'.  I tested
| for integer overflow in exactly two cases that I can think of, and it was
| trivial.

I've seen accounting packages that used `awk' to sum list of numbers
overflow and lose money for a company.  I've seen the uptime on a computer
overflow and cause the system to crash because that meant its notion of
time got warped.  I've seen programmers use floating point because integer
arithmetic couldn't be trusted (and I've seen the cost of that decision).

in all of these cases, reasonable assumptions from users were not met.  in
all of these cases, lack of support for a true integer type is the direct
cause.  you can tell me you never had any problems.  that doesn't mean
there never were any problems.  and if I should listen to your experience,
why do you think your experience invalidates mine?  just because you have
never had a car accident doesn't mean you don't buy insurance.  most of
these "safety" things are there _because_ they will be used very rarely!
(if you had car accidents all the time, you would have had to calculate
them into your regular expenditures, right?)

| It's more stupid because there's a _lot_ of things you could rip on C
| which people would have a hard time arguing with.  

I gave a list of five failings.  D. J. Bernstein chose to jump only on
"overflow".  go figure.

| Why not pick on the fact that C++ makes you declare everything in a class
| -- ( data members and private functions ) in the class definition,
| causing a lot of unnecessary recompiling?  Why not pick on the bogus
| declaration syntax?

hey, this is almost as bad as "why not spend the money for a new weapons
program on the homeless?".  no matter what I had picked as the failings,
you would have come up with another version of that rhetorical question.
when nothing can satisfy a predicate, there's no point even in trying.

1,3,7-trimethylxanthine -- a basic ingredient in quality software.