Regarding tooling, Java has been massive investment in this area compared to ruby/python etc which is one of the reasons for it good IDEs.
def some_function(arg1, arg2) arg1.
The IDE won't show you a list with possible functions because arg1 can be everything.