On the eve of the first free, online “Clojure 101” course, Michael Kohl of RubyLearning caught up with Stuart Halloway, author of Programming Clojure and talked to him on Clojure, for the benefit of the Clojure 101 course participants.
Michael>> Welcome, Stuart and thanks for taking out time for RubyLearning’s Clojure course participants. For their benefit, could you tell us something about yourself?
Stuart>> Along with Justin Gehtland, I co-founded Relevance, a development shop that takes pride in staying near the cutting edge. We were early adopters of Ruby (and Rails), are are now early adopters of Clojure.
Michael>> How and when did you get involved with Clojure?
Stuart>> I have been interested in Lisps for years, as a result of living in Emacs and reading Paul Graham and Steve Yegge. I discovered Clojure in early 2008, and quickly realized that it was the Lisp I had been looking for.
Michael>> You were closely involved with the Ruby language, what made you switch to Clojure?
Stuart>> I still use Ruby, but it is fair to say that Clojure is currently my favorite general-purpose language. In short: I came for the Lisp, and I stayed for the fp and concurrency features.
Michael>> Many of RubyLearning’s Clojure course participants have a Java and or Ruby background. Why, in your opinion, should they learn Clojure?
Stuart>> Used well, Clojure will be as fast as Java, as expressive as Ruby, and more thread-safe and multicore-ready than either. It is also one of those languages that rewires your brain, and makes you a better programmer in other languages.
Michael>> Why do you think that such a free, online Clojure course at RubyLearning would be beneficial to the Clojure community?
Stuart>> There have already been many Ruby programmers exploring Clojure, and it is a natural fit. In my experience, the Ruby community is fearless: tell them there is a better way and they will dive in an see for themselves, rather than becoming defensive.
Michael>> How should interested developers go about acquiring knowledge and skills in Clojure? What’s the best approach?
Stuart>> Well, there’s a book. Programming Clojure. And several more books are coming. But really there is no substitute for trying things out. There is a lot going on in Clojure, particularly if you have not been exposed to functional programming, or Lisp, so you have to be patient and let it steep. Also, join the mailing list. The community is remarkably friendly and supportive.
Michael>> Do you see any areas in the language a would-be Clojure programmer should concentrate on?
Stuart>> Clojure’s approach to values, identity, and state is game-changing, and most people will need to spend some time with it to appreciate its power. If you haven’t already, definitely watch Rich’s keynote from last year’s JVM Languages Summit.
Thank you Stuart. In case you have any queries and/or questions, kindly post your questions here (as comments to this blog post) and Stuart would be glad to answer.