I actually found an earlier version of this paper in my teachers room (published 1979). It's AI Memo 519 (the linked paper is 591A) and I can't find a reference to this anywhere. I even emailed Stallman and he couldn't remember when it was first published (he thought that it was published in 1981 first to).
There are a few papers circa 1980 that cite an AI Lab memo with this title and give a date of 1979 [1], so there must indeed have been a version circulated earlier than the 1981 "A" version. Have you tried contacting the CSAIL archivist to see if they'd be interested in putting up a non-A version of 519?
Whoa, funny. I read half of this conversation last night, and the second half today, and mistakenly thought you were still looking for that document having forgotten what I read last night. I will leave my embarrassingly ridiculous comment above for posterity.
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
This is nice to see a relatively brief introduction to the essential features.
Steve Yegge wrote: "Go look over Paul Nordstrom's shoulder while he works sometime, if you don't believe me. It's a real eye-opener for someone who's used Visual Blub .NET-like IDEs their whole career."
Does anyone know of any public video of Mr. Nordstrom using emacs, or can someone who knows him request one?
[edit: properly attribute the quote]
Bravo comes from the Xerox Palo Alto Research Center. Its orientation
is toward text formatting, and it can display multiple fonts, underlining,
etc. It makes heavy use of a graphical pointing device, the `mouse'
(see Augment). It is not programmable and offers no special help for
editing programs as opposed to text. For more information, see your
local industrial espionage agent.
Some trivia: Bravo, the first WYSIWYG word processor, was developed by Butler Lampson and Charles Simonyi at PARC. Simonyi left PARC in 1981 to join Microsoft and led the Word and Excel projects.
The original IDE, and originally outlawed for 'regular' users because it dragged the the DEC KL10 to its knees in I/O traffic if more than 20 or 30 terminals ran it at the same time.
It is an interesting environment but for what ever reason I ended up back in VIM (at school it was Emacs or FINE, at home 'MicroEMACS' and at Sun it was 'vi') Now vim is my go to editor but I'm not as fast as some folks who have melded well with either EMACS or VIM.
"The traditional attitude towards Lisp holds that it is useful only for esoteric amusements and Artificial Intelligence. The appearance of Multics EMACS as a Honeywell product is the death knell of this view."
'(TECO-based) Emacs was created and designed by Guy L. Steele Jr. and David Moon. After they had it working, and it had become established as the standard text editor at the AI lab, Stallman took over its maintenance.'
Hmm, this other 1979-era history of Emacs also doesn't mention Steele, though it does mention Weinreb and Moon, whom the author seems to have worked with closely: http://www.multicians.org/mepap.html.
Steele was one of the authors of the TMACS package, for which this article has “???” in the references.
Incidentally, the article mentions Multics' version of QED in passing; this regular-expression-based editor was written by Ken Thompson¹ and is a (more complicated) ancestor of ed(1), the standard text editor on Unix.
You are reading that right. If it makes it seem any more sane, that's because many text editors of the time weren't written for screens ("displays"), but for teletypes, where you couldn't possibly see your code verbatim as you were editing it.
For example, the standard editor on early Unix was 'ed'. It is available on most modern *nix systems, if you care to try it :). Bill Joy later modified ed to be a display editor, or 'vi'sual editor; so if you have you have used Vi, it shouldn't be too unfamiliar.
Well, ex is 'ex'tended ed, and vi and ex are the same program.
From 1976-1979, the way to open vi was to execute 'ex', and run the 'vi[sual]' command in ex. In 1979, ex learned to launch the 'vi' command automatically if argv[0] is "vi", and a symlink from 'bin/vi' to 'bin/ex' was added.
Someday, I hope someone will say "Am I reading this right? You used to not be able to see your code execute as you were editing it? My god, that sounds horrible."
There is a lot of technology advancement (in software and hardware) that we just take for granted today, and will tomorrow!
The story (in "software superheroes", thoroughly good read) is that the British computer scientist George Coulourais, was visiting Bell Labs and met with Ken Thompson. Ken was editing some of the unix code base using a 'ed'- with no reference printout, no display, just typing from memory. George was simply astounded and so christened his own editor (which used raw input to allow line by line editing) 'em' or Editor for Mortals
Subsequently he gave the code to Bill Joy who turned it into ex and then vi and at some point even Ken Thompson probably used it.
"Our" history (as coders) is short and surprisingly oral, but still has gods in it and messengers from the gods bringing down the fruits of their wisdom.
Have you ever used a 300bps modem to connect to the internet? If you did then you would see how avoiding rendering could make you much much more productive.
I had Emacs running "okay-ish" on my 300 baud modem. I wrote a terminal emulator that implemented character and line insert and delete, and region scroll, which made Emacs screen refresh (borderline) tolerable.
Let's just say that it WAS tolerable considering that my alternative was to use punchcards. (Imagine long lines for punchcard machines in the basement of the CS building, which smelled of too many students and way too much fear, and waiting six hours for your program to run. Oh, and everything in uppercase...)
If memory serves, one of Emacs innovations was to decouple the display system from the editing system. The display would run asynchronously. If the display lagged due to a slow connection it would always be trying to show the most current state rather than strictly rendering the results of each edit operation, one by one. It also tried to minimize the terminal codes need to bring the display up to date.
I can't say I've ever used it on a 300 baud modem, but I have used it over a transcontinental SSH session on a crowded wifi connection and I've been thankful for it being designed to operate well under adverse conditions like that.
Yes, I always assumed that was part of the motivation for "chunky" operations like forward/delete word, paragraph, etc. On a slow connection it made a big difference to be able to jump ahead by words, paragraphs, or "balanced expressions" rather than character-by-character. And VT100 terminals didn't have a mouse so there was no way to do something like click-drag to select a block of text.
If anyone using a Mac wants to experience this, there exists the retro terminal emulator "Cathode" which can emulate various modem speeds (along with curved glass, CRT phosphor persistence, etc) http://www.secretgeometry.com/apps/cathode/
It's still a very effective method of working with code. I dare you to find a display which will let you see (and edit) as much code as printouts laying on the floor would :)
I just had this thought, what if Linus came in or HMS or someone else kinda already famous did a "Show HN: I made a extensible editor called emacs" or "Show HN: I made a posix compatible kernel" Would lead to some interesting discussions I think if they were active in the comments.
Pretty sure that Andrew Tanenbaum would comment about Microkernels being superior and how monolithic kernels are doomed to fail and belong in the past!
What's fascinating is that under "Research Through Development of Installed Tools", the author describes agile software development, some twenty years before it got that name.
What we decide is not worth while to add, the user can provide for himself. He can just as easily provide his own alternative to a feature if he does not like the way it works in the standard system.
Written before the PC police insisted upon alternating He/She pronouns, awkward constructions such as "He or she", or flatly incorrect usage, i.e. "their" as a singular.
I uploaded it to archive.org: https://archive.org/details/MITAIMemo519 My teacher suspects he got it from a guy that used to work at MIT at the time (can't remember the name). I have not been able to find it anywhere else, even the AI memo archive doesn't have it (http://publications.csail.mit.edu/ai/browse/0500browse.shtml). Anyone able to shed some light?