#Dev

Concerning Emacs (and Jazz)

Tech Essays Reporter
5 min read

The author reflects on how Emacs has become a central, creative tool in his daily workflow, drawing parallels between music improvisation and text editing. He describes his highly customized Doom Emacs setup, the power of packages like Magit, mu4e, org‑mode, and others, and argues that the editor’s extensibility enables a uniquely personal computing experience.

Thesis

Emacs is more than a text editor for the author; it is a programmable canvas that mirrors the improvisational freedom of jazz, allowing him to shape his entire digital life with the same personal expression he seeks on his instrument.

Key Arguments

1. A Creative Workflow Rooted in Personal Preference

  • The author’s background in jazz guitar informs his desire for a tool that can be personalized rather than forced into a one‑size‑fits‑all model.
  • By configuring a minimal i3 environment and mapping hand movements to window actions, he demonstrates how a well‑tuned setup reduces cognitive load, letting the mind focus on the task itself.
  • Emacs extends this philosophy: every command, shortcut, or macro can be tuned to the user’s idiosyncrasies, turning mundane edits into moments of mental engagement.

2. The Power of Multiple Approaches

  • Simple editing tasks (e.g., inserting commas into a list, updating a table, filling placeholders in Elixir koans) can be solved in dozens of ways.
  • The author showcases three distinct macro‑based solutions for each task, emphasizing that the choice of method is itself a creative act, much like selecting a different improvisational line over a chord progression.
  • This multiplicity keeps the brain “tickled” and prevents the work from feeling rote.

3. Consistent Keybindings Across Contexts

  • By adopting Doom Emacs’ evil‑mode, the author carries Vim‑style motions into every corner of his workflow—email, notes, code, and even calendar.
  • The uniformity of bindings creates a seamless mental model, akin to a musician’s muscle memory that translates across instruments.

4. The Ecosystem of Packages as Instruments

Package Role Why it matters
magit Git porcelain Provides a modal, keyboard‑centric interface that feels like an extension of the editor rather than a separate tool.
mu4e Email client Integrated with Org‑mode, allowing composition in plain‑text Org syntax that is rendered to HTML on send.
yasnippet Code snippets Supplies “little elves” that expand boilerplate, letting the author focus on algorithmic logic.
elfeed RSS reader Simple key‑driven navigation keeps the reading loop inside Emacs.
org‑mode Knowledge management The centerpiece: outlines, TODOs, tables, agenda, and org‑babel for literate programming across any language.
org‑roam Networked note‑taking Enables a graph of linked ideas, similar to a lead sheet with motifs that reference each other.
calfw Calendar UI Presents agenda data in a visual grid while staying within the Emacs buffer ecosystem.
corfu Completion UI Supplies LSP‑backed, context‑aware suggestions without leaving the editor.

These packages illustrate Emacs’ claim of being “an editor that is also a runtime” – a Lisp interpreter capable of hosting its own extensions, from a simple calculator to a full‑blown web browser.

5. Org‑mode as a Musical Score for Computing

  • Org‑mode’s plain‑text markup lets the author compose documents, code, and schedules with the same structural clarity a lead sheet provides a jazz ensemble.
  • Org‑babel enables literate programming: code blocks in any language can be executed, their output captured, and the results woven back into the narrative.
  • Example: a Python snippet calculates a value, which is then fed into a Bash command, mirroring a call‑and‑response pattern.
  • The author also uses Org‑dispatch to export to HTML, Reveal.js, LaTeX, or Markdown with a few keystrokes, turning a single source file into multiple deliverables.

6. The Limits and Trade‑offs

  • Not every domain fits comfortably inside Emacs.
    • Music playback: EMMS and Bongo fell short for the author’s large Nextcloud library; he now prefers dedicated web apps.
    • Chat: IRC/Matrix clients in Emacs felt clunky compared to native desktop apps.
    • Web browsing: EWW is functional for text‑heavy sites but cannot handle modern PWAs.
  • Acknowledging these gaps underscores that Emacs is a tool, not a universal replacement for every application.

Implications

  • Personal agency: By mastering Emacs, users gain fine‑grained control over their digital environment, reducing reliance on opaque GUIs.
  • Skill transfer: The discipline of building macros and configuring packages cultivates problem‑solving habits that translate to other programming tasks.
  • Community knowledge: Because Emacs configurations are plain Lisp files, they are trivially shareable, fostering a culture of collective improvement.
  • Longevity: Emacs’ 30‑year history and active development (e.g., Doom’s fast start‑up of ~3 seconds for 300 packages) suggest a stable platform for long‑term workflows.

Counter‑Perspectives

  • Critics argue that the initial learning curve is steep and that the time spent customizing could be better allocated to learning domain‑specific tools.
  • Some users find the modal approach (evil‑mode) disorienting, especially when switching between Emacs and other editors.
  • The ecosystem’s breadth can lead to configuration rot: outdated packages or breaking changes may require constant maintenance.

Conclusion

Emacs, when treated as an expressive medium rather than a mere editor, offers a uniquely personal computing experience that resonates with the improvisational spirit of jazz.
Its extensibility—rooted in Emacs Lisp—allows the user to sculpt a workflow that feels like an extension of the self, while the rich package ecosystem supplies ready‑made instruments for version control, email, note‑taking, and literate programming.
Although it cannot replace every specialized application, the author’s testimony shows that for many daily tasks Emacs provides a level of cohesion and creative freedom that few other tools can match.


Further Reading

Comments

Loading comments...