I’d really like it if there was static type checking in a python-like language that could be turned on after initial prototype development. That way I could hack something quick and dirty together, and then I could turn on type safety level 1, and find some places that have type problems, and then fix them, then turn it up to level 2, with more crunching, that would find more problems, up to some level of maximal safety where the code is as safe as ML or OCaml or Haskell.

This could serve as a nice bridge from traditional programming techniques to more PLs-ish programming techniques. Sort of a trojan horse that you could sneak into a more traditional software house that could lead to type-safe practices, but it wouldn’t get in the way of rapid prototype development or quick hacks.

Sort of like ‘use strict;’ in perl, but instead of taking the language from wretched to almost-not-wretched it would take the language from ‘type unsafe’ to ‘type safe’ in a gradual fashion. Perhaps it would also be analogous to adding stricter compilation flags to C code, (-Wall and -Werror come to mind here) but the guarantees would be stronger.