[plt-scheme] Why do folks implement *dynamically* typed languages?
On Wed, May 30, 2007 at 12:58:45AM -0400, Carl Eastlund wrote:
> Which way are you asking? Your subject line asks one question, but
> your content asks another. I guess you are trying to ask "why dynamic
> languages?"
>
> Here's why I like dynamically typed languages: because types are far
> too important too me. I'm not going to let some tyrannical type
> checker decide in advance what type system I'm going to use for all
> programs. I'm going to use whatever notion of types is appropriate
> for my current task, and check as much of that statically as I can.
> If ML's type checker, or Haskell's type checker, or Java's type
> checker can't verify my invariants, or worse reject my program as an
> error - all static type checkers are guaranteed to reject some 100%
> correct programs as errors - I'd be out of luck in those languages.
> I'm always in luck with Scheme.
>
> It puts a lot of responsibility on me to get the system right, but I
> can live with that.
Yeah. Most statically-typed languages are deficient in this respect.
So you have to go from a language with draconian static checking
to one with none at all. A poor set of alternatives.
There's one static type that statically typed languages leave out.
That's the only one dynamically typed language implement. There's no
reason not to have a type that describes a variable that can have any
value whatsoever, together with run-time type information, together with
the suite of operations you need to make it useful. The thing to know
is that an _int_ value many be a very different thing from an _any_
value that happens to be an integer.
-- hendrik