From the moment I first wrote Scheme a few years ago, I’ve been enamored with it. It’s a strange affection, however, and very similar to my love of playing bagpipes.
I deeply enjoy playing Uilleann pipes, which are Irish in origin and meant to be played indoors. Despite being a decent piper, and having put many thousands of hours of practice, for me there has always been something very unlike work in piping. The strange and awkward sounds emitted by the pipes seem to be intrinsically bound to play. It is an instrument of baroque simplicity that offers a staggering potential for complexity.
If you’ve never heard Uilleann pipes before, here’s Gay McKeon doing a great bit of work on the chanter and regulators:
What I find fascinating about Lisp (and Scheme’s flavor of Lisp, in particular) is the same thing I find to be true of Uilleann pipes:
It is an instrument of baroque simplicity that offers a staggering potential for complexity.
Just as with piping, Scheme feels inexorably connected to play. And yet, both are serious tools with serious users. Lisp’s elegance and expressiveness are often bewildering. This powerful mixture of awkwardness and beauty is an uncommon occurrence in modern music and modern programming. Perhaps a connection between Lisp, bagpipes, and play exists because “awkward beauty” is at the very heart of play itself.