Saturday, August 14, 2010

Clojure: the good and the awkward

I have been doing some Clojure development at CompassLabs this year and I now feel like I have enough experience to better discuss both the language and tools that have been developed to support Clojure.

First for the awkward bits: for me the worse aspect of Clojure development is the un-useful stack frames when an error is thrown. I have 99% confidence that this problem will eventually get fixed and this issue will go away. Another awkward aspect is not being able to settle down on a single development setup. I currently use:
  • Emacs+swank - more experienced Clojure developers who I work with prefer this option, so I am trying to adjust
  • lein repl - a favorite option for me, using a light weight editor like TextMate to edit text.
  • IntelliJ with Clojure plugin - another favorite option for me, especially in projects where I am also working on Java and/or Scala code
  • David Liebke's clj repl and package manager - this is a nice option if you prefer to not work in a project-oriented mode and instead want to have packages installed on your development system that are available for working on small files, snippets, etc. no matter what directory you are working in
Choice is good so I am not really complaining too much about having four good options for working on code.

For me, the best bits of coding in Clojure are the uniform APIs for seqs and the wealth of existing Java libraries that make Clojure close to ideal for many kinds of applications.

I spend a lot of time coding in Clojure, Ruby, Java, Common Lisp, and Scheme. It is difficult to predict what tools will be most useful in the future but as rough edges of the Clojure experience are smoothed out, Clojure has the real possibility for being a reasonable choice for almost all of my development.

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.