Getting Clojure - Tales From Clojure/West 2014
by John Wetherill

John Wetherill, March 25, 2014

John Wetherill at Clojure/West 2014 ActiveState's Technology Evangelist John Wetherill shares his experience of the Clojure/West 2014 conference in San Francisco.

A Technical Conference

Day two of Clojure/West in San Francisco is just wrapping up. There's lots going on here, way too much to discuss coherently in detail in a blog, so instead here's a braindump.

This is one of the most technical conference I've attended, and I've attended many. Much of it is way over my head. The conference opened, not with a general keynote, but with a deep dive into the Clojure internals, with dozens of fast-moving slides packed with code.

Which is a refreshing contrast to many other events I attend where the the hype/reality ratio is much higher.

I've barely heard Clojure mentioned at the many conferences I've attended in the last months. Yet it's clearly gaining some major traction and doing so quite stealthily.


Interestingly most of the folks I'm meeting are DevOps, IT, build-engineers, or similar.

I've met folks from dozens of well known companies, large and small, who are actively investing in and using Clojure. For example, Staples is using Clojure for multi-variant testing, real-time price optimization, real-time shipment delivery optimization, behavioral email targeting and recommendation engines. Walmart Labs is also building in-store experience apps with Clojure. There are many other examples.


So why Clojure?

Clojure is based on the JVM and leverages the very mature Java ecosystem, especially Maven. It's trivial to build and deploy Clojure applications, which run fine on any platform that runs Java. This covers pretty much all platforms.

Clojure interoperates with all of Java. In fact it's often easier (way less code, more expressive) to use Java APIs from Clojure than it is to do so from Java. For example, it fixes many of the inconsistencies and asymmetries with Java collections and makes them much more unified.

I've seen several examples where folks take a core Java method and port it to Clojure. Often the Clojure function is 5% to 10% the size of the Java method. (Note: it takes just as long, if not longer to write - it's just way more expressive and clean).

Clojure is awesome for analytics and data processing, and useful for monitoring and logging systems. Check out, a Clojure-based system monitoring tool. This is being used internally at Apple.


ClojureScript is a dialect of Clojure that compiles to JavaScript and unifies the client and server elegantly. Java 8, which was released last week, embeds a powerful and fast JavaScript engine called Nashorn which promises to make Clojure/ClojureScript even more interesting.

Powerful Language

Clojure itself is freakily expressive and powerful and fast.

It's mostly a functional language, extremely simple, and is not wrought with the difficulties that "state" brings to the table. It has huge advantages for concurrency, testing, performance, scalability.

It's easy to learn - for folks who don't have a procedural or imperative programming background. Although, it's much harder to learn for the rest of us.


The above stream of unconsciousness doesn't do Clojure justice. Soon I'll follow up this article with a more in-depth discussion of Clojure, with an exploration of how simple it is to deploy Clojure applications to the cloud with Stackato.

Videos for Clojure/West are online already posted here

Definitely worth a watch. Get coffee first!

Subscribe to ActiveState Blogs by Email

Share this post:

Category: events
About the Author: RSS

John, ActiveState's Technology/PaaS Evangelist, spent much of his career designing and building software at a handful of startups, at Sun Microsystems, NeXT Inc., and in the smart grid and energy space. His biggest passion is for tools, languages, processes, or systems that improve developer productivity and quality of life. He now spends his time immersed in cloud technologies, focusing on PaaS, microservices, and containerization.