I have been a full stack developer for 8 years. In the recent days I am getting a feeling that there's something missing in languages like JS/Python. Because some of the work I feel is redundant.<p>I have heard about clojure and I often hear it enables to write code in a way that takes of redundant code and increase productivity.<p>Is it worth investing time to learn clojure for the sake of increasing productivity? Is it a significant increase?
Its not a magic bullet. It will take a while (possibly years, depending on how often you use it) before you can claim any productivity boost. It also depends on the nature of problems you use it for, for example its difficult to beat the productivity of Ruby on Rails for a CRUD heavy application (unless you invest in a setup that works for you upfront)<p>Things that will negatively impact productivity when you first start (assuming they are new to you)<p>- Unlearning the OOP way<p>- The LISP syntax<p>- Learning about all the core functions<p>- Functional paradigm<p>- Finding and learning the right libraries<p>- Structuring your code<p>- Tooling and Editor support (very much needed to be productive) and REPL workflow<p>- Context switching between Clojure and other languages<p>- Familiarity with the JVM ecosystem and Java error messages<p>Now that that’s out the way, many of the things I listed are the same things that contribute to Clojure’s productive reputation, once you get over the initial hump, which can take a while for some.<p>Additional things that only contribute to productivity:<p>- Well thought out data structures and use of the same set of functions (map, reduce, assoc, conj, etc.) to operate on them.<p>- Simpler and safer concurrency support<p>- The entire set of JVM libraries at your disposal, you don’t need to wait for a Clojure version.<p>- REPL driven development<p>- One language for the full stack if you want it<p>- Great interop with host languages (Java, JS)<p>Im probably forgetting a bunch of stuff but i’m typing this on my phone on the move.