The Origin of Emacs in 1976
Early Emacs and TECO on 1970s systems like the PDP‑10 and MIT’s ITS reveal how much of today’s computing culture—screen editors, email addressing conventions, and network file systems—was already taking shape under severe hardware and bandwidth constraints. Commenters contrast line editors, TECO macros, and early display protocols such as SUPDUP with modern tools, while reflecting on Emacs’s unusual longevity, past attempts to reimplement it in languages like Rust, and whether it’s still worth learning in an era of newer editors.
Early editors, TECO, and Emacs’ origin context
- Posters recall using TECO-based editors, VTedit/vted, SOS, XEDIT, EDT, SPEED/SED, etc., illustrating a diverse ecosystem before vi became dominant.
- Many stress how hard TECO was to use: invisible point, paging files manually, and syntax “like line noise,” yet powerful enough to build full-screen editors and even run inline assembly.
- TECO-based Emacs sources (e.g., dired) are cited as examples of extreme expressiveness without modern language niceties.
Email addressing and pre-Internet mail
- Early ARPANET mail often used “user at HOST” instead of
user@HOST, matching early RFCs. - Later RFCs mention both “at” and
@, and hierarchical addresses; syntax evolved over time. - UUCP
host!user“bang paths” and other non-Internet formats (e.g., VM/CMS style) are discussed. - There’s some confusion/clarification around when FTP, SMTP, and UUCP appeared and how mail initially piggybacked on FTP.
Early networking, filesystems, and terminals
- ITS is highlighted for early, sophisticated features: user-space devices, transparent network file systems (MLDEV), process detach/reattach, and pseudo-TTY based terminal support.
- SUPDUP is discussed as a “super” display protocol enabling efficient remote screen handling, including tricks to scroll and repaint quickly at 300 baud.
- Historical anecdotes emphasize bandwidth limits and why line editors and minimal screen updates mattered.
Emacs variants and implementation discussions
- Multiple Emacs lineages are mentioned: original TECO Emacs, Multics Emacs, Lisp Machine editors, Gosling Emacs on Unix, modern Common Lisp/Scheme clones, and Rust experiments (remacs, emacs-ng).
- Some note that in Lisp-based systems there was effectively no boundary between “editor language” and “implementation language.”
Longevity, rewrites, and modern relevance
- Several commenters remark on the remarkable durability of Unix shells, Emacs, and vi across decades and platforms.
- There is interest in rewriting Emacs internals in more modern, multicore-friendly languages (Go/Rust), but others point to prior attempts and note that reimplementing Emacs Lisp alone is far from reproducing Emacs.
- One thread addresses whether learning Emacs in 2024 is worthwhile: supporters emphasize extensibility and fun with Emacs Lisp; skeptics find keybindings unergonomic and might switch if performance stalls.