> I've been writing large-scale JS applications with SproutCore since 2007, and not once have I been bitten by a bug that would have been caught by static typing.
Common things such as access an undefined variable or property or trying to call a method of a null object would be detected by most static type checking algorithms.
> Common things such as access an undefined variable
That does not require static typing, unless you're developing in elisp maybe.
> trying to call a method of a null object
Unless there's support from the type system, that one only works on very short code spans within the same scope, which is the least useful it can be (as opposed to type inference which is most useful locally).
Common things such as access an undefined variable or property or trying to call a method of a null object would be detected by most static type checking algorithms.