💾 Archived View for tilde.team › ~steve › blog › emacs-summary.gmi captured on 2022-04-28 at 19:12:06. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-11-30)

-=-=-=-=-=-=-

Pros & Cons

Back

Whenever I want to do something related to the digital world, I turn to Emacs and see if it can do it. Almost always the answer is YES:

All these tasks are done in Emacs. These are not independent tasks; it's very useful that my writing helping tools are in the same place as where I write articles, papers and emails.

It seems I'm biased, but I really can't find any better tools, believe me I tried. I spend some part of my time on meta-work which means the tools and methods I use. Part of that is searching for other, maybe better tools. When I moved from Linux to Mac, some 10 years ago, I tried to find "the best" tools for what I wanted to do. I spent time and money checking out TODO list managers, project management tools, knowledge bases, various editors and IDEs, writing applications, latex editors, digital journaling apps, RSS readers, git GUI clients. In almost all these fields, Emacs can do it reasonably well and the added bonus is you only need just one app. I can list the actual apps I tried but I don't think it's needed; if a field is familiar to you, you'll know who are the major apps in that field.

Choosing Emacs definitely comes with a set of compromises. Some of them include: outdated GUI experience, steep learning curve, issues with multi-threading sometimes cause Emacs to block while doing background tasks such as fetching, Elisp as its extensibility language (subjective), conservative development style takes a relatively long time to add new features or change defaults, remote development is not good (compared with VSCode remote SSH tools).

Let me expand on the learning curve. It's steep. Emacs has a history and a set of conventions which are different than almost any other piece of software - frames, buffers, kill ring, a point, faces. There's a lot to learn just to be able to make sense of the documentation. Tutorials can be helpful here. I mentioned that Emacs by default is barren. There are many ways to start to improve it and you can get confused from all these options because there is always more than one way of doing something. I mentioned the infinite configurability; everything can be inspected back to its source code and then modified to fit your preferences. It can be a trap of countless days and weeks, spent on configuring Emacs to become "better" in some sense after which you're not sure the time spent was really worth the few seconds you saved by automating some task. So it's a double time loss: first is the start-up time to start seeing value from Emacs and then the time you spend when you think you need to improve your configuration but you never really finish configuring Emacs. Ever.

The upside of choosing Emacs? It is truly a multi-tool app, saving you money. Emacs official development is conservative but users' community is bubbling with activity and you can find packages for almost any task you can think of. One such example is the LSP packages support which is a game changer, even though it's not an official part of Emacs (yet). It's an exemplary open-source project, inviting you to read and hack at the source code with one of the most comprehensive manual guides there is. It's a 40 year old editor, that's likely to still be here in 40 years. Learning Emacs today could mean learning the last editor you'll need © (stole this sentence from somewhere else).

I think it's going to be the last in the "about Emacs" series for now as I'm starting to repeat myself. Next time we'll talk about concrete things, not meta.