On Mon, 29 Jan 2001, Kevin D. Clark wrote:
> I realize this is nit-picking, but...

  Subject line changed accordingly.  ;-)

> I have to disagree with the Camel book here.  A program is correct when it
> is correct, and no sooner.

  The point was, how do you define "correct"?  Just because something
compiles?  Just because it runs to completion without encountering a fatal
error?  Because it does what you want it to?  Because someone has "proved it
correct"?  Proofs of correctness are no longer considered the Gods they once
were, once people started to realize that programs could be "proved correct"
and still fail horribly.

  The reason I like that quote is that it is adaptive.  A program is "correct"
when it fulfills your needs.  If your needs include a rigorous analysis of the
algorithms and logic, then that's fine.  But if you just need to get from A to
B, then so long as you end up at B, how you got there doesn't matter so much,
so long as you get there in time.

  Too many people get hung up on <software engineering technique of your
choice> as the end-all and be-all of design.  They believe (or would like to
believe) that you must follow all the items on their checklist, and that if
you do, your program will be perfect.  In reality, there is no such silver
bullet [1].

  The goal of any program is to get the job done.  For some kinds of jobs,
running your program and seeing if the output is correct is good enough.  For
other kinds of jobs, formal testing is part of the job.  But your test methods
should reflect the job.

> Larry Wall turned green when he learned that billions of dollars (no
> exageration) get moved around the financial markets every day because of
> how some Perl scripts act.  I'm certain that Larry doesn't fully believe
> in this rule.

  I imagine if you're dealing with billions of dollars, then simply running
the program against a few test cases isn't going to constitute sufficient
testing.  :-)

Footnotes
---------
[1] Tip o' the hat to Fred Brooks.

-- 
Ben Scott <[EMAIL PROTECTED]>
Net Technologies, Inc. <http://www.ntisys.com>
Voice: (800)905-3049 x18   Fax: (978)499-7839



**********************************************************
To unsubscribe from this list, send mail to
[EMAIL PROTECTED] with the following text in the
*body* (*not* the subject line) of the letter:
unsubscribe gnhlug
**********************************************************

Reply via email to