So I recently decided to learn lisp.
Most professional programmers will ask me: why lisp? It is barely used outside of academia, and isn't even used within academia that much. It won't get me a job. It's not very practical.
Fortunately, at my age, I don't have to care about the practicality of my interests. :-)
Part of my desire to learn lisp comes from guilt associated with this blog. Lisp is one of the pioneering computer languages. Writing about programming without being familiar with lisp feels a bit like writing about relativity without being familiar with Newtonian physics. Or writing about race relations without being familiar with slavery. How can I claim to be a well-rounded developer with only knowledge of one of the pillars of the field?
In an earlier post, I mentioned finally being able to "get" lisp programming after spending 30 minutes with an on-line tutorial. But I wanted more. So I bought Land of Lisp / Learn to Program in Lisp, One Game at a Time!, by Conrad Barski (cheaper on Amazon, but I wanted the DRM-free PDF). I'm about half-way through it, and am having a ball. Partly for the obvious reason that I really love learning things. But also because this is a good book.
Not perfect -- I suspect that neither the editors nor the early reviewers were people actually learning lisp. Since I am actively trying to become proficient in lisp, I make sure I fully understand every line of code presented. There are some programs where something is presented, but not explained. For example, a type of "vector" is used in one of the programs, but is not mentioned in the text. It required external research to discover that a lisp vector is just a simple (one-dimensional) array.
I'm afraid I also have to complain a bit about the coding style. Meaningful variable names are often not used. Or a term is used to mean subtly different things at different times (like "edges"). The code could benefit from more-careful naming.
However, in spite of that, I absolutely LOVE the premise - teach lisp with real-life programs. I hate examples which just demonstrate syntax and semantics (I'm not sure I can stomach another "towers of hanoi" example). Land of Lisp successfully helps to show *why* you would want to use various constructs, using programs that actually accomplish something meaningful. And I really enjoy the style of Dr. Barski's prose. His sense of humor, and his decision to use games as the basis for his programs, makes the book a joy to read.
I'm not proficient enough to say anything very intelligent about lisp as a language, so I won't just yet. However, I am learning some new ways to look at algorithms. Having multiple points of view will always help you with your designs. It probably won't be worth the effort in any practical or economic sense, but at least it's better than watching NCIS marathons on cable!
Part of my desire to learn lisp comes from guilt associated with this blog. Lisp is one of the pioneering computer languages. Writing about programming without being familiar with lisp feels a bit like writing about relativity without being familiar with Newtonian physics. Or writing about race relations without being familiar with slavery. How can I claim to be a well-rounded developer with only knowledge of one of the pillars of the field?
In an earlier post, I mentioned finally being able to "get" lisp programming after spending 30 minutes with an on-line tutorial. But I wanted more. So I bought Land of Lisp / Learn to Program in Lisp, One Game at a Time!, by Conrad Barski (cheaper on Amazon, but I wanted the DRM-free PDF). I'm about half-way through it, and am having a ball. Partly for the obvious reason that I really love learning things. But also because this is a good book.
Not perfect -- I suspect that neither the editors nor the early reviewers were people actually learning lisp. Since I am actively trying to become proficient in lisp, I make sure I fully understand every line of code presented. There are some programs where something is presented, but not explained. For example, a type of "vector" is used in one of the programs, but is not mentioned in the text. It required external research to discover that a lisp vector is just a simple (one-dimensional) array.
I'm afraid I also have to complain a bit about the coding style. Meaningful variable names are often not used. Or a term is used to mean subtly different things at different times (like "edges"). The code could benefit from more-careful naming.
However, in spite of that, I absolutely LOVE the premise - teach lisp with real-life programs. I hate examples which just demonstrate syntax and semantics (I'm not sure I can stomach another "towers of hanoi" example). Land of Lisp successfully helps to show *why* you would want to use various constructs, using programs that actually accomplish something meaningful. And I really enjoy the style of Dr. Barski's prose. His sense of humor, and his decision to use games as the basis for his programs, makes the book a joy to read.
I'm not proficient enough to say anything very intelligent about lisp as a language, so I won't just yet. However, I am learning some new ways to look at algorithms. Having multiple points of view will always help you with your designs. It probably won't be worth the effort in any practical or economic sense, but at least it's better than watching NCIS marathons on cable!
No comments:
Post a Comment