To play devil's advocate, it's possible to get a lot of those features in vim, see
- https://valloric.github.io/YouCompleteMe/
- https://github.com/kien/ctrlp.vim
- etc
Anything else can quite easily be added via more plugins or by using a terminal multiplexer like tmux or screen (or a more complicated terminal like terminator, iTerm2, etc
I use vim/tmux exclusively for my development, and while I don't use Java, I don't feel that I'm missing features that my coworkers running atom/vscode/etc have. I will admit that stepping through a debugger might be a bit harder, but I seem to find a few debugger plugins around, so I'm guessing someone has solved that.