> Yes, they lack teeth. But what’s the alternative?
In what way do they lack more teeth than Java with Object, Go with interface{}, C++/C with void*?
In what way do they lack more teeth than Java with Object, Go with interface{}, C++/C with void*?
Since types are optional in Python, it's necessarily true that an "Any"-like type is prioritized since it's the default. Moreover, cpython doesn't check anything when it bytecode-compiles.
Any-by-default and no-built-in-checking feels pretty defanged to me.
mypy is pretty whiny about types, and sure, if you add Any everywhere then you have just defeated the type checker, but this is no different from putting interface{} everywhere for Go.
> Any-by-default and no-built-in-checking feels pretty defanged to me.
Is running mypy on the code base that much to ask?