Aucbvax.2082 fa.works utzoo!duke!decvax!ucbvax!mike@BRL Sat Jul 4 11:57:46 1981 EMACS -vs- UNIX Folks - "Eric Benson's message implicitly compares the Emacs design with UNIX. In his words, Emacs is elegant, UNIX arcane." Both this comparison and the conclusion disturb me. Comparing an editor (which can be thought of as having 3 levels) with an operating system (which has many levels of complexity) is kind of off-the-wall, but lets play along... INTENT: The intent of EMACS (as I see it) was to provide a "what-you-see-is-what-you-get" screen editor which behaved similarly over a wide range of terminal keyboards (and terminals), and to permit construction of Macros to implement higher-level features (LISP indenting, etc). The intent of UNIX was to provide a powerful, plesant, and consistent environment for Computer Science types to experiment and build tools in. In a word, the intent of UNIX is "Software Tools", whereas the intent of EMACS is "Software TOOL". Humm. USER INTERFACE: Everybody will be quick to agree that EMACS has a simple to learn user interface, at least to gain "novice" status. The more intricate commands become more obscure, and less mnemonic. (Everybody agrees that Meta-Control-single_character can get obscure). "What-you-see-is-what-you-get" is Motherhood and Apple Pie for screen editors, and EMACS definitely succeeds here. The UNIX user interface is designed to save typing while remaining reasonably mnemonic. A remarkable number of "Advanced" users can't type very well, so this is laudable. Unfortunately, this means users take a while longer getting used to the command abbreviations. There exist variants of the UNIX Shell (command interpreter) which accept abbreviated commands and do other nice, user-helpful things (although the "standard" (dumb) shells are more common). Initial EMACS and UNIX users face much the same problem... LOTS OF SQUINTY LITTLE COMMANDS. UNDERLYING STRUCTURE: As I understand it, EMACS can be thought of as having 3 layers: The user interface/screen control stuff, the Macro level commands, and the macro implementation level (Typically TECO). Certainly, the top level is easy to use. The Macro level can usually be learned and profitably USED by ordinary mortals, but the macro implementation level (TECO or whatnot) requires a Wizard to get good results. UNIX can be thought of as a number of levels, nested: The terminal driver & line protocol (control/s/q & "cooked" editing). The Shell (command interpreter) Programs (System commands & User programs have identical status) The I/O Library (Buffering & simple file mgmt) The System-Calls (Direct requests made to the UNIX Kernel) While each of these levels may have some overlap and inconsistencies, the general "clean" philosophy of having only one mechanism to accomplish one result is generally evident, and a real pleasure! [More on this some other day] "UNIX productivity must be thought of, not in terms of lines of code written per unit time, but in terms of lines of code NOT REQUIRED..." CONCLUSIONS: I feel that EMACS is one of the better screen editors around, mostly because of the "macro" facility which permits powerful features to be built on top, and I feel that UNIX is definitely the best operating system that has surfaced to date, because of the consistent system-call interface, and the "Software Tools" approach to commands. HENCE, I think that all UNIXs should have an EMACS, and everybody should run UNIX! -Mike Muuss Ballistic Research Laboratory PS: There exist EMACSs small enough to fit on an 11/34, and UNIX runs on everything these days, so this is less of a pipe-dream than it may seem! ------- ----------------------------------------------------------------- gopher://quux.org/ conversion by John Goerzen of http://communication.ucsd.edu/A-News/ This Usenet Oldnews Archive article may be copied and distributed freely, provided: 1. There is no money collected for the text(s) of the articles. 2. The following notice remains appended to each copy: The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman.