Here are some more detailed instructions for setting up your Clojure development environment.
- Make sure you have a recent Java SDK installed. On OS X, Java 7 should be installed by default. Java 6 should also work fine, and if you're feeling adventurous or want to be on the cutting edge, you can install Java 8. It's best to have the full Java SDK (not just the JRE, or Java Runtime Environment). You can get official releases for all major platforms straight from Oracle, or on Linux you can use your package manager to install the correct openjdk SDK.
- Install Leiningen. It's as simple as putting an executable script on your path and running
lein. It bootstraps itself, installing the latest Clojure runtime as well. Instructions for Linux, OS X and Windows are at the link above.
- Select an editor
You have a few options:
- LightTable is easy mode. It's available for Linux, OS X, and Windows, and is easy to get started with. If you're used to Sublime Text, Atom, or Textmate, LightTable is probably your best bet.
- If you already use Emacs, congratulations. I wrote this blog post a while back with some suggestions for using Emacs, especially with Clojure. The main thing is to configure CIDER correctly to get your awesome Clojure interaction going.
- Vim users are not left wanting; Tim Pope's vim-fireplace plugin will get you the REPL action you need.
- If you're an IDE junky or coming from the Java world, the Cursive plugin for IntelliJ might fit the bill.
- If you're married to another editor (Atom, Sublime, etc.), just make sure you have the right language pack for Clojure installed. You won't get the full interactive experience of other environments, but there's nothing wrong with switching over to a REPL in a shell if you'd prefer. It's closer to the Ruby way of editor->irb/pry->browser->editor workflow than the Lisp way of "my editor knows how to connect to my project and eval my code", but whatever floats your boat is fine.
As far as class goes, I can provide support for LightTable and Emacs pretty thoroughly, Vim competently, and anything else on a best-effort basis. So you know.
Problems, Questions, Concerns
Feel free to email me with any questions. This document will continue to be updated as I remember more things I forgot. You can also comment on this Gist.
I will also be available starting no later that 5:30pm at Betamore prior to the first night of class to help with any last minute setup issues.
Cheers, and happy coding!