Re:Uncle Bob and Silver Bullets
by kibwen on Friday October 06, 2017 @01:18PM
(#15418473)
As opposed to the main cost to dynamically-typed languages, all the time spent proving to the test suite and proving to your teammates that this thing is actually compatible with that thing. And I say this as someone who adores Python! Dynamic typing does not magically make problems go away, it just makes them easier to ignore (whether deliberately or accidentally).
[ Parent
| on HN ]
> proving to the test suite and proving to your teammates that this thing is actually compatible with that thing.
I really don't know where that canard comes from. My test suites rarely if ever explicitly test compatibility.
They test for specific values: if I do this and that, do I get the value that I expect. The type "test" gets covered implicitly, because if it's not the correct type, it will also not be the correct value.
The problem is that without knowing the type in question you don't know the values you're testing with cover all of the possible cases. When interfacing with an external dynamically-typed function this requires attempting to reverse-engineer the types from the definition (and recursively for all the functions it calls).