In Emacs, everything looks like a service
Emacs as OS, Shell, or Platform
- Many argue Emacs feels “OS-like” because it orchestrates many tools (mail, git, project management, chat, automation) above the kernel.
- Others say it’s more accurate to call it a shell or a Lisp machine / platform rather than an operating system.
- One view: an OS is a shared virtual machine layer; by that definition Emacs is a powerful platform but not an OS.
- Some emphasize that Emacs is essentially “a Lisp environment with a text editor attached,” not the other way around.
Capabilities and Extensibility
- Users highlight deep integration: editing, version control, email, RSS, calendars, fleet management, build pipelines, blogging, scripting, etc., all sharing data.
- Emacs’ large API (networking, process management, hooks, advice, UI primitives) and “everything is a buffer” model enable extensive customization.
- Concrete examples: custom commands to inspect certificates, send SMS via IRC, walk project files for review, or build entire blogs.
- Some argue it rivals or exceeds typical IDEs in features (completion, compiler checks, testing, debugging).
Client/Server, Services, and Unix Philosophy
- The “everything is a service” framing is seen by some as overgeneral: almost anything can be cast as client/server.
- Emacs is described as a Lisp-machine “refugee in Unixland”: it follows Lisp philosophy, not classic “small tools” Unix philosophy, though it integrates well with CLI tools.
- CEDET and other older subsystems show Emacs’ history of absorbing multiple paradigms (semantic parsing, then LSP, now agents).
Learning and Configuration
- Several recommend moving from distributions (e.g., Spacemacs) to hand-written configs to really learn Emacs.
- Resources mentioned: a popular Emacs book and curated “awesome Emacs” lists; also short introductory videos.
- Some users reduce external packages over time, relying more on built-ins.
Corporate Tooling and Control
- A recurring theme: employers mandating a single editor (often VS Code) for “team consistency” or compliance/security reasons.
- Many view this as counterproductive, arguing developers should use whatever editor maximizes their productivity.
- Others concede uniform tooling can help with onboarding, mentoring, and IT support, but still see strict bans as excessive.
Remote Use and Emacs Server
- Emacs can run as a daemon with
emacsclientas local “clients,” sharing buffers. - This is mostly local-domain-socket based; attempts to forward the socket over SSH are reported as not working.
- Workarounds involve TRAMP for remote files or X11 forwarding (
ssh -X), though performance and stability issues are noted.