Earlier quoted context omitted.
Go to function definition, refacor/rename, find references, view object / class hierarchy, and so on. Why not have all this work 100% of the time? Tooling makes your life so much easier. I don't understand why people would resist optional typing.
I'm not saying that tooling isn't nice. On the contrary. I'm asking why can't we have tooling even with dynamic types.
def do_something(thing_a, thing_b): ...
What's the type of thing_a or thing_b?
There is none. There isn't even a type globally. thing_a and thing_b acquire new types at every call instance. This basically screws you for all useful auto-complete information.
You can't even do proper go-to-definition because of things like getattr.