Take the 2-minute tour ×

I have started building a system with clojure, mainly because I need to use Java libraries. My main problem with Clojure is lack of proper IDE support (getting it to work well with Emacs on Windows was not trivial). I was wondering what difficulties other people have had.

share|improve this question
My parentheses keys wore out... –  Rafe Kettler Dec 15 '10 at 19:38
IntelliJ IDEA now has a free edition, and supports Clojure pretty well, possibly best of all IDEs. Recommended. –  Carl Smotricz Dec 15 '10 at 19:47
Actually I've tried Netbeans and wasn't too impressed with Enclojure, but I just tried Intellij and LaClojure, and it is much better –  Zubair Dec 15 '10 at 20:23
@Rafe Kettler: Clojure code typically has less parentheses than Java. Also, I don't think any Lisp programmer has actually typed parenthesis since the 1970s or so, when IDEs with automatic code completion were invented. –  Jörg W Mittag Dec 15 '10 at 20:59

5 Answers 5

up vote 2 down vote accepted

My problems so far:

  • It wasn't too easy to get EMACS/SLIME with Common Lisp AND Clojure.
  • Clojure 1.2.0 stacktraces are a mess so far. It's often so hard to get it what went wrong.
  • The debugging experience is not very nice. Tried JSWAT and Counterclockwise, but not really happy with it.
share|improve this answer
Check out "clojure.contrib.trace", it can be better than traditional debugging in a lot of cases. –  Sergey Dec 21 '10 at 20:10
I know about it. In the meanwhile i mainly use 1.3, there stacktraces are much better. –  0x434D53 Mar 20 '11 at 22:13

Lack of "user friendly" stacktraces (coming from Haskell, it felt like a giant step back), but you get used to it eventually and learn to work your way from slime/swank.

Still having nightmare about the days when we didn't have leiningen (classpath mess, start scripts, dependency "management" hell).

It improved a lot and is improving every release it seems.

share|improve this answer
Stacktraces in the 1.3.0 alphas are pretty readable now. –  dnolen Dec 15 '10 at 20:58
Yes, I still find the stacktraces quite bad, but then again I also found the Java stacktraces quite unreadable sometimes too :) –  Zubair Dec 16 '10 at 13:31
I recommend clj-stacktrace. You don't have to be running the latest version of Clojure, plus it has better alignment and coloring than the stuff in Clojure 1.3: github.com/mmcgrana/clj-stacktrace –  technomancy Dec 23 '10 at 0:31

getting bitten by the "lazy bug".

(with-open [file (writer name)]
    (map #(.write file (process %)) (get-data)))

and "the lazy bug" makes your file empty!

ps: the answer is dorun

share|improve this answer
Isn't "do" enough to force the code to evalulate? –  Zubair Dec 16 '10 at 13:32
do forces evaluation of all items in a list and caches the result. dorun is like do except it does not bother saving the list and just returns nil. slight space saving for small lists and wont blow the heap for really huge or infinite lists. –  Arthur Ulfeldt Dec 16 '10 at 20:39

An idea: if you are working in a Java environment then you might consider sticking with your Java IDE and use a Clojure plugin rather than going with Emacs etc.

For example, my setup works beautifully with:

  • Eclipse 3.6.1
  • Counterclockwise plugin for Clojure 0.2.0 RC1 (http://code.google.com/p/counterclockwise/)
  • Clojure 1.2 libraries (either on the eclipse build path, or automatically imported using Maven)
  • Interactive development using the REPL provided with Counterclockwise (nREPL)

Since I need to use a lot of Java along with my Clojure code (often in the same project!), this setup makes much more sense than wrestling with a whole new set of tools.

share|improve this answer
just revisited this answer after 10 months, the advice still holds except that there are shiny new versions of all the tools listed and it works even better...... –  mikera Oct 9 '11 at 4:32

Changing my mindset from imperative to functional programming.

It got better after I read a book on lisp programming.

share|improve this answer
No arguments with that, although you functional programming "techniques" can be applied to "any" language you use, even Java –  Zubair Dec 16 '10 at 13:32
@Zubair, so is this page a question or a motivational talk? :) –  Sergey Dec 17 '10 at 15:33
Its neither. I am trying to immerse myself in clojure so I want to learn as much as I can from other people on their expereinces with the languages. –  Zubair Dec 19 '10 at 15:26
I see. I'm a big Clojure fan actually, but I can't deny that it took a lot of studying to become quite productive. I think I made the right choice anyway. –  Sergey Dec 21 '10 at 20:14

Your Answer


