This is not the only reason. Sometimes you just can't do it with a dynamic language. For example it is impossible for the IDE to help you with auto complete int this case:
def some_function(arg1, arg2)
arg1.
The IDE won't show you a list with possible functions because arg1 can be everything.