I flatter myself that I understand your point.  It is doubtful we shall
have compilers that can tell you for example, that you used the wrong
algorithm.

However, perhaps I did not express my point as well as I could have.  I
include the quote from Whitehead again, along with some others.

"By relieving the brain of all unnecessary work, a good notation sets it
free to concentrate on more advanced problems, and, in effect, increases
the
mental power of the race."

-- Alfred Whitehead (1861 - 1947)
Quoted in P Davis and R Hersh The Mathematical Experience (Boston 1981).

http://www-groups.dcs.st-andrews.ac.uk/~history/Quotations2/215.html

By preventing lots of little gotchas, you free the mind to pay attention
to what it is doing rather than the most minute details of how to do
it.  This is a quite powerful effect.  Try doing arithmetic in Roman
numerals.  Your attention is on the mechanics instead of on the fact
that you should be subtracting instead of adding.  Ever watched a
beginner do very careful lettering or Calligraphy?  The letters look
nice, but they are more likely to spell the word wrong.

"He found himself understanding the wearisomeness of this life, where
every path was an improvisation and a considerable part of one's waking
time was spent watching one's feet."

-- Lord of the Files, William Golding, Chapter five, page 76
http://www.crosswinds.net/~robyng/LOFquotes.html

I remember being struck by this when I read it long ago.  One of the
major improvements of modern life is flat floors and shoes. Ever tried
to dance on a sloping floor or worse, one with holes in it?  When you
aren't sure of your feet its definitely hard to pay attention to where
you are going.

My favorite is always Benjamin Franklin.  He was a successful engineer,
among other occupations.

[After spending several paragraphs on the details of how to get the
streets cleaned of mud and dust every day and how to keep the lamps lit
and clean so there is proper lighting]

Some may think these trifling matters not worth minding or relating;
but when they consider that tho' dust blown into the eyes of a single
person, or into a single shop on a windy day, is but of small
importance, yet the great number of the instances in a populous city,
and its frequent repetitions give it weight and consequence, perhaps
they will not censure very severely those who bestow some attention to
affairs of this seemingly low nature. Human felicity [happiness] is
produc'd not
so much by great pieces of good fortune that seldom happen, as by
little advantages that occur every day.

-- Benjamin Franklin in his autobiography
http://www.earlyamerica.com/lives/franklin/chapt11/

The relevance to software engineering hardly needs pointing out.  Each
bug that can be automatically prevented instead of requring a human to
find it is one of those "little advantages that occur every day".

Daniel


John Porter wrote:

> Daniel S. Wilkerson wrote:
> > Michael G Schwern wrote:
> > > Type checking is nice, but its just one class of error-checking.
> > > Doesn't do squat for basic logic errors, for example.
> >
> > No, it does.
>
> I think you're missing what ought to be an obvious point:
> No amount of (sane) typing will allow your compiler to
> know that
>         if ( x > y )
> is wrong when you meant to say
>         if ( x < y )
>
> That is what is meant by "logic error".

Reply via email to