It's interesting how much of this has been lost to history. Curses, in
particular, is sketchily documented, and se is unknown. Here's how I
remember it.
Bill Joy made major enhancements to previously enhanced versions of ed,
creating vi. In 1979, he bumped up against the 64K boundary on the
PDP-11, and handed it off to me. I made some more smaller enhancements.
vi was huge by the standards of the day, especially compared to ed.
There were ifdefs to take out several features, such as support for
upper case only terminals, to make it fit on the PDP-11. I had to split
it into version 2 (16 bit) and 3 (32 bit) to be able to enhance it and
still support 2BSD on the PDP-11.
Ken Arnold took the screen updating code from vi (just the "full screen
update", not the parts that did insert/delete line/char) and turned it
into the curses library. Rogue was the primary user of curses.
Once I graduated from Berkeley went to Bell Labs, I took vi, termcap,
and curses with me. I replaced termcap, which was too slow to start up
(it was quadratic on the size of the entry, which was awful on the
hardware of the day) with terminfo, a binary version that was faster. It
included tools like tic and infocmp to translate back and forth to text
and termcap.
I also rewrote curses with a new algorithm that fully utilized
insert/delete line/char. I had a paper to publish on the subject, but I
lost it and never did publish it.
I gave a talk at Usenix Boston in 1982 about the new curses and
terminfo. But I couldn't release the code, because it was considered
proprietary. Pavel Curtis offered to clone it, and I coached him on the
algorithm and specs, and he released a good clone pcurses. Eventually
that became ncurses.
Nearly everyone at Bell Labs (outside area 11) was using either vi or
emacs, but System III just had ed. There was a big push to add vi or
emacs to UNIX 3.0 (System III), but USG instead chose to write se, the
"screen editor" and put it in UNIX 4.0. Nobody would use it, so UNIX 5.0
(System V) relented and included vi.
Mary Ann
On 1/7/20 8:30 AM, arnold(a)skeeve.com wrote:
Larry McVoy <lm(a)mcvoy.com> wrote:
I'm a vi guy to this day. Love it.
In the summer of '82 I did some contract programming at Southern Bell
on a PDP-11 running USG Unix 4.0. It had a screen editor called 'se'
that I only ever saw there, written somewhere in the Bell System and
squeezed to run on an -11. Anyone know anything about it?
Unrelated, Georgia Tech had the 'se' screen editor as part of the
Software Tools Subsystem, based on the 'ed' in the Software Tools book.
This was later ported to Unix. I modified that code to use curses/termlib
and posted it to USENET. It's been updated and is available from
https://github.com/se-editor/se and
http://se-editor.org is the home
page. (Thomas Cort IIRC did that work.)
What's funny is that in doing the work to get 'se' running on Georgia
Tech's Vax, I had to learn vi. By the time I was done, vi had become
my main editor and had burned itself into my finger's ROMs.
Arnold