Ask HN: If you were rewriting Emacs from scratch, what would you do differently?

Language and Extensibility

  • Central tension: Emacs as a “Lisp machine” vs desire for a more mainstream extension language.
  • Many insist Lisp (esp. Emacs Lisp or another Lisp like Common Lisp, Scheme, Guile, Fennel) is essential to Emacs’ identity and unique REPL-driven, homoiconic metaprogramming.
  • Others argue for Python, Lua, JavaScript/TypeScript, or even a language-agnostic bytecode / WASM core, to broaden accessibility.
  • Some want Elisp kept but modernized (lexical scope by default, better namespacing, richer data structures), or replaced with a CL/Scheme-like core while preserving backward compatibility.

Security and Sandboxing

  • Some see little need for sandboxing extensions, emphasizing user freedom, source visibility, and trust in archives.
  • Others highlight supply-chain risks, auto-updating packages, and argue for fine-grained capabilities (e.g., themes shouldn’t exfiltrate code) or WASM-style sandboxes.
  • Disagreement persists on whether security constraints inherently undermine Emacs’ ethos.

UI/UX, Input, and Layout

  • Calls for better typography, proportional fonts, non-Latin script support, and “harder to misconfigure” defaults.
  • Mixed views on mouse and GUI behavior; Emacs often feels “keyboard-first” and odd compared to modern GUI editors.
  • Keybinding debates: keep Emacs-style Ctrl/Meta vs default to leader-key / modal (Vim-like) interaction; some suggest more CUA-like defaults or dedicated beginner modes.
  • Window management is powerful but seen as complex and unintuitive; newer APIs (e.g., display rules) help but don’t fully satisfy everyone.
  • Several want off-screen cursors and scrolling behavior consistent with other editors.

Architecture, Performance, and Concurrency

  • Many would redesign the core for true concurrency, async I/O, and non-blocking UI, plus better handling of large files and many buffers.
  • Proposals include Rust or other safe languages for the core, more sophisticated buffer structures (ropes/piece tables), and cleaner separation between core, display, and worker processes.
  • Some report Emacs as “clunky” or high-latency compared to Neovim; others say modern Emacs (with native compilation, tuning, daemon mode) already feels fast.

Ecosystem, Workflow, and Philosophy

  • Suggestions for improved package management, discovery, and possibly paid plugin “app stores”; others prefer a tiny core with everything else in packages.
  • Criticism of the email/patch-based contribution workflow; some want GitLab/sourcehut-style interfaces.
  • Strong recurring theme: Emacs is not “just an editor” but a programmable, Lisp-centric environment; many proposals are judged by whether they preserve or dilute that character.