Why static languages suffer from complexity
So whenever I have to study someone else's 'dynamic' python I encounter this sort of thing:<p><pre><code>  def foo(bar, baz):
      bar(baz)
      ...
</code></pre>
What the heck is 'bar' and 'baz'? I deduce no more than 'bar' can be called with a single 'baz'. I can't use my editor/IDE to "go to definition" of bar/baz to figure out what is going on because everything is dynamically determined at runtime, and even<p><pre><code>  grep -ri '\(foo\|bar\|baz\)' --include \*.py
</code></pre>
Won't tell me much about foo/bar/baz, it will only start a hound dog on a long and windy scent trail.