Over a million developers have joined DZone.

My Clojure Setup

DZone's Guide to

My Clojure Setup

· Java Zone
Free Resource

Make it happen: rapid app development on Kubernetes as a managed service.

So... I've got my Clojure setup down

I've got my Clojure setup pretty much nailed.

I am using an old ThinkPad X300 running Linux Mint. Why? Well, I'm waiting for the new Haswell processors from Intel, I donated my MacBook Air to charity (I still have a MacBook Pro), I need something light for carrying around, 13" machines are much easier to code on airplanes, and I had the X300 laying around.

The X300 has a 4GB RAM limit and a slow processor (my desktop Linux box is 3 times faster.) So, I needed a dev environment that's CPU friendly and RAM friendly. While I really like IntelliJ, it's a CPU and RAM hog. IntelliJ is better for statically typed languages... but with Clojure, function completion, etc. are less valuable. So, my editor choice is Sublime Text.

My Setup

I downloaded and purchased Sublime.

I followed the instructions for installing SublimeREPL.

Then I installed a helpful indentation package.

Finally, I updated my key bindings to make them more Emacs-like:

{ "keys": ["ctrl+shift+-"], "command": "undo" },
{ "keys": ["ctrl+d"], "command": "right_delete" },
{ "keys": ["ctrl+a"], "command": "move_to", "args": {"to": "bol", "extend": false} },
{ "keys": ["ctrl+e"], "command": "move_to", "args": {"to": "eol", "extend": false} }

And my user preferences have auto-save enabled:

"color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme",
"save_on_focus_lost": true


My workflow is to open the Clojure REPL in Sublime. I write some code in a .clj file, do a ctrl-TAB to switch to the REPL and do an up-arrow to something like:

(do (use 'plugh.core :reload-all) (thingy))

That reloads the current package and all its dependencies (which takes almost no time, even on my slow machine) then invokes a function. I just keep editing, executing, and building my code.

When I want to test, I change my namespace to a test namespace:

(ns plugh.file-test)
(use 'clojure.test)

And then I can repeatedly run tests:

(do (use 'plugh.file-test :reload-all) (run-tests))

Why Sublime vs. Emacs

I'm an Emacs lover... but Sublime has a simple feature that is awesome: ctrl-p.

Basically, you can type ctrl-p and then get a smart list of files in the project and search by file name (and likely other thing). This makes project navigation so much easier. Sublime has a nice package mechanism (yeah, Emacs 24 does, too.) All in all, Sublime seems to work more like I do without much modification vs. Emacs which can do everything if I spend weeks getting the packages, etc. just right.

Tutorial: WordPress as distributed microservices on Kubernetes.


Published at DZone with permission of David Pollak. See the original article here.

Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}