Learning and using Emacs is possibly the activity with the highest ROI over time you can do if you work with text for a living. Maybe even if you don't.

Every time you modify it, you are improving your workflow. Those changes compound over time so that the system is always familiar, which makes interacting with text, the filesystem, network, and anything else you can manipulate with Elisp, that much easier, faster, and more comfortable. What you end up with is a system that is unique to you. A system that does what you want the way you want it, and never changes unless you want it to. In a world where software constantly changes and breaks, where new editors appear and disappear, using your own version of Emacs is incredibly comforting. There are no surprises, no rugpulls, no radical UI redesigns, no sneaky telemetry or tracking, no ads, no nagware, and so on. Anything you don't like can be removed, changed, or improved.

It's not perfect, of course. It's slow, alien in many ways, lags behind in features of modern editors, and has a brutally steep learning curve, especially if you're not familiar with Lisps. It may take you years to appreciate it, and a lifetime to understand it. But that's OK. You don't need to understand all of it. As long as you start the journey, you can learn on the way, and your experience will keep improving.

> lags behind in features of modern editors

I have been using emacs for around 7 years, but it never worked for me as the main editor, it just sucked too bad compared to IDE-like features of other editors and actual IDEs. So I only used it for org-mode, doing an attempt to use it for something else every couple of years.

I'm currently in the process of trying this again, and I have to say things feel very different this time. By adding native tree-sitter and LSP support, the IDE-like features are outsourced to where they should be done. It wasn't perfect, but I had issues of the same degree or worse with other editors. A proprietary IDE still would beat it in stability and features, but the experience is _crazy good_ for free software.

What I like the most is the hacker mentality it encourages. When I see something I don't like, I don't go like "I wish they did it differently", I ask "well how do I change that?".

The only thing that feels truly outdated is single-threaded nature and blocking UI when long-running operation (like an update) is happening. And maybe non-smooth scroll (there is a package but it makes text jump).

To add onto this, I really don't think emacs has that big of an initial learning curve nowadays.

If you enable cua-mode and get the LSPs working, you get the same experience as any other big editor like VSCode or Zed pretty close to out of the box. The arrow keys, mouse, and cut-copy-paste do exactly what you'd expect. There's menus, there's toolbars, there's scrollbars. Don't let the "emacs ricer" screenshots fool you; a lot of people disable those things for aesthetic reasons. Probably the kludgiest thing emacs has still is the default scrolling mode which scrolls through a page and then bumps the entire page forward by 1, like older editors. You can change these with a few lines in your config.

Alternatively you can get good out of the box experiences with an emacs distribution (like Doom Emacs) or one of the many minimal configs out there (I'm partial to [1])

Lumping this in with something like vim/neovim is a bit silly because the basic navigation commands and editing experience of emacs is mostly the same as other editors. Sure, underneath this is all run by an Elisp VM and an event loop which maps Elisp commands to keypresses, but as a user you only need to dive in when you feel comfortable.

[1]: https://github.com/jamescherti/minimal-emacs.d

I have been using Emacs for 35 years and I am still learning along the way. It has been the one constant across Solaris, Linux, Windows and macOS for all that time.

That's amazing! It would be very interesting to see what a config spanning 35 years looks like, and what your workflow is. If you could write a blog post about it, I'm sure others would appreciate it as well.

I suppose this goes for any Emacs user. There's so much we can learn and be inspired from by seeing how other people use it.

Emacs takes a lifetime to learn. The sooner you start the longer it takes!

"When you set out on your journey to Ithaca, pray that the road is long, full of adventure, full of knowledge."

The journey itself is more important than the destination.

Also the default keybindings used by Emacs to do basic text operations are available in many places thanks to GNU Readline and Cocoa, which makes the experience more pleasant.

That's true. Although TBH, I'm not a fan of Emacs' key bindings. Some short ones like `C-a`, `C-e` are fine, but more advanced ones are difficult to memorize and force your fingers in unnatural positions. I prefer modal UIs and find Vim's keybindings much easier to remember and type. So for me evil-mode has been essential, and aside from some quirks, it works as well as in Vim. Readline also supports vi mode, which I enable in any app that uses it.

GTK too; but you need to enable it in GSettings (or maybe Gnome Tweaks under GNome).

> brutally steep learning curve.... It may take you years to appreciate it, and a lifetime to understand it. But that's OK.

It isn't, that's how apps decline in popularity and eventually die, thus decreasing the value of the huge amount of time you've invested

> that's how apps decline in popularity and eventually die, thus decreasing the value of the huge amount of time you've invested

That's true. That happened to many apps that I invited into my workflows over the years, and I have tried multitude of different things.

Emacs has been the complete opposite in my experience - the more I use it, the more value I am able to extract over time. Because Emacs is not "an app", it's a full-fledged system that offers endless customization and extensibility. The longer you engage with Emacs, the more you discover its potential to adapt, integrate, and evolve with your work habits. This makes learning Emacs an investment that continuously pays off, as you unlock new capabilities and refine your workflow.

Pretty much any other app that I use every single day can be replaced with an alternative or even completely removed from my toolbelt and I may not even feel the impact in the long run. There's no alternative to Emacs. Nothing comes even close to what I can do with it today. I'm 100% sure, even ten years from now that will remain the case. Unless there's a "better fork" of Emacs that comes out, built on the same/similar principles.

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.?

Well, Emacs has been around for 40 years, and while it's difficult to gauge its popularity, there are many signs that suggest it has only been increasing. So I doubt it's going anywhere anytime soon.

Besides, I think there are also benefits from a tool having a steep learning curve. It indirectly acts as a filter, ensuring only people passionate about it stick around. It's not elitism, but it avoids scenarios like the Eternal September where the community gets flooded with new users and eventually never recovers. Software and services that become popular often stray from their original vision, and, with open source projects in particular, maintainers can be overwhelmed by support and feature requests from new users. Emacs doesn't have these problems, and hopefully never will.

Older things have died, and measuring isn't that difficult, surveys exist, and it's been ~consistently in the low single digit %.

> only people passionate about it stick around. It's not elitism

Yeah, that's exactly the faux elitist fantasy, except needlessly hardships also kills passion, and elite engineering ignites it, but being slow, unergonomic, and hard to change is the opposite of that. So you can't even get net win on 'passion', let alone some more directly relevant skills that help progressing development

All of these points are wrong, or at least debatable. Emacs is not slow, or unergonomic, and certainly not hard to change.

What elitism are you talking about? Is math or string theory elitist? If I find them frustrating (because of learning curve) or intimidating (because of unfamiliar concepts) or if I'm annoyed at enthusiastic evangelism (darn you Gauss), is it me at fault or those "elitist" mathematicians? And Emacs is not even comparable to math - it is far easier to get into and to master.

When people gripe about vim or emacs using broad generalizations, lacking details, you can almost sense their own insecurities and feel compelled to apologize for that one time when someone condescendingly argued with them.

> Older things have died

I suppose so, but very few user applications have had the same longevity. There have been numerous text editors and word processors from the same era and after it that have disappeared, yet Emacs has endured. That has to mean something.

> measuring isn't that difficult, surveys exist, and it's been ~consistently in the low single digit %.

Surveys are not a good way of measuring the health of a specific project. Not all users will respond, and the percentages are skewed by the number of participants and popularity of other options.

A better way, though still inaccurate, would be to look at the amount of activity in the project's repository, the number of contributors, and the number of packages written in Elisp over time.

Emacs' official repo doesn't keep track of such statistics, but the GitHub mirror[1] shows signs of a very healthy project. You could also check package stats[2] or the amount of Elisp projects on GH[3], and compare them to Wayback Machine snapshots from a few years ago, and notice that they keep increasing.

These are all signs that Emacs is not going anywhere. The slow but steady growth is the positive aspect I was referring to earlier. Explosive growth is not good for an OSS project.

> Yeah, that's exactly the faux elitist fantasy ...

I mean, you're entitled to your opinion, but I haven't noticed any elitism in the Emacs community. It's mostly a bunch of hackers and tinkerers who are passionate about software and improving their workflow, as you can see from this article and comments here. There's no gatekeeping since anyone is free to use Emacs how they want to use it. Help and documentation is widely available, including within Emacs itself.

So I think you have the wrong idea and an axe to grind for some reason, which I can't really help you with. Cheers!

[1]: https://github.com/emacs-mirror/emacs/pulse

[2]: https://emacsmirror.net/stats/compare.html#Summary

[3]: https://github.com/topics/elisp

> Surveys are not a good way of measuring the health of a specific project.

Why did you change the subject from popularity to project health?

> or the amount of Elisp projects on GH[3], and compare them to Wayback Machine snapshots from a few years ago, and notice that they keep increasing.

So? They can't really decrease as an abandoned project would just continue to exist. (If GH disappears then you'd have a big drop as a lot wouldn't get transferred). And a few users creating new packages can also sustain the growth for as long as you have a few users.

> The slow but steady growth

Which you don't have, users are the key metric here, and that's low and not growing

> Explosive growth is not good for an OSS project.

Not good, but excellent, but that's not the only alternative. Increasing share to 40% over 40 years wouldn't have been explosive

> I haven't noticed any elitism in the Emacs community.

You're entitled to your rosy observations of the "community", but the topic was more narrow - the ineffectiveness of overcomplicated filters in igniting passion.

> There's no gatekeeping since anyone is free to use Emacs how they want to use it.

There always is, for example, there are big iron gates blocking changes in the default health hazardous emacs-pinky keybinds. Of course, of course, if you waste enough time you'll be able to passionately hack a better system yourself, more power to you!

> So I think you have the wrong idea and an axe to grind for some reason, which I can't really help you with.

Indeed, much easier to conjure a fantasy axe

I’m not the same guy you were arguing with, but it’s much stranger to have such a weird and focused hatred for a text editor than it is to be a fan of a text editor.

Emacs is not really a text editor. It's rather a Lisp REPL with a built-in text editor. Everything what makes Emacs so great is because of that. That specifically makes it difficult to compare with other editors or IDEs. But sure, some people complain just for the sake of whining - for them, snow is not white enough, salt doesn't taste salty, sugar ain't sweet and Emacs sucks. Yeah, whatever you say, darling.

It is true, but it's also not the case. The steep learning curve is flattened quite a bit by available "starter pack" configs and the amount of fresh articles. So you can get a functional editor and then gradually bend it to your needs. Also, LLMs turned out to be quite good at generating working elisp and helping out in general.