When did you first try Lisp seriously, and which Lisp family member was it?
I started learning Scheme in early 2001 for a programming languages class at Roosevelt University. (I'm currently a CS graduate student at Indiana University.)
What led you to try Lisp?
I was highly intrigued by Scheme but also found it to be a very impractical language, so I downloaded and installed clisp. Over the summer I started to do a research assistantship for a professor of mine, whose code was written in Common Lisp. Unfortunately, it was not the best codebase in the world, containing a hacked up version of Schank's Memory Organization Packets code; however, I could easily separate the atrocities of the code from the language. I picked up a copy of CLtL2 and started to learn the language, mostly by reading entire chapters of CLtL2.
Where did your road originate?
I was never unhappy before, and I think it wouldn't be accurate to say that I was somehow searching for a better language. I did a lot of programming in C, and once you're sufficiently good at it, C is not a bad language to write in - just a horrible waste of programmer time. I did know that perl, python, PHP, etc. all rubbed me the wrong way. But it's a good thing that my exposure to lisp was concurrent with my first exposure into AI research, because only Lisp offers the tools to make your codebase grow and adapt to the results of your research.
How far have you gotten in your study of Lisp?
It took me probably a solid two years before I became "good" at Common Lisp; even today there are features (like AMOP) which I pretty much ignore. However, I have a good knowledge of most of the spec, and can probably tell you what any given symbol out of the spec is. Today I run SBCL on OS X, and randomly work on runtime support issues for it. Dan Friedman's graduate programming languages class is giving me a good opportunity to see the extent of the differences between the Scheme and CL communities today.
What do you think of Lisp so far?
I do all of my programming in lisp; I've probably forgotten all the Perl I used to know. (If only I could forget Java next...). In fact ever since I started using lisp I essentially moved to using it for all of my code. I try to serve as a CL evangelist, but a highly pragmatic one. It strikes me that the CL community is actually highly pragmatic, but in a way that insists on finding the right solution, because getting it right the first time really is the most pragmatic approach.
As time goes on I keep an active interest in other programming languages, but I find it hard to get excited about any of their "new" features, as most of these are just reimplementations of bits and pieces of Common Lisp. Where they're going, we've already been, and that's a point that needs to be conveyed loudly and clearly to people who are interested in keeping current in their knowledge of programming paradigms. In particular I'd love to see Lisp get more of a foothold in web design, because it really is quite beautiful to have your web page served from a persistent process that you can redefine bits and pieces of at runtime. The tools to make this easy are now becoming mature, and so at some point I am likely going to start a cirCLe/OS X project to make this a reality under OS X.
(As of right now I'm dabbling in Forth too; where's the Road to Forth survey?)
Switch Date 2001
RtL SICP | RtL Formal Education | RtL AI