Because blaming a dynamic language for being dynamic because your code sucks is scapegoating.
If you're passing an invoice to a function that expects a customer, you don't fix it by inspecting the type inside the function; you let it blow up and you fix the bug where the hand off is done wrong.
You don't litter up a program in a dynamic language with manually written type checks. If you're reinventing a static type system, you're doing something wrong.
"You don't litter up a program in a dynamic language with manually written type checks. If you're reinventing a static type system, you're doing something wrong"
If you're passing an invoice to a function that expects a customer, you don't fix it by inspecting the type inside the function; you let it blow up and you fix the bug where the hand off is done wrong.
You don't litter up a program in a dynamic language with manually written type checks. If you're reinventing a static type system, you're doing something wrong.