[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: the forward method [dynamic vs. static typing]
Tom Lord <firstname.lastname@example.org> writes:
> But, anyway, it wasn't _conciseness_ I attributed to DT but a unique
> (in some sense) minimalism of details -- avoidence of having to
> provide redundant information. How much do you have to say about a
> program in order to execute it correctly? ST languages require you to
> say more than that.
But how many undetectable ways are there to say a program such that it
executes incorrectly? DT languages give you more rope.
More generally, redundancy isn't inherently bad. (I don't mean to say
that you're claiming it is, but I want to explicitly make the point.)
The redundancy of ST, much like the redunancy of computing parity,
buys you early detection of certain classes of errors.
The lowest-redundancy, highest-entropy programs look like line-noise,
and a single bit error can render one incorrect without any hope of
being detected. (I'll let someone else take the obligatory whack at
*Any* correctness assertions you can make about a program, whether
related to type or not, are redundant --- but can be a real lifesaver
when you're bughunting. (And of course, a Sufficiently Clever
Compiler (TM) can take advantage of all sorts of correctness
assertions, types and otherwise.)
(another fan of DT languages with optional type assertions)