What is Clojure?
Clojure is an intriguing, relatively new programming language whose existence was first revealed to the world (or at least the world as I see it) via comp.lang.lisp in a post by Rich Hickey from February 2008, although I believe the language first became public during the end of 2007 to a very small audience.
Clojure is a unique language; it is a modern lisp that runs on the JVM, and has unusually good set abstractions for accomplishing concurrent programming. My opinionated reasons for learning Clojure include:
- Clojure is a lisp, so programs are data, there is almost no syntax to learn, and macros are powerful.
- Clojure has built-in support for concurrency throughout the language, and it is the only language I am aware of where the fundamental data structures are all pervasively immutable.
- It borrows many good ideas from other languages (Common Lisp, ML, Haskell, Erlang, etc), but not their historical baggage.
- Rich Hickey is a very intelligent, benevolent dictator with a clear aesthetic style and a pragmatic attitude…and he’s just a nice, humble guy too!
Because Clojure runs on the JVM, it is able to use the huge wealth of Java libraries already available. In fact, Clojure has been described as “a better Java than Java“.
If you are looking for a functional lisp designed for massive concurrency and designed by a benevolent dictator, then Clojure may interest you.
If you have any lisp background, there was rather epic thread of CL vs. Clojure on comp.lang.lisp. I like to think that Clojure holds its own very well in this thread against CL, despite intelligent criticism on both sides.
About this site
This site is an archive of Clojure-related information that I write or find around the ‘net/metaverse/cortex. I’ll try to keep it error free, but I’m definitely not a computer scientist, and so most everything I say is probably wrong. Caveat emptor! Or in this case, caveat lector!
Weighted companion cubes are cute and cuddly and look like this:
Please don’t euthanize them unnecessarily.