&gt; To change a data structure in a statically-typed language, you change the declaration then fix any compile errors. It is easy in most cases.<p>Right. This can become an overhead in a rapidly evolving design because every small type change has implications across the codebase. With dynamic typing, you only need to fix the code paths you are currently interested in and development is very focussed in a way - you don&#x27;t have to shuffle all parts of the code through your mental caches. This way you can iterate over a few revisions to the types without having to &#x27;fix everything&#x27; each time. Finally when you&#x27;re happy, you go ahead and fix the other dependent code. Admittedly, dynamic languages may not help you <i>find</i> the code that needs fixing. This problem is somewhat mitigated by tests.