I wish I spent time learning how to use Emacs in the past to a degree where customizing my installation was faster than learning something else.
As I stand now, it seems really hard to justify to invest time into it when the benefits over using something very easy to work with (like JetBrains IDEs for Java or VS Code for Python) sound marginal.
I know experts can fly around in it and it looks amazing. Having a single point of entry for all kinds of things (ssh to VM, git, text editing, org mode, email...) sounds great, but it is so much work and it seems like I could always be spending time doing something immediately beneficial with the tools I already use. Not to mention that the end result might not even better for the given application (can I really hope to have easier time developing a Go app with Emacs and couple not-so-actively developed plugins than GoLand/VS Code?).
I think you’re best of sticking with Jetbrains IMO; if you’re using a highly structured language like java you may as well get the beenifits of a specialised environment.
For nearly everything else though emacs shines.
I see VS Code touted as an emacs alternative and while your muscle memory might suit it better can it truly give you the uniform fluid experience across pretty much any development enviromnwnt you might use?
That's exactly what I say about switching away from Emacs -- the new tools available aren't compelling enough to make me leave what I've been working easily in for 24 years now.
It sounds like you've found something that works. But if you find yourself with a hankering to take a long weekend, lock yourself in a hotel room like John Carmack, and devote that time to really learning Emacs, I encourage you to do so. It should prove quite rewarding.
I'm in the exact same boat. Every few months I spend some time learning Emacs. I'll hit a road block and go back to VSCode or PyCharm. Then I'll feel silly b/c I'm already super productive in those and just wasted time, but want Emacs to work. Few months later... repeat! Why emacs!?!?
The thing you use daily will always be the most familiar. I’ve gone from your position, to the opposite; now the switching-costs of moving away from Emacs to an IDE put me off.
There do have to be real benefits to make it work. For me it was some very specific things I wanted to do for data analysis that weren’t possible in an IDE at the time, and the other benefits (org-mode, tramp etc.) just sort of compounded.
It’s certainly been a process though. And I wouldn’t have got here if I didn’t find fiddling with editors an enjoyable thing to do, while waiting for a database-query/drinking-buddy-to-leave-work/partner’s-Netflix-binge-to-conclude etc.
At this point honestly it's an objectively worse decision to not use modern IDEs. (It's not a matter of taste anymore.) IDEs have gotten really good. If you only use Emacs or vim, you're literally putting yourself at a competitive disadvantage.
All the avante garde language extensions (Rust, D, etc.) support VS Code better than Emacs now. VS Code is where all the new ideas are tried first.
I've used both Visual Studio (not Code) and Vim and I have to say, the improvements over my Vim setup are pretty marginal for C++ code. Every time people come out saying you can't possibly be productive with Vim in <current year> it always feels a bit like they're projecting their own insecurities. All I really miss in Vim is good debugger integration, but so far I make do ok with plain gdb in a terminal. And this is a big enterprise codebase with ~150 developers working on it. It's perfectly ok to use whatever you like, I just don't see why you need to accuse perfectly good tools of inadequacy - you might end up turning away someone who would be most productive in vim/emacs vs IntelliJ or VS.
That said, VSCode has a lot of good ideas around tooling and I've been toying with the idea of looking into making a fork that replaces the editor component with an embedded NeoVim. I feel that would be the best of both worlds, but obviously a huge undertaking. There is already NyaoVim that implements a NeoVim gui as a web component.
I agree with your point about Vim being more than adequate for development in a large codebase.
I only learned Vim recently and I have hit no issues so far working on a large enough codebase such that navigation and autocompletion wouldn’t work effectively for any IDE.
I instead use cscope and ctags which allow me to selectively setup navigation and autocomplete from within Vim.
However, Atom has always had issues. Snippets are very limited due to design issues. Now a days I keep getting random js errors and the syntax highlighting stops working below a line I was working on.
Microsoft's acquisition of GitHub likely will hurt future community development of plugins since new programmers will assume the worst and develop for VSCode or move on.
Atom showed me how useful/important having an editor I could easily customize is. And the two above shows me how important having an editor with a strong independent community is. I am trying Emacs, but it is a struggle and Spacemacs keeps having random issues (and feels slower than Atom). So right now I am learning Vim with Vundle.
I am so glad that I took the time to learn emacs during my uni days more than ten years ago. I would see everyone else using absolutely awful IDEs that they never actually understood while I was learning how everything really worked and setting up emacs to make my life easier. Nowadays I see people struggling with slightly less bad tools like VSCode and they often ask me about emacs but they just don't have the time to learn it like I did. I probably wouldn't have the time now either.
And before the VSCode fanboys downvote me, the other day my colleague's VSCode instance was using more than 200GB of virtual memory. When I typed on his editor it was noticeably laggy. He told me it was normal. He had five files open. My emacs had been running for two weeks at that point and had about 200 files, 5 shells, 2 ssh sessions and 1 IRC client going on.
Seriously, guys. The reason why you like VSCode is the same reason we like emacs. Come and use the real thing.
As I stand now, it seems really hard to justify to invest time into it when the benefits over using something very easy to work with (like JetBrains IDEs for Java or VS Code for Python) sound marginal.
I know experts can fly around in it and it looks amazing. Having a single point of entry for all kinds of things (ssh to VM, git, text editing, org mode, email...) sounds great, but it is so much work and it seems like I could always be spending time doing something immediately beneficial with the tools I already use. Not to mention that the end result might not even better for the given application (can I really hope to have easier time developing a Go app with Emacs and couple not-so-actively developed plugins than GoLand/VS Code?).