Re: What's so great about lisp?
- From: Joe Marshall <jmarshall@xxxxxxxxxxxx>
- Date: Wed, 05 Oct 2005 20:07:46 -0400
Jon Harrop <usenet@xxxxxxxxxxxxxx> writes:
> Joe Marshall wrote:
>> I think we can. We would need to quantify what you mean by
>> `likelihood', nail down specifically `those kind of errors', and
>> develop a criteria for `satisfaction'.
>
> I am unsatisfied already. It would be easier to unify physics, IMHO. :-)
The real issue is not about static vs. dynamic typing. I don't think
anyone in their right mind would object to the computer automatically
finding errors as soon as possible. There are actually two issues
that are of interest:
1. How much does the computer interfere with the task at hand when
it discovers errors, and
2. How willing is the programmer to change his style to aid (or
conform to) the computer's static checking.
`Strong-arm' type checking appears to be a popular choice in the
static typing camp. In this model, it is not possible to compile a
program until the type checker is satisfied that the program is free
from type errors. While it is true that once the program compiles it
will not have type errors (a trivial tautology), it can seriously
interfere with interactive development. When developing
interactively, it doesn't matter whether the untaken branch is type
safe. Being forced to write type-safe `stubs' that won't be executed
is simply useless busywork.
Static typing with inference and all the modern amenities is a far
cry from the static typing found in C or Java. Nonetheless, there are
programs that the type checker cannot prove correct, or cannot prove
correct without assistance from the programmer. The programmer must
either provide hints to the type checker *or* modify his programming
style to avoid constructs that will stymie the type checker. Some
people don't mind doing this because they percieve a real benefit to
satisfying the type checker.
Personally, I want as much static checking as possible provided that
it *never* rejects a program, even one that is provably wrong (it
should compile to a call to the runtime error handler!), never
complains when it cannot determine if the program is type safe, and
requires exactly *zero* effort on my part to use. I may be willing to
provide type hints and guarantees at some point of development, but I
never want the computer to force me to do so *before* I am ready.
.
- Follow-Ups:
- Re: What's so great about lisp?
- From: Jon Harrop
- Re: What's so great about lisp?
- References:
- Re: What's so great about lisp?
- From: Joe Marshall
- Re: What's so great about lisp?
- From: Jon Harrop
- Re: What's so great about lisp?
- From: Joe Marshall
- Re: What's so great about lisp?
- From: Jon Harrop
- Re: What's so great about lisp?
- From: Joe Marshall
- Re: What's so great about lisp?
- From: Jon Harrop
- Re: What's so great about lisp?
- Prev by Date: Re: lisp and writing virtual machines..
- Next by Date: Re: What's so great about lisp?
- Previous by thread: Re: What's so great about lisp?
- Next by thread: Re: What's so great about lisp?
- Index(es):
Relevant Pages
|