- Developer Tools
John Wetherill, March 25, 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 http://riemann.io/, a Clojure-based system monitoring tool. This is being used internally at Apple.
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: