Mike Cherba
Sat, 22 Jan 2005 09:36:50 -0800
Thanks for the lesson Bob. It really reminded me how much of software
progress is evolutionary and why adding tons of cfruft to everything
doesn't neccesarily make it better.
-Mike
On Sat, 2005-01-22 at 09:31, Bob Miller wrote: > Jim K wrote: > > > I just did a man ex on a mandrake 10 community system and it > > displayed the vim man page. Is ex just an alias for vim? > > Okay, guys. Time for text editor history class. > > Emacs. I already alluded to the fact that it was from MIT. In 1960, > MIT got one of the first PDP-1 computers made by the startup company, > Digital Equipment Corporation (DEC). A group of nerds took it over > and started developing software for it. One nerd, Alan Kotok, started > writing TECo, for Text Editor and Corrector. (Alan later went to work > at DEC and was the chief architect of the PDP-10.) TECo was a line > oriented editor: you type a command, the computer responds with > something. That's because the terminal was a Teletype machine, which > prints on paper. TECo was probably the world's first text editor, as > the idea of interactively using a computer was radical in the early > 1960s. > > Anyway, TECo grew and evolved, and was ported to other platforms. In > the early 1970s, DEC gave the MIT Lab for Computer Science four PDP-10 > computers. MIT developed its own operating system for them, ITS. > TECo was ported to ITS. By this time, TECo had grown into a fairly > complex and ugly language. I used to be very fluent in it, but since > I stopped using it in the early 1980s, I can't remember squat about > it. Richard M. Stallman (RMS, yes, that RMS, who later founded the > Free Software Foundation and the GNU project) took up maintenance of > TECo on the PDP-10s. He also developed a set of personal TECo editing > shortcuts, or macros, which got popular at the lab. He called them > EMACS. It probably was short for "editing macros", though officially, > EMACS doesn't stand for anything. > > That's why when RMS started the GNU project, the first program he > wrote for it was GNU emacs, a port of emacs to the C language and Unix > platform. > > I'll briefly mention some other emacses. > > An engineer at DEC reimplemented TECo for the PDP-11, and gave it a > small fraction of the original's feature set. This was the most > popular TECo, because it ran on thousands of PDP-11s and VAXes, and is > the version I learned. > > Somebody did an emacs clone for Unix at Bell Labs around 1980. It was > written in C and small enough (barely) to run on a PDP-11. Since it > wasn't extensible in any way (couldn't even rebind keys) most people > thought it didn't count as an emacs. > > James Gosling (who later created the Java language), while at CMU, > wrote an emacs implementation for Unix, usually called Gosling emacs > or gosmacs. Later, he made it into a commercial product, Unipress > Emacs. I tried to find a copy of gosmacs screen.c which starts with > the very best comment I've ever seen in a source file, but it seems to > be lost to antiquity. Gosling also published a paper in the CACM > about the algorithms in that file. > > There was a fork of gnu emacs called Lucid Emacs and later xemacs. > I personally use the unforked version, sometimes called FSF emacs > to disambiguate. They used to be horribly incompatible, but > they've been evolving into greater compatibility lately. > > That's the Emacs family. > > Meanwhile, at Bell Labs, Unix was being born. In the mid 1970s, the > way to interact with a Unix system was through a Teletype. > Accordingly, ed was written. ed is a fairly powerful and regular > editor, given the interface. Not as powerful as TECo, but a lot > easier to learn. Bell Labs started giving away Unix licenses to > universities in the mid 1970s. (One of the engineers of that era said > the reason ed never prints a prompt is that the machines were so slow, > they'd always be several commands behind you and when you finally > issued a print command (p or l) to see what you'd done you'd wait and > wait for it to catch up.) I remember using mini-Unix on a PDP-11/40, > and can vouch that a context switch took about three seconds on that > box. If another process ran during your editing session, the editor > would be swapped out for a minimum of six seconds. > > Sometime in the late 1970s, an undergraduate at Berkeley, Bill Joy > (who later became lead programmer in the DARPA-funded project to make > Unix a suitable computer science research platform, Berkeley Unix (aka > Berkeley Software Distribution, BSD), then later founded Sun > Microsystems), started adding features to ed. He called his "extended > ed" ex. Eventually he added "visual mode", or "vi", to display text > on a CRT terminal while it's being edited. So ex and vi were the same > editor, and both derived from ed. > > Since I'm primarily an emacs user, I don't know the history of various > vi versions and clones. The dominant vi variant today seems to be > vim, for "vi improved". Maybe somebody else would like to fill that > part in? > > Steven Levy's book, Hackers, is the best published history of this > era, especially the MIT bit. The O'Reilly book, Open Sources, has a > good synopsis history of BSD written by Mike Karels. > > * ITS, the Incompatible Timesharing System, had the weirdest file > naming convention I've ever seen. The machine had a 36 bit word, a > character set called 6-Bit was devised to fit six characters per > word. If I remember, it mapped ASCII characters 32 (space) through > 95 (backslash), so it had the uppercase letters, the digits, and > most of the punctuation, including space (which had code \00, > suitable for NULL-padding short names. A filename was two > 6-character words separated by a space. A common convention was to > use the second word as a version number. So the TECo Manual, > version 51, would have been named "TECORD 51". -- Mike Cherba Cavium Networks 883 Brookside Dr Eugene, OR 97405 phone: (541) 684-3820 Cell: (541) 914-2188 [EMAIL PROTECTED] www.caviumnetworks.com _______________________________________________ EUGLUG mailing list euglug@euglug.org http://www.euglug.org/mailman/listinfo/euglug