Environment

There are many good development environments for Clojure and Grafter development. However we strongly believe that if you are new to Clojure you should use one of the following to simplify your workflow.

One of the biggest advantages of Clojure over other languages is how powerful its REPL is. Consequently if you don’t have good editor integration with your REPL you will find development to be significantly slower.

In particular we recommend the following environments for getting started quickly with Grafter and Clojure.

1. IntelliJ with Cursive Clojure

IntelliJ with the Cursive Clojure plugin is one of the easiest ways of getting a near state of the art Clojure environment going.

Given how much time many people spend setting up their Clojure environments unless you’re already an Emacs user, we recommend this as the best option.

Cursive Clojure

2. Emacs and Cider

This is typically considered to be the most capable environment for Clojure development. However because Emacs isn’t for everyone we hesitate to recomend it as the easiest way to get started.

Perhaps once you’ve learned Clojure you can graduate to using Emacs and Cider.

The Emacs learning curve can be quite steep but there are some good articles on getting started with Emacs and Clojure.

emacs

3. LightTable

LightTable is written in Clojurescript and is one of the easiest Clojure environments to get started with. It also has some great interactive development features such as the instarepl. It is well-designed, responsive and portable, so can develop and test your code everywhere. Download it and try it.

Lighttable has some innovative features and is a great environment however we believe people will appreciate the familiarity of IntelliJ and Cursive.

lighttable

4. Eclipse + CounterClockWise

Eclipse is a cross-platform IDE which supports Clojure development through the CounterClockWise plugin.

ccw

Other choices

There are many other options, however in our experience people are always best starting with one of above, before exploring alternatives. This question on StackOverflow discusses some of the other options for Clojure development.