Comment by Karrot_Kream
2 days ago
Emacs lost popularity because from ~ 2010-2020 the project was a bit dead. There was a lot of issues going on with emacs forks and in general the maintainers weren't merging functionality that became standard in other editors like multiple modes in a buffer, LSP support, or tree-sitter grammars. The community filled in to write packages to bridge this gap but it became a bit silly to download 20 plugins just to get a basic modern editing experience. So community interest left to other projects like VSCode or neovim.
The project sort of "woke up" in 2020 and has been landing new functionality at a crazy pace. Now I pretty much look at every NEWS file to see what changed salivating over the changes. At times the changes feel overwhelming as someone who only hacks on emacs when there's time, but the other great thing is emacs has such a high guarantee of stability (usually) that even if you aren't up-to-date on the latest and greatest your config can just keep chugging as it is.
I disagree with the other commenters about there being a steep learning curve. If anything it's amazing to me how people can go through the vim tutorial and learn about motions and selection commands just to type things into a window. Emacs has no such requirements and if you enable cua-mode you basically get any editor out there. Emacs's learning curve mostly comes form the fact that people who like to hack elisp and customize Emacs start constantly growing their configs.
> I disagree with the other commenters about there being a steep learning curve
There's a "steep" learning curve with Emacs only because people constantly get focused on the wrong aspect of it - instead of trying to understand Elisp, they get sidetracked on the "editor features" and "bells and whistles". It's as if instead of learning how to drive, new car owners spend too much time trying to learn how the entertainment system works and how big of a cup each cupholder can handle.
I have managed to extract so much value from Emacs after getting some familiarity with the language - it's crazy. No other programming medium got me from point zero to hero so quickly. Simplicity of Lisp is fantastic. The language has less complexity than javascript, and maybe even lua.
I wish people curious about Emacs, instead of fixating on modal and non-modal editing, theming, or a single facet of features like Magit, Org-mode, or language-specific setups, tried instead developing inner curiosity about how Lisp shapes and drives Emacs. What happens when I press a key? What command does Emacs call, how does that happen, what's the event loop? How can I call the same command programmatically? How can I debug a given function? How does it look when profiled, etc.?