More Lisp fandom

From Stephen Ramsay
My experience learning Lisp and coding a few serious programs in it was deeply profound. Afterward, most of the other languages I had been using regularly seemed silly and inane. I found myself saying things like, “I’ve spent an hour on this method, and I know I could knock it off in three lines of perfectly elegant Lisp!” And what I was lacking in those languages was a whole host of programming constructs I had either never heard of or only dimly understood before learning Lisp. Passing a function into a function? Why would you ever want to do that! You wouldn’t. Unless you got seriously into Lisp, in which case you find yourself (a) doing it all the time and (b) writing much more elegant, expressive code as a result. Same goes for closures, continuations, anonymous functions, and macros.


I’ve spent the last week or so writing in Ruby. It’s a wonderful language. It’s a joy to program in it, and I’m almost always trying to find ways to overcome the various reasons not to (”that’s not the language of the project,” “there aren’t enough libraries,” etc.). I know it like the back of my hand, and I teach the language every year. It even has a number of Lispy constructs (like closures, continuations, and anonymous functions). But it ain’t no Lisp.


But last week, I was writing proof-of-concept code. There was no one telling me what language to use, no “audience” for the code, and there were good, serviceable libraries available for Common Lisp, Ruby, Java, Python and Perl. I went with Ruby.

The question, of course, is why not write it in The Greatest Language Ever?

Well, that’s a separate rant, which I’ll save for another post.

Intriguing.... is Stephen in theatre or films? The suspense is building nicely, but timing is everything!

powered by performancing firefox

No comments: