euglug  

Re: [Eug-lug] Computer time

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