I had really hard time for 3 months (after using vim for 4 years). I just uninstalled everything else, and first week was painful, but it was really fun since I wanted to learn Lisp/Scheme, so I touched ELisp while playing/tweaking with emacs. After that I just couldn't go back to Vim. I started tweaking and digging. The point of Emacs is that you can make it be whatever you want. It can be both amazingly ugly and beautiful, minimal or heavy like an OS. In the end, what kept me on Emacs to be sincere was auto indentation and perfect completion system. I always had to tweak and fix those things in Vim. In Emacs, nothing, I just write code (yeah, navigating code in Vim is faster, but Emacs has some really neat ides like rectangles).
Hmm. Emacs' indentation is one of the things I've had to fight hardest. It's extremely opinionated, and it's almost always wrong for each new language I teach it about, and it took a lot of convincing to indent C and Java the way I want.
The way it defaulted to using smart fill (i.e. use indent div 8 tabs followed by indent mod 8 spaces), so that indentation had this mix of indent and spaces, gah.
It's bad enough that I wrote my own plain non-smart auto-indent (just replicate indent of previous line) to get by in modes I couldn't convince to be sane.
The fact that there is no real unification for your preferred indentation step is really telling. I have a big block configuring c-basic-offset, js-indent-level, css-indent-offset, etc. - a big random bag of different variables that affect different subsets of language modes, depending on their lineage.
I use Emacs for languages I work continuously in and have strong (or am forming) opinions about. Willing to invest 1-2 hrs configuring. Save it in a git repo.
Not everyone share's preferences (tabs, spaces, etc.) across languages. Maybe I'm crazy but I use 2 vs 4 in different languages.
If I'm just trying a language out for the first time, I find it much easier to use vscode + vim plugin + language plugin to try something out.
But then you have to update your settings every time you collaborate on a different project with different opinions about indenting. The right way would be for emacs to simply respect the project's .editorconfig file like any other editor does, but I can't for the life of me make emacs open JavaScript files and set up indentation properly with editorconfig. It totally defeats the purpose...
Good question. I dare to say EVIL is best Vim alternative. It's 98% percent there. But it felt wrong using Vim in Emacs. Then I wasn't using Vim nor Emacs, because I would mix commands from both (sometimes I would use C-s sometimes /?). So I told myself, if I felt comfortable using Vim, then why don't I try and learn Emacs so I can be comfortable in it too? And now after 6 months in Emacs I got to that standard productivity point in terms of navigating and chunking out the code. But the best aspect of Emacs for me personaly is, I want to do something with text, I just select it, press M-x, enter the word(noun,verb of thing I want to do with it) press TAB, see list of available commands and voila! It amazes me how many options there are in Emacs! Wonderful really!