I’m a web developer.
My experience learning Clojure was that it is very hard to read. After a year of writing it, it still hasn’t really clicked with me.
I can read it, but it requires significant focus and wording out what is happening in the code for my brain to grasp it.
Code written in Clojure relies on the reader understanding what will happen with the arguments provided to the function.
This makes it very hard to read. I’m guessing that this is a problem every Lisp has, but so far I’ve only worked with Clojure.
A very basic example to make my point:
(if (= 0 0) true) // Clojure
if (0 == 0) return true; // JS
One of these examples are readable (as PLAIN ENGLISH) while the other one requires previous knowledge.
This is a massive con of the language.
Everything is like this in Clojure.
(conj [1 2 3] 4) // Clojure
[1, 2, 3].push(4) // JS
Clojure is a great learning experience (immutability, small functions, avoidance of side-effects etc) but I am yet to discover a suitable project for it.