Languages using static type checking detect nearly all type errors before run-time; languages using dynamic type checking delay the detection of most type errors until run-time.
The use of automatic type inference allows a statically typed language to achieve reliability and safety without the burden of having to declare the type of every value or variable:
Static, Safe Type System + Type Inference ⇝ Reliability/Safety + Manifest Typing
There are practical trade-offs between statically and dynamically typed languages—such as other issues in the design and use of programming languages.
18.119.160.181