While at the bookstore tonight on a date, I ran across Paul Graham’s ANSI Common Lisp and decided it was time to go back to Lisp for a bit; I haven’t really explored the language since my days in college, when we spent a week on it as part of a "Programming Languages I" class. (For the record, I got a B- in the class, but mostly because half the class was C++; the Lisp lab I got a 50 on because I just could NOT wrap my head around all that recursion and list processing at the time. I’ve never been back since.)
The interesting thing I find, on second approach, is that Lisp is a fairly approachable language, assuming you’ve got Graham’s book next to you to do it. He’s done a good job (up through Chapter 2, anyway) of highlighting the key parts of Lisp–the fact that it’s a very simple language in terms of its basic syntax and structure–without bogging you down too much in rhetoric and "clearly Lisp is the best of any language on the planet" propaganda. (Well, there is a bit of that last, but that’s to be expected from Graham, particularly if you’ve read his "Hackers and Painters". It’s not too unbearable, at least not thus far.) My next task is to find a Common Lisp implementation I can stick into a VPC/VMW image and start playing around with. Maybe I’ll even think about giving a talk on it and how Lisp seems to have influenced other languages, a la Ruby.
(Yes, I got the book while on a date–what, you’ve never been on a date with a geek before? Sheesh!)