When did you first try Lisp seriously, and which Lisp family
member was it?
I first seriously tried Scheme in mid 2003, when I spotted a link to the Structure and Interpretation of Computer Programming videos on comp.lang.python. Right before my feeble C++/Python eyes, Hal Abelson and Gerry Sussman performed nothing short of black magic: defining program evaluation models, creating data out of thin air, writing interpreters and compilers in their own source language, and designing a handful of domain specific programming languages. I became addicted to Lisp virtually overnight.
What led you to try Lisp?
I have always been interested in computer game development, and I taught myself everything the gurus said I needed to know: C++, linear algebra, rigid body dynamics, and so forth.
At some point the verbosity of C++ was beginning to dawn on me, but surely all these gurus couldn't be wrong? There was this one guy who posted something about Lisp on one of the game development forums I visited, and I checked it out despite the warnings of the gurus. Within a week I came back screaming to C++. And the gurus forgave me my misstep and my sacrilegious complaints were even taken care off: C++ template metaprogramming and preprocessor metaprogramming had been discovered. My faith in the gurus was restored, and life was good again, for now I could let the compiler write the code I didn't want to write.
But at some point I just felt that it took far too much of my (quite limited) brain capacity to do all these cool things. The greater gurus of the C++ standard committee eased the pain a little by creating defacto standard libraries to simplify template metaprogramming and preprocessor metaprogramming, but I felt that even this incredible feat was not enough.
Instead of turning to the gurus, I decided to explore the world on my own. I found Python and for 6 months I had a lot of fun with it. It was easy to learn, powerful, and it interfaced very well with C++. At some point I learned that it was even possible to write fairly decent games in pure Python. But somehow I still had the nagging feeling that something was still missing.
When I read about the SICP videos on comp.lang.python and started watching them, I knew that my quest was over, and I said farewell to both C++, Python, and even the game development scene. I still keep tabs on what's happening in those communities, but I have never been tempted to return.
What other languages have you been using most?
Apart from Common Lisp, C++ is the only language I've used extensively. Here's a somewhat more complete listing of languages I have used for more than 15 minutes, in roughly chronological order: MS-DOS batch, QBasic, SuperLogo voor Kinderen, QuakeC, C++, Python, Borland Delphi, Python, Smalltalk, Scheme, Haskell, Prolog, Common Lisp, Erlang, Java, Ruby, Forth, Oz. (The italic ones I had to use for university assignments.)
How far have you gotten in your study of Lisp?
I studied R5RS Scheme, some implementation specific extensions, and a lot of SRFIs. The one thing I could never get was how to make advanced use of syntax-rules or syntax-case. At some point I decided to give Common Lisp a try and after reading On Lisp I have never turned back. My knowledge of the Common Lisp HyperSpec is now fairly decent, but I'm only just beginning to scratch the surface of understanding the full implications of that knowledge.
What do you think of Lisp so far?
Lisp turned my life around. Before Lisp, I thought I could program, and that I wanted to hack C++ code for 60 to 80 hours a week in a cubicle at a big game development studio. Lisp showed me that I didn't have a clue what programming was. For the first time, my thoughts weren't being restricted to a strict regime, and I had no idea what to do with all this freedom.
I went to see what others had done with this freedom, and I came across the most remarkable things, including ANSI Common Lisp, the most impressive piece of engineering I've ever seen. Even if macros, CLOS, the reader, the printer, symbols, proper arithmetic, LOOP, and condition restarts didn't convince me of it, they also hate Lisp at my university, which means it must be good. ;)