robert hahn

a darn good web developer

February 08, 2006

Lisp: First Impressions

So, I’m learning Lisp. I’m thinking if you’re reading this because you want to try it out too, you’re probably wondering what you need to get started. Well, some people, presumably from the #lisp IRC channel, got together to put up this quickstart guide. I got as far as

A series of kind suggestions from the helpers of #lisp

Before I started getting a bit uncomfortable. One of those “something’s wrong here, and I’m not quite sure what” kind of feelings. I’m sure you’ll go check it out, but I’m going to give you some spoilers. Let’s start with this one:

Many people say “I don’t use Emacs; can’t I use vi / eclipse / whatever wonky editor?”. The answer is “no”. You can’t easily write Lisp in any editor but an Emacs-like one, and the best option for an Emacs-like editor is Emacs or XEmacs. Using a plain text editor without any runtime connection to your Lisp implementation just because you think you prefer its keybindings is stupid and self-defeating.

Tactful, isn’t it? But then, here’s what they added:

“I’d like to learn Russian but I have no time to memorize this funny alphabet.” - cliini

Um, was that really necessary?

I’ve been building web sites for, gosh, 11 years now, and one of the most valuable lessons I’ve learned was that if you want to create something people will consume, you shouldn’t put any obstacles in the way. People generally won’t like you very much if you do.

So: I want to learn Lisp. I’ll probably need help along the way. Our friends from #lisp, clearly people who want to help, have left us with a Final Thought:

Follow these directions or risk our wrath, or at least unsympathetic attitudes!

Tactful, isn’t it?

Look #lisp guys, whoever you are: this is not the way you help people. This is not the way you endear people to your favourite language. This is precisely the way you make it easy for yourselves to help people. It’s selfish.

I’m going to point you to a story about If you haven’t heard of it, go check it out. If you have heard of it, you might have seen the story about them rewriting it in Python. The original implementation was done in Lisp. Now, read a response to the outcry.

Should I have second thoughts about learning Lisp? I did. I still kinda do. The community that surrounds a tech is a pretty important resource - if it makes new people feel put off because it’s argumentative or elitist, then that tech will never become popular.

But I keep reminding myself that I didn’t choose Lisp because I wanted to learn something that was popular. I just wanted to learn something new. As I said in an earlier post, languages seem to be becoming more Lisp like. Rather than learning each successive more-lispy-than-ever language, I’m gonna skip to the end and at least understand the features where it’s been used the longest. I’m working through the highly regarded Practical Common Lisp. I’ve swallowed the bitter pill that is Emacs/Slime (I’m a vim guy myself), and actually, Emacs isn’t so bad - it reminds me of BBEdit with different key mappings. I’ll never be a master at it – the Vim aesthetic is too compelling for me – but maybe I can learn enough about what makes Slime so special that maybe I could try writing a Vim plugin that’ll do the same things. I mean, why should I perpetuate the problem, eh?

But I don’t really know if I’ll be asking the friendly guys at #lisp for any help. I don’t want to risk their wrath.

decorative image of trees

Copyright © 2009
Robert Hahn.
All Rights Reserved unless otherwise indicated.