Earlier quoted context omitted.
> Dynamic languages let you think a problem you haven't thought of at design time will somehow solve itself magically at runtime, using components designed weeks before, with knowledge of that time. I don't think most people who program in dynamically typed languages believe that. However there are people in the extreme that believe that static typing will save you from errors. Sometimes I worry that the cognitive ov…
I've had several experiences where static typing forced my hand into making a software design decision which I later regretted. Many real-world entities don't have a fixed set of characteristics/properties; instead, they have fluid characteristics that can change over time. Trying to model those entities using static types which have a fixed/static set of properties is a bad idea. For example, in nature, a tadpole mi…
It's an animal. The type checker will make sure you don't try to water() it. Static typing does not have to mean infinitely granular typing (though of course typing everything "statically" as any is pointless).