Vladimir Sedach

Have Emacs - Will Hack

October 8, 2007

Language features do not matter.

Topic: Lisp

My personal philosophy on programming has lately veered towards the view that programming language features are completely irrelevant. I think they are completely irrelevant only when you have a language with enough meta-/reflection/ self-description facilities to allow you to implement those features yourself. In my opinion, such a language has a quality I like to call "not getting in the way of what you want to do," which I think is the only nice thing to be said about programming, programming languages, and computers in general.

That being said, programming language features sure are convenient. They are most convenient when they have developed as a result of real programmer experience. I think the pinnacle of such "features derived from sweat and tears" (programmers don't often bleed) is Common Lisp. The people that contributed to X3J13 (you can find a list in the HyperSpec: http://www.lispworks.com/documentation/HyperSpec/Body/00_.htm) include some of the best programmers of their time, and collectively represent decades if not centuries of programming experience, drawing on systems like Maclisp, InterLisp and Lisp Machine Lisp and coming from institutions like the MIT AI Lab and Xerox PARC. So I was real glad to find this page by Abhishek Reddy this morning that does a very good job of describing some of the many features that come with Common Lisp. I think it is a pretty good overview for beginners and those interested in Lisp.