On the eve of the first free, online “Clojure 101” course, Michael Kohl of RubyLearning caught up with Rich Hickey, the creator of Clojure. In this interview, Rich Hickey talks to the Clojure 101 course participants on Clojure.
Michael>> Welcome, Rich and thanks for taking out time for RubyLearning’s Clojure course participants. For their benefit, could you tell us something about yourself?
Rich>> I’m an independent professional software developer, and the author of Clojure. For over 2 decades, I’ve worked on a variety of interesting systems – scheduling, yield management, broadcast automation, digital audio etc.
Michael>> Why and when did you decide to start working on Clojure?
Rich>> I decided I couldn’t stay interested for 2 more decades if I had to keep writing software in C-derived languages like C++/Java/C#. I guess I first committed to creating a language in 2005. I wrote Clojure because, having great affection for Lisp, I hadn’t been able to come up with a satisfying way to bridge Common Lisp and the platforms on which I had to deliver systems – the JVM and .Net. In addition, I’d decided I wanted to program in a language that was more oriented towards functional programming than traditional Lisps.
Michael>> Many of RubyLearning’s Clojure course participants have a Java and or Ruby background. What, according to you, are the benefits to these participants after learning Clojure?
Rich>> I think everyone can benefit by taking a more functional approach to programming. The more you use immutable data and pure functions, in any programming language, the simpler and more robust your programs will be. Clojure makes that idiomatic and relatively approachable.
Michael>> How should our users go about acquiring knowledge and skills in Clojure? What’s the best approach?
Rich>> Everyone learns differently. I would encourage people to get Programming Clojure, and any other available Clojure books. Try things out at the REPL – the interactive learning experience is great. Look at code in Clojure and various libraries. and don’t miss out on the terrific community on the Clojure google group and #clojure IRC channel.
Michael>> Which areas in Clojure should a would-be Clojure programmer concentrate on in your opinion?
Rich>> If you are coming from an OO background, the most fundamental thing is to concentrate on programming with values. Don’t try to replicate your mutable objects, you need them far less than you might think.
Michael>> Do you think this free online course at RubyLearning will be beneficial to the Clojure community?
Rich>> I hope so!
Michael>> After the course, most participants would like to contribute their time, skills and expertise to a Clojure project but invariably are unaware of where and how to do so. Do you have any suggestions for them?
Rich>> Get engaged with the community on the Clojure google group, find libraries that are useful to you, use them, then see if you have something to add and coordinate with the library author.
Michael>> Do you have any parting words for our Clojure course participants? Anything you would like to share with them?
Rich>> Clojure is based on the idea that programming can and should be much less complex. Once you get past any unfamiliarity, I hope you come to cherish the simplicity that underlies it.
Thank you Rich. In case you have any queries and/or questions, kindly post your questions here (as comments to this blog post) and Rich would be glad to answer.