If you want the least pain in getting started with a lisp, I recommend PLT Scheme. Its editor, DrScheme, will seem very ordinary and familiar. That's not a win in the long run, but in the short run you can learn how to hack a lisp, Scheme in this case, without simultaneously retraining your hands and eyes to use Emacs. And learning a lisp is what you really want to do, believe me. I was in your shoes not too long ago, and this is what I did.
(And PLT Scheme is great.)
(setq scroll-conservatively 1)
The editor is particularly important when it comes to being productive. I'm inexperienced with Lisp, and I've found a few things inside Visual Studio that I feel particularly reluctant to part with. "Go to Implementation" is one. I just move the mouse over a function call, press alt-G, and it takes me right to where that function is defined. Another is a complete list of defined procedures for the current file.
Does Lisp have an environment that has similar features?
Shawn
Is that the only one?
That's for Common Lisp (CL), which you may or may not want to develop in; I personally frequently choose to write in CL because it has a very large library, and because it has SLIME.
For Scheme, Emacs is also good, but there isn't something analogous to SLIME.
SLIME has go-to-definition of a function as one of its more basic features, along with auto-completion, convenient listings of arguments when you first write down a call to a particular function, and much more.
I have a quick question that I can't justify creating a new thread about. Since you brought up Lisp implementations though...
I was about to choose to write my programs with SBCL, but it looks like the Win32 port isn't yet complete. Since I'm aiming towards using Lisp in games, speed is an issue, and so is running on Windows. Would you or anyone reccomend a dialect of Lisp which is fast and runs under Windows? Even just 1/4th the speed of C would be excellent.
I believe CLISP runs on Windows. I have no idea whether this is at all practical, since I don't use Windows, but maybe you could use a Unix emulator like Cygwin and run SBCL (and your game) in that, invisibly to the user?
Scheme - quack.el (http://www.neilvandyke.org/quack/) Not so powerfull as SLIME.
AFAIK there was a support for scheme (scheme48) in SLIME. I don't know a status of it.
http://puggy.symonds.net/~deep/emacside.html - "Emacs as your IDE" (A quick start summary of core commands)
And if you find inspiration useful:
http://steve-yegge.blogspot.com/2007/02/my-save-excursion.html
http://steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
Try emacs with slime. I think Bill Clementson's Blog has a link to a movie which shows the power of it. I use Visual Studios for my day job. And its poor when compared to emacs+slime. Not only can you goto source code of any function in list by doing Esc-. I really enjoy the fuzzy complete facility. type in a few letters and slime comes up with a likely match for functions you might want to call.
I recently began using emacs + SLIME for writing Lisp and revert back to vim for everything else. I've also tried vim + VIlisp.vim, which sends Lisp code to a running Lisp interpreter. It seemed pretty decent though I don't really have enough experience writing Lisp to really compare.
Anyone else write Lisp in vi?
SLIME is great, but I really miss vim sometimes. Fortunately, Slim-Vim is in the works by the author of VIlisp.vim. Here's a couple comment pages on Lisp with vi/emacs:
Yes, I do all of my text editing in Vim. I <3 Vim.
Debugging without slime is quite difficult however: as everything is available through slime, nobody cares about simplifying access to SBCL debugging features from outside slime. For example, having to prefix every variable access with SB-DEBUG:VAR when in the debug REPL is a real pain, and serves no purpose other than annoying non-slime users.
Regarding SBCL on win32 - it is pretty stable, but is still missing some functionality that SBCL has on other platforms (threads is the big one).
I tried just defining a .lisp filetype in IDEA, but it doesn't work because it treats apostrophes as string delimiters.