>> I think going the Clojure route makes more sense, but I am strongly
>> biased towards functional programming languages. It is a simpler
>> language to learn than Java, yet one that provides much richer
>> libraries. You won't, for instance, have to write a for loop to
>> iterate over a collection. Just read "reduce" and think "inject:
>> into:" and you're halfway there.
I am going to disagree there with you. Especially if one comes from the family
of C like language , he is going to find Clojure an alien planet at best. Now
count into that as a non popular language the amount of
books/tutorials/articles on it will be highly limited. Me learning Clojure has
been far from smooth and easy and definetly not even remotely close as easy as
learning Java and of course light year away as easy as learning python.
Also I had the advantage of already studying briefly common lisp still I found
learning Clojure much more challenging than I expected mainly because even
though it pays tribute on its lisp heritage its a language by itself.
I do agree though that is a very promising language for JVM and its certainly a
must learn if you target the Java Machine , so recommending clojure is by no
means a bad advice. However if one come to either lisp or smalltalk , he must
be prepared for severing lacking not so well written and noob friendly
documentation and mostly a complete lack of choices in that field. Saying that
I like Clojure , I love common lisp and I adore smalltalk .
I agree with you that functional programming at least in theory seems extremely
tempting way to code.