At 10:40 PM +0200 2005/8/10, mt wrote:
... Languages with
static typing would be more suitable if programs were something you thought
of in advance, and then merely translated into code. But that's not how
programs get written.
Well, that is actually how lots of programs do get written.
For software that is experimental and exploratory, whose code
undergoes continual change and whose only users are the code's
authors, static typing is arguably a dispensable nuisance. A type
error that pops up during execution is probably no more inconvenient
than one that's caught by static type checking. That's why Lisp is
popular for AI work.
On the other hand, for code that is intended for wide distribution,
static typing is extremely useful. When a user swipes his card in an
ATM, you don't want the machine's response to be "Sorry, type error."
A successful static type check amounts to a partial correctness
proof, i.e., a guarantee that a large class of possible errors will
not occur during execution. That guarantee is worth some
inconvenience-- or would be, if static typing were in fact
inconvenient.
I'd argue, however, that for software that's being written for a
specified purpose, and which therefore has a well defined
specification, static type checking is a definite convenience-- it
automates some of the reasoning that responsible programmers are
obliged to undertake in any case.
Of course I have to concede that much software that's sold to
customers is not actually "thought of in advance", but is developed
haphazardly, with inordinate effort expended on "debugging". This
regrettable practice no doubt bears much of the blame for the
deplorable state of the software industry, which is the only one I
know of whose products are routinely sold with a disclaimer of all
responsibility for their quality.
Regards,
--Ham
--
------------------------------------------------------------------
Hamilton Richards, PhD Department of Computer Sciences
Senior Lecturer (retired) The University of Texas at Austin
[EMAIL PROTECTED] [EMAIL PROTECTED]
http://www.cs.utexas.edu/users/ham/richards
------------------------------------------------------------------
_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell