> The documentation burden is also equal in both cases. Even > with static typing, types do not tell us anything about > how the variables are used, so they have to be > documented.
I see the documentation burden on dynamic languages being much higher because the variable declarations in a static language are a form of automatic documentation. For example, in java, if I'm looking at someone else's code and I see
Map<URI, Date> dates = someObject.getSomething();
I immediately know that the dates variable is a Map of Dates with URI as the key. If I haven't forgotten what the usual methods are on a Map I immediately know what methods I can use if I need to modify the code.
With a dynamic language I'd have to trace back through the code to find what methods I can use on that object.