> > 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.
But what kind of dates does the variable 'dates' represent? it's not visible from the code you posted. Perhaps you meant to write it like this:
//dates that the products were shipped
Map<URI, Date> dates = someObject.getSomething();
But then you placed a comment in it! if that is not documentation, I don't know what it is.