Raymond Tong wrote:Clojure as a Dialect of Lisp. Would you think it would be good to learn Clojure (or Lisp) even I may not write Production code with it?
Clearly having experience with Scala and Haskell you are already ahead of the game however you may be interested following the blog entry (keeping in mind that Cognitect is "Clojure Central"):
2 Myths and 2 Facts about Clojure that change Everything
In particular:
There may be fewer Clojure developers than developers in some languages - but you only need to hire a few of them
I often hear that it is easier to introduce Scala into a Java shop as a "better Java" but that goes back to what Rich Hickey states in his "
Simple Made Easy" talk. Scala looks more "familiar" to Java programmers, so it seems "easier" than Clojure but that doesn't mean that Scala is "simple". Neal Ford stated in a tongue-in-cheek manner that "Scala will be the next Big Thing on the JVM because it fetishizes complexity exactly the way that Java Developers are used to."(
(Neal's) Master Plan for Clojure Enterprise Mindshare Domination). In the past lots of places introduced C++ as a "better C" but that didn't necessarily improve their codebase nor by default create brilliant C++ developers. So I'm a bit doubtful that adoption of Scala will lead to a wholesale adoption of functional programming principles - it simply makes things easier for those who are trying to adopt them anyway. Learning Clojure shouldn't be any
harder than learning Scala or Haskell; Clojure (Lisp) is just "different".
Personally I used to prefer that the compiler told me when I messed up so I was a a big fan of static typing. It wasn't until I moved more into JavaScript that I felt liberated from the boilerplate of static typing because it made it much easier to exploit
polymorphism via duck typing. Clojure can be similarly liberating but you can use something like
Prismatic Schema to type check were it is helpful or necessary.
(
PolyConf 15: Contracts as Types / Jessica Kerr).
At first you don't need to use Clojure "in production" - seems some places use it initially for scripting tasks until they get more comfortable with it. See also
Sneaking Clojure Past the Boss and
Selling Clojure to the Business.