Comment
Comment by chuzz
That's why Typescript/Python optional typing hit the best balance for me. Coding in duck-typed language is generally fine when your test suite is as fast and frequent as a type checker. That also explains why TDD is more popular in say Ruby or Python vs. Java.
Speaking of Java, the problem with types is when you try to reify every single problem you encounter in your codebase.
By the way, python has structured types since 3.8, and I hope they get more popular in Python code:
https://docs.python.org/3/library/typing.html#typing.Protoco...