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