Vladimir Chapelev wrote:Hello guys, I recently discovered Clojure and began to study it, do you know any good books on Clojure, and online courses?
Clojure for the Brave and True (previously just online, now also a print book) is a good introductory text. Clojure from the Ground Up (online) is useful too. You might also look at Living Clojure (I haven't read it but several friends recommend it highly). My favorite is Clojure Programming but I was already familiar with Lisps from years ago. Once you're up and running, pretty much everyone recommends The Joy of Clojure to really understand the "why" of Clojure.
I don't know of any online courses. I would recommend all of Rich Hickey's talks that you can find on video -- these provide a lot of insight into the motivations for Clojure and emphasize the focus on simplicity which is core to writing good Clojure.
Also, from what i understand Clojure is, so called, "modern Lisp". But what are the key differences between CL and Clojure?
I'm not very familiar with Common Lisp specifically but Clojure is "more functional" in that it has immutability by default, whereas CL has mutable data as a 1st class citizen. In addition, Clojure's syntax is richer -- using { } and [ ] as well as parentheses -- which makes it easier to read (in many people's opinions), as well as supporting a richer set of native data structures (hash maps, sets, vectors -- in addition to lists). Clojure also focuses on abstractions, such as "sequence", "counted", "associative", which makes it more powerful since functions can be applied uniformly and efficiently across different data types.
Is CL to old for using it in a modern enviroment or smth.? Or you can implement something, with Clojure, that you can't with CL?
If you want a fast, functional Lisp on the JVM, Clojure is going to be your best bet. If you want to learn a more traditional Lisp, supported by great tools, you could look at Racket.
Everything I do is on the JVM (and has been for nearly 20 years) so Clojure is the only way I can do Lisp programming and integrate it with everything else.