I think it would more strongly correlate with the type system of the language you're using.
For ruby/rails development I use vim and iterm2.
For .NET dev: VS2012 + ViEmu + Resharper
I used to be a vim guy until the visual debugging in RubyMine won me over. That and (jump to function) is much better than keeping ctags up to date via a git hook.