I have been a Clojure newbie for over 3 years now and here is why I am still using it:<p>1. Clojure code makes sense to me : I could go back to Clojure code someone wrote three years ago and I would have no problem in figuring out what the code was doing. With Java or Javascript, unless the code is documented with extreme diligence, the nuance are hard to decipher.<p>2. REPL based coding makes it easy to get code right before making it part of my namespace<p>3. lack of strong typing has not been a stopper for me yet. Spec is good enough for my needs<p>4. State and concurrency : Its hard to screw up concurrency and state mutation with Clojure<p>edit: formatting
Here are the reasons I stopped using clojure (a phenomenal language) a year ago, in order of importance:<p>1. No C/C++ FFI.<p>2. Lack of a strong type system (clojure.spec almost solves this problem now, but when I quit this didn't exist yet).<p>3. Horrific startup times: although clojure itself is fast, its startup time isn't. This makes scripting in clojure unsatisfying. And you don't feel like a ninja when it takes 30 seconds to start a REPL. You can use clojurescript to target node to get around this, but then you cut yourself off to most of the powerhouse clojure libraries.<p>I now use Haskell (with C/C++ FFI). I do miss the homoiconicity (and slightly more concise syntax) of clojure. In my opinion Haskell and clojure are the two sexiest mainstream languages that you can get stuff done in.
Happy to see there are good learning resources for Clojure.<p>The more Clojure users out there, the better, since it is a Lisp language, and as more people learn and use Lisp, it will be more easy for them to also able to also use Scheme, Racket, Common Lisp, LFE and the other friends in the illustrious Lisp family.<p>This, in the same way people can easily learn C, Java, C++, Rust, by knowing just one of those four languages. Once you understand the syntax, it gets really easy.