Xref: utzoo alt.folklore.computers:3555 comp.emacs:8384 gnu.misc.discuss:1055 Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!umich!samsung!think!think.com From: rlk@think.com (Robert Krawitz) Newsgroups: alt.folklore.computers,comp.emacs,gnu.misc.discuss Subject: Re: Why Lisp? (Was: Re: Remember how great editors used to be?) Keywords: elisp, emacs, lisp Message-ID: <36943@think.Think.COM> Date: 30 May 90 22:31:28 GMT References: <7572@tekgvs.LABS.TEK.COM> <13829@csli.Stanford.EDU> <12602@netcom.UUCP> <13831@csli.Stanford.EDU> <1990May30.052145.15392@agate.berkeley.edu> Sender: news@Think.COM Reply-To: rlk@think.com (Robert Krawitz) Followup-To: alt.folklore.computers Organization: Thinking Machines Corp., Cambridge MA Lines: 38 In-reply-to: dankg@lightning.Berkeley.EDU (Dan KoGai) In article <1990May30.052145.15392@agate.berkeley.edu>, dankg@lightning (Dan KoGai) writes: ] Now I have a question: Why did Richard Stallman chose lisp out of ]others? Why wasn't it C or anything? A lot of script|macros on other ]applications are more C|pascal-like language. Shell script is so, tmw is so, ]and a lot more. Most likely because he was most familiar with Lisp. Another very good reason is that lisp supports dynamic memory allocation and lists very nicely, much better than C/pascal (in C you need to do all the list manipulation yourself). Shell scripts are powerful, but it's not a complete language without all the Unix tools (sed, awk, grep, etc.). Lists are useful more often than you might expect for an editor; rmail would be a real headache to implement without them. ] I found elisp very powerful and elisp alone is complete computer ]language. But I personally don't like LISP--I hate bunch of ()'s. And it ]does gabage collection like hell when large elisp program is invoked, such as ]gnus. It could've been tighter if external commands are written in C and ]the editor loads the objects (can it be done without linking? Macintosh ]can just by loading it as resource file. Or maybe invoke it as different ]session but it would be not a good idea). It is possible to link in executable code on at least some architectures; Lucid lisp supports a "foreign function" interface that lets you link in objects and even libraries at run time. On the other hand, it's messy too. Garbage collection's the price you pay for not having to do memory allocation yourself. Having to do memory allocation in an emacs script wouldn't be much fun. BTW, many of the core functions are in fact written in C (something like 500, I recall). It's surprising how many functions would not be faster in C, though. -- ames >>>>>>>>> | Robert Krawitz 245 First St. bloom-beacon > |think!rlk (postmaster) Cambridge, MA 02142 harvard >>>>>> . Thinking Machines Corp. (617)876-1111