4 ms·
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
by imiric 1y ago
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.
- donaldihunter 1y agoI 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.
- imiric 1y agoThat'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.
- nextos 1y agoAlso 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.
- imiric 1y agoThat'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.
- anthk 1y agoGTK too; but you need to enable it in GSettings (or maybe Gnome Tweaks under GNome).
- cvdub 1y agoEmacs takes a lifetime to learn. The sooner you start the longer it takes!
- iLemming 1y ago"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.
- eviks 1y ago> 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
- frankie_t 1y agoIt 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.
- iLemming 1y ago> 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.
- imiric 1y agoWell, 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.
- frankie_t 1y ago> 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).
- Karrot_Kream 1y agoTo 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 https://github.com/jamescherti/minimal-emacs.d