Wednesday, January 12, 2005
Well, it has been a full year since I took the plunge and decided to learn Common Lisp. While I had flirted with Common Lisp and Scheme back in 1988 and 1990, after reading some of Paul Graham's writings and going over Pascal Costanza's Highly Opinionated Guide to Lisp in 2003, I decided that it was time to go back and learn a Lisp dialect for good. This posting to comp.lang.scheme shows my initial struggle to decided whether Scheme or Common Lisp was the right dialect. I really do have a soft spot in my heart for Scheme. It's just so nice and simple. But as Nikodemus Siivola's email signature reads,
Schemer: "Buddha is small, clean, and serious."
Lispnik: "Buddha is big, has hairy armpits, and laughs."
I decided that while Scheme was lean and mean, Common Lisp showed the signs of a more industrial-strength, battle-hardened language. Does CL have rough spots where Scheme has clean edges? Yes, indeed. But it also shows some foresight for how to build a language that will work on a larger project and scale further than will Scheme. Is CL perfect? Nope, there are many things that I would improve if a quick decision were all it took. But CL works well. There are great implementations available for many platforms, both commercial and freeware, and those implementations have gotten better and better through all of 2004.
How's the progress after one year? Well, I don't get to hack as much as I'd like. But when I do, it has been consistently enjoyable. Frankly, I can't believe I never committed myself to this 40+ year old language before this. It isn't like it wasn't available all that time, and over the years I seem to have learned everything around it (BASIC, assembly language, FORTH, C, Fortran, Pascal, C++, Java, etc.).
If you're a newbie reading this and thinking about taking the plunge, all I can say is just do it. You will never stop thanking yourself. Yes, I know the parentheses are intimidating. Use it for a week and watch them disappear. Even John McCarthy thought they were a problem. You aren't the first.
"One can even conjecture that Lisp owes its survival specifically to the fact that its programs are lists, which everyone, including me, has regarded as a disadvantage."
- John McCarthy, "Early History of Lisp"
And, Mr. Newbie, when you decide to take the plunge, and have played with Lisp for a little while, tell us about your own personal Road to Lisp. We're happy to have you.
Links to this post: