Popularity is more of a marketing problem than an editor problem.
At the same time, if we compare emacs to vscode, vscode simply requires less configuration to get going. Given how much tooling exists in the javascript ecosystem, I think having a few plugins "just work" goes a long way.
Asking users to configure emacs from scratch to have a reasonable editing experience in their programming language of their choice is a lot. I think configurations like doom or spacemacs do a lot for this problem, but it really comes down to marketing.
At work, I moved from Emacs to VS Code about a year ago. I’d used Emacs for years but I was spending a large amount of time fixing package upgrade problems. I guess I’d got into some kind of dependency hell. Maybe I wasn’t experienced enough with Emacs to use it professionally. But that’s the kicker, I haven’t had that problem switching to VS Code.
Having all of Elisp and all of Emacs available, including packages, is powerful. But it comes with a complexity cost if your config/dependency graph grows to large. Like any in-house software project really - of which a small business cannot afford to invest in.
There is one area, though, I’d use it again for: Lisp. Clojure with CIDER, CL with SLIME. As far as IDEs go, the level of language support for Lisp is phenomenal and without equal (but not surprising given Elisp).
What did you do about key bindings? The default vscode ones rely heavily on arrow keys, but those things are just so far away from the home key. I can't seem to find a move up/down paragraph shortcut to map either. I've tried some of the emacs plugins but they all introduce weird behavior; I keep ending up in some random menu vs just moving my cursor around.
In effect, gritted my teeth and got used to it. I mean, the basic movement commands still work (or you can configure it so) so that helps.
But the benefits out weigh the sluggishness I feel at the keyboard. It was easier to get the rest of the team on VS Code and then I could start looking at extensions that bring things as close to what’s in Emacs as possible. That’s improved team productivity as whole (and my own when they do the same).
But there are somethings I long for. Magit was hands down the best thing for projects versioned in Git. I’ve not seen anything like it in VS Code. The other thing is macros and Elisp but as above that’s a double edged sword. I’ve actually thought about bringing some of those ideas over to VS Code at least for my own team.
Where I work nearly everyone uses Vim. We work in less popular languages that new kids on the block (VSC, Atom) don't really support. It really either Vim or Emacs. I think most people choose Vim because it is the default "Terminal based Editor" in most peoples minds.
I use it because it's installed by default on Linux desktops. That's not important to me now—I'm currently using Neovim compiled from source—but it was important when I was first learning to code.
I could probably switch to Emacs using Evil, but I don't see a compelling reason to.
i tried using both emacs and vim at the beginning. the problem with emacs, for me, is that the keybinds were basically to harsh on my wrists while vim was quite good, because i could keep my hands on the home row.
At the same time, if we compare emacs to vscode, vscode simply requires less configuration to get going. Given how much tooling exists in the javascript ecosystem, I think having a few plugins "just work" goes a long way.
Asking users to configure emacs from scratch to have a reasonable editing experience in their programming language of their choice is a lot. I think configurations like doom or spacemacs do a lot for this problem, but it really comes down to marketing.