Emacs and the Extensible Editor as a Programmable Environment
Emacs turned text editing into a programmable environment by putting commands, key bindings, modes and user extensions behind an interpreter that could be changed while the editor was running.