or learn more

(take 7 (david-nolen))

Jul 19, 2010

David Nolen is the lead developer of the ShiftSpace project and is a Clojure / Javascript / Squeak / Haskell / C / Objective-C developer who recently made waves with his series of posts comparing node.js and the Aleph library. David fights the good fight on Hacker News and provides the world with source code beauty1 on Github under his alter ego Swannodette.

(take… is an on-going series of micro-interviews focused on interesting Clojurians.

What led you to Clojure?

I never went to school2 for computer science and my first degree is in film – focusing on experimental practice. I got interested in utilizing computers for non-utilitarian purposes so I studied New Media at New York University and got back into programming. Right before I started my second degree I read the Structure and Interpretation of Computer Programs. At the time I thought that Object Oriented programming was the coolest. I was shocked to find that not only could you easily design an OO system in Scheme, but, even more incredibly, you could write a working Scheme evaluator in Scheme with a very small amount of code. That sealed my appreciation of Lisp.

In grad school I did a lot of Java, C, C++, and Objective-C programming. To say I didn’t enjoy it would be a lie. But I was also interested in the web and in particular, Google Maps. For me that was a big shock because they had written the frontend all in JavaScript – that “toy language”.

I got hired in 2005 by Princeton University to work on a U.S. Census project for the Phildelphia-New Jersey-New York metropolitan area. I wrote a lot of JavaScript. The things that you could do easily with JavaScript shocked me and recalled my experience with Scheme.

I still write a lot of JavaScript, but I like hacking on creative personal projects that involve graphics and audio and JavaScript is just too slow. So is Python and Ruby. But I’d become too accustomed to the flexibility and expressive power of JavaScript to want to go back to Java, C, or C++.

One day, bored, I was looking at Alioth benchmarks and was surprised that Common Lisp performed so well. So I spent a summer playing around with SBCL and understanding CL style macros. Suffice to say my mind was blown.

But I found CL to be just as complicated as C++ if not more so. JavaScript and C had both instilled in me an appreciation for minimalist languages. By chance I stumbled across Clojure – I read over the website and watched the amazing talks by Rich Hickey3. I decided to give it a shot and it’s been my personal language of choice since.

Can you share your favorite code snippet?

Snippets are like puzzle pieces. Alone they intriguing but ultimately useless.

Does Bruce Almighty take place in the same universe as Evan Almighty?

No idea.

Is programming an art?

If anyone says something is an art it’s already too late – art is not a thing, it’s a discussion. That perspective is good enough for Lawrence Weiner – a well known conceptual artist, and good enough for me. Anybody that says otherwise is either willfully ignorant or invested in the snoozy power politics of high art culture.

Art and language are the original open source as far as I’m concerned (all the negative connotations that this analogy might insinuate do apply).

To address the question more directly, I do think most programming belongs to craft. You could say that about most forms of drawing. That is, only a very few number of people actually want to make Art with computers. Most people are trying to pay the bills, feed the kids, and have an all around good time from the fruit of their hacking labors.

I’ve often seen you posting in favor of Clojure in Hacker News. How would you classify the general view of Clojure there?

Hacker News is Lisp and language enthusiast friendly. But I think the number of HN readers actually using Lisp are a distinct minority. At the same time, Clojure is now on the radar for a lot of them and that is a good thing. And I think if Lisp ever had a chance at the mainstream, Clojure is it.

However, I think Clojure’s success on HN is largely predicated on it’s applicability to building websites and webservices. So as the body of literature on using Clojure for web development grows, I think we’ll see more of the HN readership actually trying it out for real projects and I have a sneaking suspicion they’ll even enjoy it.

How would you describe the state of Clojure in NY?

A small, enthusiastic community that has a lot of room to grow. The more adventurous hackers from the Ruby, JavaScript, Java, Python, Scala communities come to the meetups. The next NYC Clojure Meetup will be at Google which is exciting for the obvious reasons.

Which of Criterion Collection box art cover do you find most pleasing? L@@k here

That’s like being in a candy store. I can’t pick just one.4


  1. I am personally enamored with his Clojure continuations library

  2. My wife and I have been putting aside money for our kids’ college, but as time passes I beging to wonder if the face of hugher education will look completely different in 15 years. I hope so. 

  3. Those videos are a (the?) primary source of Clojure enthusiasm — especialy in its first 2 years. They are a brilliant marketting vehicle for the language and other language designers would be smart to follow a similar model. 

  4. I like the Onibaba cover. Great cover for a great film. 

One Comment, Comment or Ping

  1. Meladerm

    I believe what you said made a great deal of sense. But, think on this, what if you were to create a killer title? I am not saying your information isn’t solid., however suppose you added a post title that grabbed people’s attention? I mean fogus: (take 7 (david-nolen)) is kinda boring. You might look at Yahoo’s home page and watch how they create news headlines to grab viewers to open the links. You might add a related video or a related pic or two to grab people excited about what you’ve got to say. In my opinion, it could bring your blog a little bit more interesting.

Reply to “(take 7 (david-nolen))”