From mboxrd@z Thu Jan 1 00:00:00 1970 From: jnc@mercury.lcs.mit.edu (Noel Chiappa) Date: Sat, 2 Aug 2014 12:47:48 -0400 (EDT) Subject: [TUHS] Unix taste (Re: terminal - just for fun) Message-ID: <20140802164748.6D3BD18C0B2@mercury.lcs.mit.edu> > From: Doug McIlroy > A symptom of why I have always detested emacs and vi. With ^D, ^C, and > ^\, Unix has more than enough mystery chords to learn. Emacs and vi > raised that number to a high power--an interface at least as arcane and > disorganized as the DD card in OS 360--baroque efflorescences totally > out of harmony with the spirit of Unix. I will agree that the Emacs user interface is not simple - although there are levels, and one can start out e.g. without knowing the commands to move by word, and get by with the commands to move by character - and of course nowadays, the arrows, etc, keys on keyboards are bound to the appropriate commands, for novices. But it's a subtle debate; yes, it's not for everyone, but i) as an application, not everyone has to use it (unlike a kernel), and ii) as the editor is the principal tool which most programmers spend hours a day using, it is not insensible to have a more complex but powerful tool which takes a while to fully master. (Like playing a violin...) Back on V6, we started using one written by someone at BBN (memory fails me as to exactly who), and it improved my productivity immensely (with 'WYSIWG' editing - i.e. you always see the current contents of the buffer, multiple buffers, multiple windows, etc). I had been using 'ed' (although I had access to Emacs on the ITS machines), and although I was (and remain) fairly skilled at 'ed', the factors I just listed are immense, IMO. Being able to see the code as I work on it really, really helps (for me, at least). But a lot of that is orthogonal to Emacs command interface; you can have 'WYSIWYG', multiple buffers, etc with a wholly different command interface, and get much the same benefit. (E.g. uSoft Word has most of those; real WYSIWG [i.e. with multiple fonts], multiple files open at once, etc, etc.) Does something like Word produce the same reaction for you? I don't use it much, but my wife does (she's an engineer, and uses it to write papers), and its complexity drives her crazy sometimes. As for the size of Emacs, everyone needs to distinguish between GNU Emacs, and Emacs-like editors. Just as GCC is a beast, but other C compilers are and were much smaller, there are small Emacses out there. Back on V6 (on a PDP-11, of course), it had to fit into 64KB; the one we used didn't have the kind of extensibility common in them now, but it was still a much better tool for me than 'ed'. As I recall the performance was pretty good (albeit it chewed CPU time, since it woke up on every character - Multics had an Emacs which tried to avoid that, and only woke up on non-printing characters, and used system echoing for the others). I don't know for sure (I don't have the source to hand at the moment - that's one of the things I hope to recover if/when I can read those backup tapes), but I suspect that it 'windowed' files (i.e. didn't read the whole thing in); with the 65KB address space of the 11, that would be almost inevitable. I have been using another Emacs, Epsilon, for almost 30 years now; it started as basically Emacs for MS-DOS, and later became Emacs for Windows, and it is small and very fast. The Windows executable is about 250KB, and it loads a 'state file' (mostly interpreted 'compiled' intermediate code, written in something that's 99.2% 'C', in which a lot of the editor is actually written) of about 200K (for mine, which has a lot of extensions I wrote). It starts fast, and runs blindingly fast. It also uses the file 'windowing' techniques, and can handle much larger files than its address space (this dates back to its MS-DOS days). So Emacs != big (at least, not necessarily). > A modern-day analog of the undisciplined exuberance of emacs and vi: > for a good time on linux try I basically agree with you on this; I want to go away and collect my thoughts before responding, though. Noel