[go: up one dir, main page]

|
|
Log in / Subscribe / Register

Emacs & the birth of the GPL (The H)

The H delves into the history of emacs and the GPL. "Emacs has become emblematic of Lisp, Unix and free software, but was originally written by Richard Stallman, with contributions from Guy Steele, Dave Moon, Richard Greenblatt and Charles Frankston, as an extension to the TECO editor on MIT's AI Lab Incompatible Timesharing System (ITS) which ran on PDP-6 and PDP-10 machines, somewhere around 1974."

to post comments

Emacs & the birth of the GPL (The H)

Posted Apr 5, 2010 21:46 UTC (Mon) by coriordan (guest, #7544) [Link] (13 responses)

It's a great story, and my favourite piece of software.

When I started using emacs in 2002, I figured I'd slowly learn Lisp, but that never happened. The longest lisp script I've written is 283 lines, and most months I write no Lisp at all. I use the macro feature for automation. The big win is that, while I used to be able to do great things in vi by constructing long commands, in emacs there's already a function to do it. And it's really well documented, and configurable, and it can be interactive or non-interactive, and I could copy the code behind the command and make my modified version if I really wanted.

I think the transition, from feeling at home in vi to feeling at home in emacs, took me about a month. The change involves frustration, but it's well worth it.

Using vi, I felt clever when I got my work done. Using emacs, I usually get my work done without needing any chicanery that makes one feel clever.

The manual is really thorough and well written. Finding new commands is easy with the tab completion when you do Alt-x. Or you can use the 'apropos' command: Hold Alt, press 'x'. Let go. Type 'apropos', hit return - or type 'apr' and TAB, then return. At the prompt, type a string or regex, and emacs will display what functions it has that match. And if you invoke a command by name, and there's a key binding for that command, emacs tells you afterward "You could have done that with C-m".

I write all my LWN comments, and Wikipedia contributions etc. in emacs using the "It's all text" extension for IceCat/Iceweasel/Firefox.

There was nothing new to me in this telling of the story. It seems to be based on existing material, but I guess it's a good summary.

Emacs & the birth of the GPL (The H)

Posted Apr 5, 2010 23:13 UTC (Mon) by nix (subscriber, #2304) [Link]

When I started using emacs in 2002, I figured I'd slowly learn Lisp, but that never happened.
That just goes to show how different Emacs can be to different people. I started using it in 1994 (under EPM), then switched to XEmacs under Linux. I learnt Lisp to customize Emacs, and even the archaic Lisp in Emacs blew me away and, as good languages do, changed the way I think about programming. I live in XEmacs, but I never use the macro feature: it's faster for me to mock up a bit of Lisp to do whatever-it-is.

Emacs & the birth of the GPL (The H)

Posted Apr 6, 2010 0:24 UTC (Tue) by neilbrown (subscriber, #359) [Link] (5 responses)

Thanks for the "It's all text" pointer. I set up "mozex" some time ago
to do the same thing, but it stopped working at some upgrade.

I love emacs (and I liked TECO once - a long time ago), but the bit
that annoys me is the lack of an MVC distinction.
A 'buffer' must contain both the content to be displayed and the rules
for how to display that content. So code for manipulating a buffer,
and the code for describing how to display it get all intertwined.

This makes it really hard to edit a very large structured document.
e.g. for a mail box with thousands of mail items it takes an
appreciable amount of time to generate a buffer to display the
summary of these messages. If instead the display could be generated
on demand you wouldn't need a separate buffer for the summary and you
would only need to generate the bit that is displayed so it would be
easier to program and more responsive to use.

So as an application development platform, it is a pain. But as an
editor it is great!

Emacs & the birth of the GPL (The H)

Posted Apr 6, 2010 8:38 UTC (Tue) by nix (subscriber, #2304) [Link] (4 responses)

The lack of an MVC distinction, the lack of multithreading, the age of the Lisp dialect... the reasons to rewrite Emacs keep on growing, but the problem of maintaining compatibility with existing Lisp is a high bar. I wonder if the best approach is to rewrite the core from scratch, using a better Lisp (Scheme or CL, your pick), and then write an elisp bytecode interpreter in that better Lisp. (For full marks, write an elisp interpreter as well: if you've got the bytecode semantics right the textual interpreter should be quite easy).

The hard part is preventing changes in semantics from things like multithreading from breaking old-elisp packages... but this is a subject of perennial discussion on emacs lists everywhere, which never quite seems to get off the ground.

rebasing emacs

Posted Apr 6, 2010 10:55 UTC (Tue) by wingo (guest, #26929) [Link] (1 responses)

Actually, Guile is working on just this: compiling Elisp to Guile's VM, maintaining back compatibility while also allowing Scheme, providing new features, and new languages too. I think we have a good multithreading story as well.

See http://wingolog.org/archives/2010/04/02/recent-developmen... if you have time.

rebasing emacs

Posted Apr 6, 2010 15:58 UTC (Tue) by Trelane (subscriber, #56877) [Link]

cool, thanks! I loves my emacs. :)

Emacs & the birth of the GPL (The H)

Posted Apr 6, 2010 23:11 UTC (Tue) by cortana (subscriber, #24596) [Link] (1 responses)

There's also Climacs: <http://common-lisp.net/project/climacs/>.

Emacs & the birth of the GPL (The H)

Posted Apr 7, 2010 17:10 UTC (Wed) by nix (subscriber, #2304) [Link]

I note the foreign-language recursive acronym sequence fairies have been at the editor substrate climacs uses. Remember the old editors Eine (Eine Is Not Emacs) and Zwei (Zwei Was Eine Initially)? Well, climacs is built on Drei (Drei Replaces Eine's Inheritor)...

Emacs & the birth of the GPL (The H)

Posted Apr 7, 2010 12:04 UTC (Wed) by NAR (subscriber, #1313) [Link] (2 responses)

The manual is really thorough and well written.

It might sound stupid, but my problem was that the emacs manual was mentioning some "Meta" key but I've yet to see a keyboard with a Meta key... Now I know that by mentioning "Meta" they've meant "Alt", but it's too late, I'm already addicted to vim.

Emacs & the birth of the GPL (The H)

Posted Apr 7, 2010 15:14 UTC (Wed) by jordanb (guest, #45668) [Link]

I got into emacs through the C-h t tutorial. It's an excellent introduction and explains the Meta/Alt situation

Emacs & the birth of the GPL (The H)

Posted Apr 9, 2010 13:59 UTC (Fri) by jschrod (subscriber, #1646) [Link]

That depends on the keyboard... My Meta key is really a separate key between Alt and the Space bar. I use the Alt key for Window manager functions; Meta is applications.

Emacs & the birth of the GPL (The H)

Posted Apr 7, 2010 15:44 UTC (Wed) by marcH (subscriber, #57642) [Link]

> When I started using emacs in 2002, I figured I'd slowly learn Lisp, but that never happened

Maybe because of S-expressions?

http://www.dwheeler.com/readable/readable-s-expressions.html

Emacs & the birth of the GPL (The H)

Posted Apr 10, 2010 2:35 UTC (Sat) by bleakgadfly (guest, #64985) [Link] (1 responses)

Do you use the emacs-gtk for editing LWN.net with It's all text? It doesn't seem to work very well, atleast for me, to open emacs in terminal for editing with It's all text. When I hit the "edit" button nothing happens at all. I have tried both "emacs", "emacs23" and "emacs23-nox" binaries in /usr/bin.

Emacs & the birth of the GPL (The H)

Posted Apr 11, 2010 5:49 UTC (Sun) by neilbrown (subscriber, #359) [Link]

I use "emacs-client" having run M-x start-server in my emacs instance.

My only complaint is that the file name chosen by "it's all text" is not easily matched by a regexp, so I cannot use special-display-regexps to
tell emacs to always pop up 'it's all text" buffers in a new frame...

Emacs & the birth of the GPL (The H)

Posted Apr 7, 2010 15:31 UTC (Wed) by bleakgadfly (guest, #64985) [Link] (2 responses)

Awesome article! I really just started to use Emacs and are amazed about all the ways it can be used, and this kind of article fits well into my newbie mind. I must point (obviously) out that I probably don't know even 1/5 of the commands and functions available, but those I know I've had great joy of using.

Starting with Emacs also gave me a little kick to try out programming in Lisp, but I don't really know what to code so I haven't tried it out good enough. Only thing I have coded was in Elisp and was a couple of functions with keybindings to get ÆØÅ while editing on my YeeLoong.

Emacs & the birth of the GPL (The H)

Posted Apr 7, 2010 17:12 UTC (Wed) by nix (subscriber, #2304) [Link]

I probably don't know even 1/5 of the commands and functions available
If you include the things in Lisp (which of course you must or you have to ignore unimportant functions like 'newline'), this can be said of any Emacs user, even those of us who've been using it for decades. There's always more to learn!

Emacs & the birth of the GPL (The H)

Posted Apr 7, 2010 22:43 UTC (Wed) by coriordan (guest, #7544) [Link]

FWIW, here's something I wrote about setting Emacs up for writing non-ASCII characters:

http://blogs.fsfe.org/ciaran/?p=147


Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds