I like Clojure for many reasons, the main one is obviously REPL. When people say: "Python has a REPL", "nodejs has a REPL", etc. they don't understand what is it so special about Lisp, why Lispers claim that other (non-lispy languages) don't have "real" REPLs. You have to be a Lisper to understand what makes Lisp REPL more "real" and the others merely "interactive shells". Being able to evaluate any structure without any preceding ceremony is invaluable. Add immutable data structures on top of that and you'd understand why people choose Clojure.<p>Other reasons:<p>- Spec - people dismiss Clojure because it is dynamically typed, without even checking out Spec. You can do things with Spec that most static type systems simply can't do. Also property based, generative testing derived from specs is so cool.<p>- Clojurescript. It is probably the most "production" ready alt-js language. I've used Coffescript, Typescript, Livescript, GorillaScript, IcedCoffescript, GHCJS, Babel, Traceur, looked into Purescript, Elm and ReasonML. Clojurescript today is truly the only practical choice.<p>- Stability. I don't know any other language ecosystem, where you can grab any old library, update a bunch of dependencies and still have a high chance for everything to work.<p>- Consistency. Clojure's standard library is pretty nice and predictable. Nothing can really compare to it, even Python's famous "batteries". Javascript doesn't even have standard library, instead you have to choose from lodash, immutablejs, folktale, rambda, crocks, sanctuary, fantasyland, etc. etc. Sometimes people keep them all in the same codebase. Because of that consistency in clojure.core functions, you can actually share code between front-end and back-end.<p>- JVM. People dismiss Clojure, because it is hosted on JVM, but they overlook the fact that JVM is very mature, extremely well-done piece of technology. Try deploying, maintaining and scaling nodejs clusters. It's not fun.<p>- Syntax. Do you know how big is the precedence table in Javascript? It's like over 25 items in it. Clojure doesn't have a precedence table. No need for it. Do you know how many things can be falsy in Javascript? Six. In Clojure - only two. Javascript has 64 reserved words. Clojure has none. This all makes things so much simpler.