I am always looking for ways to expand my knowledge and try to keep up in this super-fast-paced industry. About a month ago I decided it was time to learn a new language. Never have I thought that one language satisfies all problems but lately have been thinking that my current repertoire was severely lacking. Being proficient in C, C++, Pascal, Java, C#, PHP, and Python should allow one to solve most problems eloquently but they do not. Having a good understanding of Ruby, Smalltalk, Prolog, and a handful of command scripting languages does not seem to help either. These tried and true bastions of programming come up short so often.
I read Paul Grahams' essays (and re-read them) often. His thoughts on emergent languages and the beauty of Lisp had me thinking many times of learning it. I recall my university professors (20 years ago!) talking about C, Forth, Prolog, Pascal, Ada, and Lisp. But their actions are what sticks. When a problem came along they needed to solve, they all turned to Lisp to get it done quick.
Having decided to try Lisp the first question is which one! The determining factor for me was the ability to use the concepts that I was to learn. How easy was it to deploy? How ubiquitous is the platform or its host's needs? How well does it perform? Is it adaptable for use in web applications (since that is my primary income source)?
Enter Clojure. It is a Lisp-like language with a small but growing community that has been very helpful so far. Being primarily targeted to the JVM, it an run anywhere Java can run. That would be almost anywhere. Using the JVM means you can also use existing Java libraries and integrate with current Java applications without the baggage of the Java language limitations and verbosity.
So far, it is a great language to work in. I'll let you know if it solves the world's problems :)