Though the author is confused about Emacs history, talking about Stallman's and Gosling's Emacs as if they were the same thing.
IIRC (I was around the AI Lab a bit after the fact) Richard Gabriel and Guy Steele (MIT AI Lab) wrote the original Emacs (editor macros) in TECO under MIT's ITS, which was a huge superset of the original DEC TECO. RMS took it over after a while, since RPG and GLS were mostly doing academic stuff. (Mike McMahon (MMcM) and others ported the ITS version to TOPS-20.)
Meanwhile, Bernie Greenberg wrote an Emacs in Multics Lisp, which was a huge influence on future Emacs implementations.
Eventually, RMS and others wrote the current Emacs.
Gosling's Emacs (nicknamed Gosmacs, written while he was at CMU, I believe) was a C-based implementation for Unix, and a poor-man's subset of the real thing.
Stallman's and Gosling's Emacs as if they were the same thing
They were, Gnu Emacs is a fork of what was then an old version of Gosling's Emacs. This was something contemporaneously admitted to by RMS, claiming he had an email authorizing it, but he, to my memory, never even produced a copy of it.
To someone intimately familiar with Gosling Emacs, as I was at the time, working for UniPress, this was totally obvious. Amusingly, this was perhaps the one time I could have been an expert witness of sorts, but the two owners of UniPress were menches and knew legal action was a bad idea (they'd had their own horror story forming the company after the broke from [redacted because I'm not 100% sure of my memory, but a name you'd recognize from that era]'s company, which they won when the latter's lawyer was caught burglarizing their office) and felt sales of their supported, on the then zillions of available Unix platforms (their unique selling proposition) Emacs would only be helped by RMS's version, at least for a good long while.
Eventually, RMS and others wrote the current Emacs.
See above, not at all. Substantially rewritten, but in the legal sense it's a derivative work. And exhibit number 1 in the list of horrific examples of RMS's stewardship of GNU/the FSF/etc., he took a chance that if it had gone badly would have resulted in GNU being stillborn or nearly so, much like happened to BSD.
The rest of your history is right (I have eyewitness testimony on the genesis from one of the beta testers, Ed Schwalenberg), except for Gosling Emacs being "a poor man's substitute", it was industrial strength, including not being an ersatz Emacs.
That is, it had a "Mocklisp" byte code compiled extension language (where else have we heard of this sort of thing from James Gosling? :-) in which a fair amount of functionality was embedded, it just wasn't a real LISP (but of course neither was TECO), and it diverged a fair amount in default keybindings etc.
There were also some other EMACS versions written in this in-between period, including SINE for the predecessor of the Media Lab's Multics like Magic OS, EINE and I think ZWEI, the latter two the ones for the Lisp Machine.
I'm well aware of UniPress (didn't they start out selling Brian Reid's Scribe commercially?) and Michael Shamus' rather jailhouse-lawyer-ish behavior.
But hearing that GNU Emacs started from Gosmacs is just hard to believe. If you were there and say so, I'll have to believe. ;-) It was certainly nowhere near as extensible as GNU Emacs, at least in my years of experience with it.
I was so there that RMS and I were roommates when he started the GNU Project ^_^ (much early history omitted, we were in the same social circle...).
This of course came a bit later, I started working for a UniPress subcontractor in December of 1984 on the MS-DOS port, and then a year later directly for UniPress.
But I absolutely, positively guarantee you they shared a common code base, something I confirmed for myself towards the end of or after more than a year of becoming intimately familiar with the UniPress Gosling Emacs C lower level code base.
RMS: I can't remember all the hacks that I was proud of, so I can't pick the best. But here's something I remember fondly. The last piece of Gosmacs code that I replaced was the serial terminal scrolling optimizer, a few pages of Gosling's code which was proceeded by a comment with a skull and crossbones, meaning that it was so hard to understand that it was poison. I had to replace it, but worried that the job would be hard. I found a simpler algorithm and got it to work in a few hours, producing code that was shorter, faster, clearer, and more extensible. Then I made it use the terminal commands to insert or delete multiple lines as a single operation, which made screen updating far more efficient.
Note that he might be overstating the significance of this, Gosling started his Emacs in 1981 per Wikipedia at a time CMU's researchers were somehow happy with running their fixed line terminals at the 1,200 baud default (they were capable of more, this story told to me by Ted Anderson, who coincidentally was the author of SINE, which Craig Finseth's list http://org.ntnu.no/emacs/implementations.html says was actually SINE Is Not EINE and therefore "the first known doubly-recursive acronym").
In general if you were using a standard terminal of the era, especially with a modem, you were desperate for cleverness from your redisplay code, it was e.g. a couple of years before the Ann Arbor Ambassador came out, and maybe longer before its firmware was up to snuff, VT-100 like, and could run at a flat out 9600 baud with 60 lines of text thanks to a fast microprocessor. And that might be why the Gosling Emacs redisplay code didn't do those multi-line operations, maybe they weren't possible on earlier terminals, or didn't buy you enough.
Michael Shamus? That wasn't the famous figure UniPress broke away from. By the time I showed up in late 1984/early 1985, their two big things were handling the distribution and support of a Unix for Apple computers (Lisa? Mcintosh? Can't remember), and having or having access to one of most every type of popular Unix system available, so they could port the other software they were distributing including Gosling Emacs, provide binaries, fix bugs and provide real support, etc.
Yes, sorry, Shamus was not associated with UniPress, but his own company Unilogic, started to commercialize Scribe (Reid's CMU PhD project). My only excuse is it's been a long time.
Ah, happy memories of terminal multi-line operation optimization in Twenex Emacs. (We did a lot of that kind of hacking when I was at Columbia in the very late 70's.)
FWIW, in 1983 RMS claimed to have been the "inventor of the much-imitated EMACS editor" in his famous 1983 GNU announcement (https://www.gnu.org/gnu/initial-announcement.en.html) (by which he meant the original Emacs, not GNU Emacs which he proceeded to work on over the next couple of years before releasing it).
Wikipedia??? Please, and I don't believe jwz was an eyewitness, plus that link no longer works
EDIT: I forget what he did with redirects from this site, but all he says that I could quickly find is:
Dramatis Personae:
Richard Stallman: creator of Emacs, founder of the FSF.
It's not a serious statement of provenance, and especially in the context he'd want to be generous towards RMS there before he describes the sort of behavior those of us who knew RMS well was well known for by the '70s....
Eyewitnesses like Ed Schwalenberg (private communication) and the late Daniel Weinberg (search for his revived blog, which also has testimony from David Moon who did a bit of the initial work, and as I recall others) say that RMS arrived a bit late in the game, but deserves great credit for turning their beginning into such a major thing even/especially in the TECO era.
And that's basically RMS's MO, he takes good beginnings and (generally) makes them into rather nice things, GCC might be the only well known exception where he started from scratch, but then again compilers were a pretty well established thing back then. For original ideas and such, look to things like the GPL, and as I recall he is said to have done some important AI research before he got lured away to systems and tools.
It wasn't all that bad. If you were an average college student in the early 80's you had a time-sharing login to a PDP 11/70 running RSTS. TECO was there but there was also VTEDIT which was a collection of TECO macros that sent the correct escape sequences to the VT52 terminal to create a usable screen-editing environment. And if you wanted to tweek the escape sequences to customize your function keys that was do-able.
This scene from Wargames shows what an average college computer lab looked like in the early 80's. The terminals were probably VT52's, VT100's, or Teleray 10T's which were VT52-compatible.
Around 1975, I loved TECO and totally embraced it strange, compact set of commands. I even expected my students (second semester CS majors) to develop a reasonable level of skill with TECO as it was at the time, on our systems, the most efficient way to write code. I programmed in it keeping my program in my head as much as I could, because like ed you had to issue a command for it to print out lines of the file you were working on. It's hard to imagine that it was possible to write real programs like that.
Before TECO I was punching cards so it seemed like a big improvement. My use of TECO didn't last long; there was a full screen editor of some kind that I can't remember running on the KRONOS OS (CDC 6600 mainframe) that replaced TECO and shortly after that I discovered Emacs. What strange and interesting days those were to be programming.
And we'll wrap up the article with a BrainFuck interpreter, one that's more compact than a BrainFuck interpreter written in BrainFuck. That truly _is_ a glorious horror.
Sad(!) to say I could still read that TECO example. The PDP-10 TECO in which Emacs was written was amazingly powerful -- you could assemble machine code into a string and then branch to it.
Ed is infinitely more user friendly, was in fact my first editor (punched cards or very limited environments like the one IBM provided for BASIC and PL/I prior to that), and it's what I drop back to, usually in its more user friendly ex form, when I don't or can't use a full fledged EMACS.
TECO is best described by the one liner, "A moment of convenience, a lifetime of regret", I'll see if I can look up the author of that, it was in the ITS fortune file.
Back in the day I recall using an editor called Foxe on a 2060. Was easier to me than TECO for basic editing. But the really cool geeks had already begun moving on to Emacs. This was a time when punch cards were still being used, mostly by those on CDC stuff
IIRC (I was around the AI Lab a bit after the fact) Richard Gabriel and Guy Steele (MIT AI Lab) wrote the original Emacs (editor macros) in TECO under MIT's ITS, which was a huge superset of the original DEC TECO. RMS took it over after a while, since RPG and GLS were mostly doing academic stuff. (Mike McMahon (MMcM) and others ported the ITS version to TOPS-20.)
Meanwhile, Bernie Greenberg wrote an Emacs in Multics Lisp, which was a huge influence on future Emacs implementations.
Eventually, RMS and others wrote the current Emacs.
Gosling's Emacs (nicknamed Gosmacs, written while he was at CMU, I believe) was a C-based implementation for Unix, and a poor-man's subset of the real thing.