> From: John Cowan <cowan(a)mercury.ccil.org>
> because of all the Elisp code it ships with
So why is /usr/bin/emacs 4.5 megabytes?
> That's basically just the kind of peeving that objects to the use of
> computers as calculators and spelling checkers.
I just gave several good reasons why large programs (well, technically,
systems) are bad. Are you saying those reasons are fallacious?
Noel
> From: Mark Longridge <cubexyz(a)gmail.com>
> I thought you folks might be interested in looking at the changes I had
> to make. It was a bit harder than the port to v6 but porting to v6
> first did make things a bit easier.
To save me from poring over 'diff' output :-), what (at a high level) were
the changes you had to make to get it to run on v5?
Noel
> From: "A. P. Garcia" <a.phillip.garcia(a)gmail.com>
> Being so small, I expected the editor to lack a scripting language.
Well, there is a companion 'compiler' which converts extension source into
the intermediate form (byte-code) which is interpreted by the editor. But
it's even smaller (67KB!) and as fast as the editor itself.
> I was pleasantly surprised that it does have one, and that it's a c
> derivative ... "Extensible and modifiable" doesn't always mean the same
> thing to everyone, and well, you're a kernel hacker.
Take a quick look at a source file, e.g. one of mine:
http://ana-3.lcs.mit.edu/~jnc/tech/cmd.e
and you'll see i) what it's like (except for a few new editing-specific
keywords, such as 'on <key>' in function definitions, it's pretty much C),
and ii) it will give you a sense of the kind of things one writes in it, and
how easy it is to do so.
The underlying run-time basically just provides buffer, display, etc
primitives, and pretty much all the actual editor commands are written in the
'extension' languge, even simple things like 'forward character' (^F), etc.
The complete manual is available online, the run-time system is described
here:
http://www.lugaru.com/man/Primitives.and.EEL.Subroutines.html
Epsilon comes (as of a few versions back, I haven't bothered to upgrade) with
about 22K lines of source, which is the bulk of the actual editor; that turns
into about 190KB of intermediate code.
Noel
On Sat, 2 Aug 2014, John Cowan wrote:
> > Hadn't really noticed; I went straight from CP/M to Unix, giving
> > MS-DOS a miss.
>
> I was actually thinking about OS/8 and RT-11.
Ahh... RT-11 and TECO... Who here hasn't typed their name into it to see
what it did?
I was thinking of home systems.
-- Dave
> From: Benjamin Huntsman <BHuntsman(a)mail2.cu-portland.edu>
> I thought it stood for Escape-Meta-Alt-Control-Shift :)
> From: Dave Horsfall <dave(a)horsfall.org>
> EMACS - Editor too large
Those are both pretty funny!
BTW, Epsilon (that 250KB Emacs that I was raving about) not only runs under
Windows, it also runs under Linux, Mac OS, FreeBSD, etc. Here:
http://lugaru.com/
I can't say enough good things about it (hence my 30-year addiction to it).
If you want an Emacs clone that is very small; very fast; and wildly
extensible and modifiable (it comes with almost all the source), in C
(effectively); this is the one.
Noel
> To each their own.
Indeed.
> As a Vi user, nothing beats having Esc on the home row.
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.
(Perhaps one could liken learning vi to learning how to finger
the flute, but the flute pays off with beautiful music. To put the
worst face on vi, it "pays off" only by promoting frantic tinkering.)
A modern-day analog of the undisciplined exuberance of emacs and vi:
for a good time on linux try
less --help | wc
Does comment on taste belong in a discussion of history? I think
so. Unix was born of a taste for achieving big power by small
means rather than by unbounded accumulation of facilities. But
evolution, including the evolution of Unix, does not work that
way. An interesting question is how the corrective of taste manages
ever to recenter the exuberance of evolution. The birth of Unix shows
it can happen. When will it happen again? Can one cite small-scale
examples that gained traction within the larger evolution of Unix?
Doug
> From: Doug McIlroy <doug(a)cs.dartmouth.edu>
> 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
Arrow keys? Vi does arrow keys? But then I'd have to move my hand from home.
That's not vi.
--
Ed Skinner, ed(a)flat5.net, http://www.flat5.net/
-------- Original message --------
From: Doug McIlroy <doug(a)cs.dartmouth.edu>
Date: 08/02/2014 8:38 AM (GMT-07:00)
To: tuhs@minnie.tuhs.org,lm@mcvoy.com
Subject: Re: [TUHS] Unix taste
> So Doug, ed? Or what?
Yes, ed for small things. It loads instantly and works in the
current window without disturbing it. And it has been ingrained
in my fingers since Multics days.
But for heavy duty work, I use sam, in Windows as well as Linux.
Sam marries ed to screen editing much more cleanly than vi.
It has recursive global commands and infinite undo. Like qed
(whence came ed's syntax) and Larry's xvi it can work on
several files (or even several areas in one file) at once.
I would guess that a vi adept would miss having arrow keys
as well as the mouse, but probably not much else. Sam offers
one answer for my question about examples of taste reigning
in featurism during the course of Unix evolution.
Doug
_______________________________________________
TUHS mailing list
TUHS(a)minnie.tuhs.org
https://minnie.tuhs.org/mailman/listinfo/tuhs
> So Doug, ed? Or what?
Yes, ed for small things. It loads instantly and works in the
current window without disturbing it. And it has been ingrained
in my fingers since Multics days.
But for heavy duty work, I use sam, in Windows as well as Linux.
Sam marries ed to screen editing much more cleanly than vi.
It has recursive global commands and infinite undo. Like qed
(whence came ed's syntax) and Larry's xvi it can work on
several files (or even several areas in one file) at once.
I would guess that a vi adept would miss having arrow keys
as well as the mouse, but probably not much else. Sam offers
one answer for my question about examples of taste reigning
in featurism during the course of Unix evolution.
Doug