[Haskell] pros and cons of static typing and side effects ?

Hamilton Richards ham at cs.utexas.edu
Thu Aug 11 15:40:25 EDT 2005

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 
    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.



Hamilton Richards, PhD           Department of Computer Sciences
Senior Lecturer (retired)        The University of Texas at Austin
ham at cs.utexas.edu                hrichrds at swbell.net

More information about the Haskell mailing list