I have played around with many different setps for developing Clojure
over the last year. Some I like, others I don’t.
This is about the three setups I prefer. There are many others, that you
might like more.
All of these setups have their problems, and I don’t consider any of
them perfect. But they work fine.
- VS Code + Calva
- IntelliJ + Cursive
- Emacs + Cider
VS Code with Calva is a good setup. The repl is easy to set up and use.
And Calva makes sure the remote repl you are connected to refresh your
files on save. But there is one thing I do not like about this setup,
and that is that console messages(some of the error messages) don’t show
up inside VS Code.
Cursive on the other hand is a very easy to use and solid setup. You get
everything you expect from a IDE setup. The repl is solid and easy to
use, you can either set it up to run a repl for your or connect to a
remote one. Like VS Code you don’t get all the output if you connect to
a remote one. This is not a problem if you run it locally in IntelliJ.
Unlike Corva, Cursive does not have support for reloading changes on
save, so you need to run a keyboard shortcut each time you wish to do
that. Not huge, but a little bit annoying.
The Emacs setup is my favourite. You can configure everything, you have
many different ways to do everything you want. Everything from how you
wish to test out code in the repl to what output you want access to. I
have not set this up yet, but it is possible to set up auto reload like
I personally prefer Emacs for Clojure development, because it is the
most powerful. But it is also very hard to get into. If you are the kind
of person that would enjoy emacs, you already know it. If not, check out
Code or Cursive.
Use Code if you are more into text editors, and Cursive if you are more
into IDE’s. Also take the issues with each setup into consideration for
what setup you pick.
If I don’t use Emacs, I often use Cider when I want to see all repl
output, while I use Code when I find it cumbersome to reload the code
all the time.