Felix Dahlke is a software developer particularly interested in games and open source. He writes most of his code in JavaScript, C++ and Python. Felix is a DZone MVB and is not an employee of DZone and has posted 16 posts at DZone. You can read more from them at their website. View Full User Profile

Why we used Clojure and ClojureScript for Flurfunk

09.17.2012
| 4386 views |
  • submit to reddit

Why have you decided to use Clojure and are you still happy with your choice?

This question has been asked more than once now, and although I answered it in a Google+ comment, it seems you can’t link to those, so here’s a blog post.

I wouldn’t call myself an “old Lisper” (as Thomas did), but I had some experience with Clojure and other Lisps and thought it might be a good choice. We went with Clojure in particular because it runs on the JVM, and we wanted to integrate well with our company’s Java environment.

Clojure code tends to be succinct, readable and easy to change, which was useful since we didn’t have a very clear picture of where Flurfunk should go when we started, nor did we have much time.

ClojureScript, which was only a month old when we began to work on Flurfunk, is a different matter. Wasn’t exactly hassle-free. I think we might have been faster if we had used JavaScript, plus I wouldn’t have been the only one working on it. But I’ve seen ClojureScript get better every month, and was pretty productive after the initial problems were solved. A rewrite wouldn’t have paid off so far.

So to answer the question: Yes, we’re happy with our choices. I don’t think that we couldn’t have done it without Clojure, but it certainly played its part. If nothing else, it kept me motivated. On the other hand, I think we would have seen more collaboration (both in our team and now that it’s open source) if we had picked (J)Ruby and JavaScript.

Those decisions are way too hard and I don’t think there are really right and wrong choices. We both like Clojure, it probably comes down to that.

Published at DZone with permission of Felix Dahlke, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)