His experience matches most of mine:
I've been learning & trying to use clojure(script) for ~2 years now.
A few things I miss in every other languages:
- The REPL: I usually don't need a debugger,
- Figwheel: that makes frontend dev a pleasure,
- reagent/reframe: are incredibly straightforward, there's no special syntax, no special constructs, just a few functions, a few concepts (dispatch / subscribed) and you're done,
- core.async: based on a simple channels / pipeline paradigm
But then you get into the practicalities of testing & writing code. Shady special cases[1][2], annoying testing tools[3], useless stack traces. And other issues everybody knows. Simple things that become a 30 min discussion with 3 different libraries and 2 blog articles to go through[4].
To me, there's this hardcore group of clojur'ist that seems to be hyper productive and keep introducing new concepts. And the "rest" (me at least), that are floundering.
You fight with useless stacktraces? Boom, transducers. You deal with buggy test runners? Bam, a new specification library with test generations.
I've started moving my code to ES6 and Go. The community is filled with helpful people, but it seems to me that if you're not writing Clojure professionally already, the language is becoming less and less relevant.
[1] https://github.com/replikativ/superv.async/issues/2#issuecom...
[2] https://clojurians-log.clojureverse.org/clojurescript/2017-0...
[3] https://github.com/bensu/doo/issues/134
[4] https://clojurians-log.clojureverse.org/clojurescript/2017-0...