Gosling Emacs
Original author(s) | James Gosling |
---|---|
Developer(s) | UniPress[disambiguation needed] |
Initial release | 1981 |
Written in | C |
Operating system | Unix, VMS |
Type | Text editor |
Gosling Emacs (often shortened to "Gosmacs" or "gmacs") is a discontinued Emacs implementation written in 1981 by James Gosling in C.[1]
Gosling initially allowed Gosling Emacs to be redistributed with no formal restrictions, as required by the "Emacs commune" since the 1970s,[2] but later sold it to UniPress[disambiguation needed]. The disputes with UniPress inspired the creation of the first formal license for Emacs, which later became the GPL, as Congress had introduced copyright for software in 1980.[3]
Features
Gosling Emacs was especially noteworthy because of the effective redisplay code,[4] which used a dynamic programming technique to solve the classical string-to-string correction problem. The algorithm was quite sophisticated; that section of the source was headed by a skull-and-crossbones in ASCII art,[5] warning any would-be improver that even if they thought they understood how the display code worked, they probably did not.[6]
Distribution
Since Gosling had permitted its unrestricted redistribution, Richard Stallman used some Gosling Emacs code in the initial version of GNU Emacs.[7] Among other things, he rewrote part of the Gosling code headed by the skull-and-crossbones comment and made it "...shorter, faster, clearer and more flexible."[6]
In 1983 UniPress began selling Gosling Emacs on Unix for $395 and on VMS for $2,500, marketing it as "EMACS–multi-window text editor (Gosling version)".[8]
Controversially, Unipress asked Stallman to stop distributing his version of Emacs for Unix.[9] UniPress never took legal action against Stallman or his nascent Free Software Foundation,[citation needed] believing "hobbyists and academics could never produce an Emacs that could compete" with their product.[citation needed] All Gosling Emacs code was removed from GNU Emacs by version 16.56 (July 1985),[10] with the possible exception of a few particularly involved sections of the display code.[citation needed] The latest versions of GNU Emacs (since August 2004) do not feature the skull-and-crossbones warning.[citation needed]
Extension language
Its extension language, Mocklisp, has a syntax that appears similar to Lisp, but Mocklisp does not have lists or any other structured datatypes. The Mocklisp interpreter, built by Gosling and a collaborator, inspired the interpreter used in GNU Emacs.[9]
References
- ^ Stallman, Richard (28 October 2002), My Lisp Experiences and the Development of GNU Emacs
- ^ Sam Williams. "6. The Emacs Commune". Free as in freedom. ISBN 0-596-00287-4.
- ^ Sam Williams. "9. The GNU General Public License". Free as in freedom. ISBN 0-596-00287-4.
- ^ Gosling, James (June 1981), A Redisplay Algorithm, Proceedings of the ACM SIGPLAN Symposium on Text Manipulation
- ^ http://donhopkins.com/home/archive/emacs/skull-and-crossbones.txt
- ^ a b Stallman, Richard (7 January 2013), "samzenpus" (ed.), Richard Stallman Answers Your Questions, Slashdot,
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.
- ^ Oral History of James Gosling, part 1 of 2, retrieved 14 October 2019
- ^ "Unix Spoken Here / and MS-DOS, and VMS too!". BYTE (advertisement). December 1983. p. 334. Retrieved 8 March 2016.
- ^ a b Sam Williams. "7. A Stark Moral Choice". Free as in freedom. ISBN 0-596-00287-4.
According to the developer, Gosling, while a PhD student at Carnegie Mellon, had assured early collaborators that their work would remain accessible. When UniPress caught wind of Stallman's project, however, the company threatened to enforce the copyright.
- ^ "Emacs timeline".
- Christopher Kelty, "EMACS, grep, and UNIX: authorship, invention and translation in software", https://web.archive.org/web/20110728022656/http://www.burlingtontelecom.net/~ashawley/gnu/emacs/ConText-Kelty.pdf