Don't confuse "typing done badly" (by the language) with "static typing is a waste of time". If you (often) need manual conversion of types, the typing system of the language is done badly. There are languages, often functional languages, Haskell for instance, that are strict and statically typed, but it's the language itself that does most of the mapping of types to variables by deriving what the type would be.