Susan Dinglesen
Simply put, programmers who prefer Vim or Emacs to full-blown IDEs usually feel this way for one or more of the following reasons:
- IDEs like Visual Studio or IntelliJ are more resource-intensive. This can be bad for a programmer with a slower or older computer, but it can also be bad for a programmer with a brand new fast machine, but who likes their development environment to have very little latency. For example, as I am typing this post, I am not having to wait for things to load, seeing menus and "suggestions" pop up, etc... That's what I prefer and it also leaves plenty of extra RAM available for other programs to run.
- IDEs can cause "information overload" - Personally, I work better with a code editor window open, AND THATS IT! I don't want a debugging window, I don't want a command prompt at the bottom, I don't want menus, boxes, and suggestions popping up about how or why I could code a certain way, etc... This doesn't mean I don't debug and I would never use those other features, I just prefer to have them inside of a separate application that gets independently launched and exited when I want.
- There is truth to becoming too dependant on IDEs and as a fast typist, I feel that their benefits are often overblown. The fact is, they don't really improve my coding speed, performance, or anything, really. You will hear programmers crying about how repetitive coding can be, but then often these same people cry about how only 1/5th of their day is spent actually writing code. You can't have it both ways. To me, the benefits just don't outweigh the performance hit and distraction issues. If you are not a fast typist, then the autocomplete and other suggestions may actually speed up your coding ability. It may also be good for newbies to have "training wheels" so-to-speak in the form of intellisense/autocomplete. The problems come when programmers just start expecting it to do a lot for them and then they end up having to do a whiteboard interview where they don't have any of that.
- This is a big one - Vim or Vi is built into virtually every Unix-based machine. What this means is that if you need to set up a server and you find yourself in the terminal on some device and needing to do a quick text edit... You don't have Atom or Visual Studio Code on the device, but you do have direct access to vim or vi where you can do a quick edit bam right in the terminal and be done with it. This is a major advantage and once you know Vim you will be able to do it on so many different devices, it's great. I don't even know Mac well but I can operate my girlfriend's Mac like a pro thanks to this on the terminal.
One last point I want to make is that Vim and Emacs actually can support many IDE features anyway, so for example, you could use intellisense/autocomplete type of stuff in Vim and Emacs, but you would need to install plugins or customize them a bit... Still, may be worth the happy medium of not having a giant bloater like Visual Studio.