Subject: Re: Getting Started in Lisp.
From: rpw3@rpw3.org (Rob Warnock)
Date: Tue, 02 Jan 2007 03:57:20 -0600
Newsgroups: comp.lang.lisp
Message-ID: <uPydnXl7psQdsQfYnZ2dnUVZ_uiknZ2d@speakeasy.net>
Zach Beane <xach@xach.com> wrote [re-ordering slightly]:
+---------------
| Some people don't bother with tight editor integration. I used to
| think people like that were crazy, but Rob Warnock seems to get a
| lot of interesting work done that way. :)
+---------------

Since I use "vi", I don't get the hyper-tight editor integration
of Emacs+SLIME, but I do tend to develop with both an editor ("vi")
window and a REPL (usually to "CMUCL") window open[1], using either
X Windows mouse-based copy & paste to update changes to single functions
from the editor to the REPL, or for bigger changes writing the file out
and then executing a customized (REDO) function in the REPL [REDO often
just does an (ASDF:OPERATE 'ASDF:LOAD-OP system)]. Personally, I find
that *much* more time is spent on thinking & editing & testing than on
any "editor integration" issues. But YMMV.

+---------------
| In Lisp, I usually start by opening a file, adding and evaluating a
| defpackage form and an in-package form, and then writing functions. I
| compile and run individual functions, not the contents of the entire
| file, during development.
+---------------

Ditto, except the evaluation of small bits gets done by copy&pasting
forms from the editor to the REPL, as noted above.

+---------------
| I find it's more of an edit-compile-run cycle in Lisp, again mostly
| at the function level.
+---------------

Ditto.

+---------------
| My editor is connected to my Lisp, and there's a keystroke to send
| the function definition to Lisp for compilation.
+---------------

With X Windows, that's a two stroke mouse gesture [copy, paste]
rather than a chorded keystroke, but the workflow is the same.

+---------------
| Then I switch to the repl and test out the new function
| to make sure it returns the expected values for some input,
| or how it works together with existing functions.
+---------------

Ditto.

+---------------
| I don't always save the file after making edits, either...
+---------------

Ditto. [Though as noted above, for large changes I *do* save
the file out and then (REDO)...]

+---------------
| ...since the code is sent directly from the editor's in-memory
| buffer to the Lisp process.
+---------------

Different here, of course.

+---------------
| You can get this level of editor integration with all commercial
| CL environments and, with emacs and slime, virtually all free CL
| environments too.
+---------------

And that's great -- I have no criticisms of that at all, if one
can use it. [I find that I can't, for a combination of ergo issues
and long habits doing it otherwise.]  I just want people to know
that *not* having a "Lisp IDE" is no excuse for not being productive
with Lisp anyway.


-Rob

[1] If developing a web app, add to this a web browser window, and
    the REPL window is really the REPL in the Lisp-based persistent
    application server. And sometimes one more small window with a
    "tail -f" running on the Apache error log file.

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607