Interview on Clojure
Clojure’s support for concurrency is what will put it on many developer’s radar.
AT JAX London
Autumn Edition 2010, Neal Ford will deliver a hands-on session
on pair programming and agile development. We caught up with him to
find out more about this session, and to talk about Clojure….
JAXenter: There are many new languages emerging
for the JVM. What benefits does Clojure offer?
Neal Ford: Clojure is a fascinating mix of old
and new. It’s a Lisp (arguably the most powerful language ever
created,) yet it is also functional and high performance on the
JVM. Clojure syntax looks a little odd to developers who come from
traditional C-based languages, but it’s easy to learn because there
is very little language actually there — Lisp has very little
syntax. It also helps that there are incredibly powerful libraries
that eliminate the need to write much of the boilerplate code you
see in other languages. The end result is concise, powerful, high
JAXenter: What does Clojure share with
Neal Ford: Clojure is a Lisp implementation
(with all the benefits that implies,) but the creator of the
language, Rich Hickey, made some changes to the way Lisp’s have
traditionally been done to make it a better match for the JVM, and
the end result is a Lisp that supports all the power of Lisp but
optimized both for usage and speed for the JVM.
JAXenter: How does Clojure deal with
Neal Ford: Clojure’s support for concurrency is
what will put it on many developer’s radar. Rich made some very
smart choices about mutable state within Clojure, making the
default immutable (even for the rich collections API.) Mutable
state has specific data structures to manage changes to their
state. The combination of inherent thread safety plus really smart
data structures for the state that does need to mutate make Clojure
one of the very best languages on the JVM for highly concurrent
processing. This is one of the early adaptor patterns for starting
to use Clojure.
JAXenter: In addition to your ‘An Introduction
to Clojure’ session at JAX London, you will run an Agile
Development session that promises to be “hands on.” What can
attendees expect from this session?
Neal Ford: In this session, I’m going to allow
the developers (who all, or at least half of which, brought
laptops) experience pair programming for real. I’m going to give
the group a simple problem, then let them pair program to arrive at
the result. This is a chance to see for yourself just how pair
programming really works (and it’s not just two people fighting
over the same keyboard!)