Sun, 29 Sep 2002 15:14:19 +0900, Dossy <dossy / panoptic.com> pisze:

> The belief is that if you can eliminate a subset of all possible
> errors at compile-time, that reduces the search space of errors
> that you need to check for at run-time. I make the claim that if
> you properly ensure correctness at run-time, you will also cover
> all errors that can be determined at compile-time, so checking for
> errors at compile-time is redundant.

You might as well say that exceptions are a redundant mechanism
because you might just return some garbage or nil and find the error
during testing.

The question is how easy is to find the actual error basing on the
diagnostic. In my experience static typing makes it much easier,
especially when you change something in a working program and want
to update all places which depend on the change.

Yes, it does have some costs (that static type systems aren't
expressive enough and the most expressive ones like Haskell's are
also the most complicated). Neither static nor dynamic typing is
always better than the other.

But we use dynamically typed languages *despite* static types make
finding errors easier, because we value other aspects more. Not
because they don't make it easier.

-- 
  __("<      Marcin Kowalczyk
  \__/     qrczak / knm.org.pl
   ^^    http://qrnik.knm.org.pl/~qrczak/