Critical.
Authoritative.
Strategic.
Subscribe to CIO Magazine »

The A-Z of Programming Languages: Clojure

Our series on the most popular programming languages continues as we chat to Clojure creator Rich Hickey
Clojure creator Rich Hickey

Clojure creator Rich Hickey

Computerworld is undertaking a series of investigations into the most widely-used programming languages. Previously we have spoken to Larry Wall, creator of the Perl programming language, Don Syme, senior researcher at Microsoft Research Cambridge, who developed F#, Simon Peyton-Jones on the development of Haskell, Alfred v. Aho of AWK fame, S. Tucker Taft on the Ada 1995 and 2005 revisions, Microsoft about its server-side script engine ASP, Chet Ramey about his experiences maintaining Bash, Bjarne Stroustrup of C++ fame, and Charles H. Moore about the design and development of Forth.

We’ve also had a chat with the irreverent Don Woods about the development and uses of INTERCAL, as well as Stephen C. Johnson on YACC, Steve Bourne on Bourne shell, Tcl creator John Ousterhout, Falcon creator Giancarlo Niccolai, Luca Cardelli on Modula-3, Walter Bright on D, Brendan Eich on JavaScript, Anders Hejlsberg on C#, Guido van Rossum on Python and Prof. Roberto Ierusalimschy on Lua. We most recently spoke to Joe Armstrong, creator of Erlang.

In this interview, Clojure creator, Rick Hickey, took some time to tell Computerworld about his choice to create another Lisp dialect, the challenges of getting Clojure to better compete with Java and C#, and his desire to to see Clojure become a 'go-to' language.

If you wish to submit any suggestions for programming languages or would like to see a particular language authors interviewed, please email kathryn@computerworld.com.au


What prompted the creation of Clojure?

After almost 20 years of programming in C++/Java/C#, I was tired of it. I had seen how powerful, dynamic and expressive Common Lisp was and wanted to have that same power in my commercial development work, which targeted the JVM/CLR. I had made a few attempts at bridging Lisp and Java, but none were satisfying. I needed something that could deploy in a standard way, on the standard platforms, with very tight integration with existing investments.

At the same time, throughout my career I have been doing multithreaded programming, things like broadcast automation systems, in these OO languages, and seen nothing but pain. As a self-defense and sanity-preserving measure, I had moved my Java and C# code to a non-OO, functional style, emphasising immutability. I found this worked quite well, if awkward and non-idiomatic.

So, I wanted a dynamic, expressive, functional language, native on the JVM/CLR, and found none.


See related tutorial: an Introduction to Clojure

Where does the name Clojure come from?

It's a pun on the closure programming construct (and is pronounced identically). I wanted a name that involved C (CLR), L (Lisp) and J (JVM). There were no search hits and the domain was available - what's not to like?

Was there a particular problem the language aimed to solve?

Clojure is designed to support writing robust programs that are simple and fast. We suffer from so much incidental complexity in traditional OO languages, both syntactic and semantic, that I don't think we even realise it anymore. I wanted to make 'doing the right thing' not a matter of convention and discipline, but the default. I wanted a solid concurrency story and great interoperability with existing Java libraries.

Why did you choose to create another Lisp dialect instead of extending an existing one?

While Lisps are traditionally extremely extensible, I had made some design decisions, like immutability for the core data structures, that would have broken backward compatibility with existing Scheme and Common Lisp programs. Starting with a clean slate let me do many other things differently, which is important, since I didn't want Clojure to appeal only to existing Lispers. In the end Clojure is very different and more approachable to those having no Lisp background.

Why did you pick the JVM?

I originally targeted both the JVM and CLR, but eventually decided I wanted to do twice as much, rather than everything twice. I chose the JVM because of the much larger open source ecosystem surrounding it and it has proved to be a good choice. That said, the CLR port has been revitalised by David Miller, is an official part of the Clojure project and is approaching feature-parity with the JVM version.

Join the CIO Australia group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.

More about: Eclipse, Microsoft
References show all

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
Users posting comments agree to the CIO comments policy.
Login or register to link comments to your user profile, or you may also post a comment without being logged in.
Related Coverage
Related Whitepapers
Latest Stories
Community Comments
Tags: a-z of programming languages, C, C#, clojure, clr, Java, jvm, lisp, software development
Latest Blog Posts
Whitepapers
  • Enterprise Buyers Guide for Tablets
    In this enterprise buyers guide Computerworld provides a framework for assessing the suitability of tablet computers with different work styles and demands. The guide takes into account upgrade cycles, pricing and contract issues with telecommunications providers. It features a shopping checklist covering screen types, connectivity and hardware as well as a guide to application management. This is in addition to a full roundup of the major players including road maps for the most popular operating systems.
    Learn more »
  • Award-winning unified information security from Clearswift.
    Fully integrated web and email gateway security solution, providing - protection from inbound threats, policy based encryption, and data loss prevention.
    Learn more »
  • Top 5 Myths of Safe Web Browsing
    There are a lot of misconceptions out there about safe web browsing. You might think you're being safe. But without the facts it’s next to impossible to stay protected against today’s changing threats. In this paper we describe the top five myths of safe web browsing, what the facts really are, and what you can do to stay secure.
    Learn more »
All whitepapers
rhs_login_lockGet exclusive access to Invitation only events CIO, reports & analysis.
Recent comments