What is Clojure? Who Should Use It?

I am writing this post to try to dig into why someone wants to use Clojure; who would use it to implement production grade software; and who is qualified to use Clojure. I saw a post today concerning the compatibility between Clojure releases and between the Clojure “contrib” library. One answer indicated Clojure is not for the masses; is for hackers and people who like computer science; and for those who want to work with a fun language. I saw history repeating itself with this answer.

Gordon Bell’s law about functions (classes) in computers being replaced by cheaper hardware about every decade made me think about things being reinvented, especially arguments in computer technology, most notably computer programming languages. The argument I read about who should use Clojure was like Deja Vu all over again .

What is perhaps not understood, or I cannot detect the understanding in what I am reading, is that not all computer work is fun; you do not always get to choose your language; and you have to be innovative in your work with the tools you have or can grab.

If you go to Clojure’s home page and read the first few paragraphs and also click on Rationale, Rich Hickey, Clojure’s founder, seems to be saying that Clojure was designed with balance, pragmatism, and trade-offs. This does not seem to be directed at an elite group of people.

I understand why people like Clojure and other Lisp dialects. Coming from PL/I and C and considering the other languages available in the 1980s, DEC’s  Bliss-32 was like a dream. I realize most readers today might find Bliss dreadful, but it allowed me to express hardware architecture functions in a clearer way than assembly language or C ever could (C++ did not exist for commercial use in 1987.) Even PL/I has a construct that supports multiple function entry points, aka multiple function interfaces. It sounds a little like polymorphism to me.

Now back to the response to the compatibility between Clojure’s released versions: the answer itself did not bother me. History repeating itself without looking to arguments in the past seemed futile. Maybe that’s what we do every 10 or 20 years, start discussions, thinking they are new, not realizing we are restarting arguments from the past.

If Clojure winds up becoming a salon-class, elite language that will be a shame. There are aspects to Lisp dialects and Clojure specifically that I believe should become part of mainstream. I find Lisp syntax far easier to read than, say, Haskell’s.

So, my thoughts about Clojure and who should use it, if not already obvious, are use it, if it makes sense in your environment. Learn Clojure well and what drives it, specifically functional programming and environments requiring synchronization. If you can’t use it, learning will probably help you with your current language.



Filed under Clojure

3 responses to “What is Clojure? Who Should Use It?

  1. Pingback: A geek with a hat » Crowdsourcing elegance

    • Clojure, another name to make those lisp fanboys to be happy, the want to make everythng with it, as if the universe programming could depend in only one language, Cojure is good for decisional trees and data structure processing, and IA, but maiking a webpage with clojure… come on…

  2. Pingback: A geek with a hat » Functional isn’t always better

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s