I, Thomas Munro, do solemnly offer these my responses to The Road to Lisp Survey:
When did you first try Lisp seriously, and which Lisp family member was it?
Scheme in 2005. I had encountered Lisp over a decade earlier, in various books about genetic programming, strange loops and other topics, and in a first year computer science course back in 1993, but I didn't like it because I was young and foolish.
What led you to try Lisp?
A few years ago now, highly productive people were using Perl for throwaway scripts, prototypes, or even production systems, but I just couldn't stomach it. After standing on the sidelines of the turn-of-the-century language bubble for a while, I adopted Python, and then entered a protracted and indecisive phase of trying out lots of other dynamic languages old and new (Pike, Ruby, Scheme, TCL, Javascript, Groovy) under the influence of friends, workmates, blogs and well known essayists. I started innocently using Guile Scheme as an extension language, and then before I knew what had hit me I had churned through The Little Schemer, SICP, the Dybvig book and various others, and turned into an enthusiastic amateur Schemer.
What other languages have you been using most?
I've been a working C and later Java programmer in the software industry since the mid 90s, and more recently a C++ programmer in the finance industry. I actually rather like C++, some days - it's a different universe, for sure, and a bit of an uphill battle, but there are some very talented people doing very interesting things with it. Lambda functions were voted into the C++ standard recently - that will encourage a more functional style of programming. Python remains very useful to me - especially if I have to share scripts with other commercial programmers. I dabble in pre-newbie hello world-level Erlang and Haskell.
How far have you gotten in your study of Lisp?
I am but a fledgling in first flight. I've come a long way from my starting point, in terms of thinking about recursion, non-destructive algorithms and higher order functions, but I have a lot more to learn about macros, continuations, the true meaning of evaluation, and other fun stuff. I have a partially working half-baked Lisp-1 interpreter of my own which runs on Z80 machines.
What do you think of Lisp so far?
The Lisp way is beautiful, its history, personalities and culture are fascinating, and its jungle of implementations is rich and varied. I currently favour Scheme over Common Lisp because its conventions are free of incidental noise, and I like the pure functional programming style that it encourages (perhaps because my other life consists of destroying stuff with C++). In stark contrast I also enjoy hacking in Emacs Lisp, whose ancient quirks I'm beginning to appreciate from an archaeological point of view (for much the same reasons that I enjoyed reading the LISP 1.5 manual), so who knows, maybe I'll eventually come around to Common Lisp.
RtL Paul Graham | RtL Language Curiosity | RtL Word of Mouth | RtL Douglas Hofstadter | RtL AI | RtL Eric Raymond