You're right that autocomplete does exist, but in my experience it's very limited in dynamic languages.
For example, the following code does not give me any auto-completion suggestions in eclipse or in vim:
str = "hello"
test(str)
def test(val):
val.[TAB]