Lisp

For years I’ve heard about the lisp programming language, and have taken a few half-hearted whacks at it. It seemed the world was mostly divided into two groups over this language.

  1. Those who thought lisp was a horribly cantankerous language with too many parentheses
  2. Those who thought lisp was the end all be all solution of a good deal of computing problems

I had never really sat down to learn it beyond hacking some things lightly in emacs for getting things the way I wanted it to work. If I remember correctly, gimp also uses a lisp-ish syntax in its scripting capabilities.

One of the things that I find interesting is that lisp is considered a functional language as opposed to an imperative language. Sounded like the same pitch the Steinway Piano salesman gave me about how they use a passive stringing technique, where everyone else uses some other way. What really caught my attention about that was the opening of another layer of thought regarding programming languages. I’m a sucker for just about anything that will teach me something new, especially at a deeper level.

Well, I’m sad to report that I still don’t have a full understanding of the key differences between functional and imperative languages, but I am beginning to get an intuitive understanding of it. Thanks to Peter Siebel, who put the full text of his book, "Practical Common Lisp". Although I’m not real far into the book it has been a great hand holder and has helped me start to grasp what a functional language has to offer. It is very powerful. I would say part of what makes it powerful is the ability to continually abstract things out at a continually lower and lower level.

The prime example of this is in chapter 3 where Peter walks you through creating a simple database application for managing CDs. Granted the code created in the chapter isn’t real user-friendly, it isn’t something that you’re going to distribute as-is to your friends. It has all of the makings of such a program though. With lisp it also keeps you from being caught down a deadend like you might be with an imperative language.

A big thanks to Peter and APress for putting this book out. I will continue to reshape my mind about programming thanks to them.

Comments are closed.