For everything not remote, there's sublime text or a real IDE.
The other thing to consider is if you are really comfortable in a language, sometimes the lag you get from editing fast in an IDE outweighs the feature set you get from it. Vim is always buttery smooth for me, even in large files and with a bunch of plugins. I can't say the same for other editors.
Finally, having vim from within a terminal means that I can CTRL+Z to all my cli apps to manage the project I'm working in. That combined with backgrounding live-reload for web development, or jumping into a REPL make for a rewarding flow-state between building, executing commands and editing that I've only heard about from Emacs users. As much as it is on topic with the rest of the conversation here, I tried emacs and spacemacs and doommacs a few times, and have never been able to enjoy it as much as jumping between vim and zsh.
Since this post is about newbies, I’ll add that I’ve been programming professionally for over 15 years and over 20 in total.
I heard James Gosling once said something along the lines of: I don’t understand the cult-like behavior of using a text based editor to program nowadays. There is something about the 70s editors that pump up programmers’ testosterone level.
(Before you flame; I'm an old emacs geek and still have the multi-kilobyte .emacs and damaged wrists to prove it. I even had a brief bit of open source fame with an emacs mode for HTML I wrote back in 1994. I've moved on.)
I know that sounds kind of ridiculous, considering EMACS' history - but you never had to use that vintage IBM JSP suite!
As for incremental learning: just the other day I was programming with a colleague and taught him a new command. I've only been using Emacs since 1978; he was using it before I was. But even after more than 40 years of emacsing he said, "wow, wish I'd known that command earlier". But even without it he was very productive.
I think people who teach someone emacs by starting out with fancy init files, tons of libraries and by emphasizing programmability etc are doing a big disservice. Its very incremental nature is an enormous part of its power.
My artist wife had Emacs as her first editor and still misses it.
Starting out with the arrows keys first and then slowly incorporating the movement keys into their workflow will let them focus with getting on with what we all use Emacs for, ultimately: gettin' things done.
The second thing I teach them -- and I make a big deal about it in my book -- is teaching beginners how to ask Emacs the right questions: how to look up the definitions of keys, functions, etc. as that is the second-biggest stumbling block: not understanding what something does or how to rediscover that command or key you forgot.
Especially for connecting pieces of wood together.
I fell in love with the Emacs Doom , a distribution made for Vimmers - this way you can draw from two ancient sources of power at the same time... ;)
VS Code has never made me hate it, but I have come to hate configuring it to work with two different languages that have their own REPL simultaneously (Python and PowerShell). Their modules seem to argue with one another or cause the other to crash or hang unexpectedly. It's extremely frustrating.
Um.. It took me 10 years to get over the initial horror of vim, but after that, it was awesome.
Also, how do I reload the .emacs.d file without completely restarting Emacs?
Windows-only, though, unfortunately...