ActiveBlog

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.

Attendees

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.

Clojure

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).

Riemann.io

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.

ClojureScript

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.

Conclusion

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 Wetherill ActiveState's Developer Evangelist. Originally from Canada, John has spent much of his career designing and building software at a handful of startups, at Sun Microsystems, NeXT Inc., and more recently in the smart grid and energy space. His biggest passion is for developer tools, or more generally any tool, language, process, or system that improves developer productivity and quality of life. Without question, Stackato is one such tool and the reason why he is here. No stranger to technology evangelism, John spent several years in the late 1990's on Sun's Technology Evangelism Team spreading the Java Gospel across the globe and focusing on the prolific number of Java technologies. Now John is now returning to his roots, as a technology evangelist working for a Canadian company, albeit remotely from Santa Cruz.