Maybe I don't understand what the alternative is when you want to write client side code for the browser - js?? I use Clojurescript and find clear benefits.
By way of example I often found the general setTimeout functionality to be a nightmare for scheduling delays. Most of the time it works, but periodically I find it blocks or fails (via a dependancy chain) and then have to spend time arranging code abnormally to mitigate. In clojurescipt I use core async.
(defn timeout [ms]
(let [c (async/chan)]
(js/setTimeout (fn [] (async/close! c)) ms)
c))
Never looked back. Never had a delay problem - Ever.cljs core.async and many other features have made it so much more enjoyable to write client side code. Don't even get me started on callbacks.
> Oh, and one last thing. I feel it’s obligatory at this point for me to say, please don’t spend too much time researching Scheme dialects. Just pick Racket and start coding
I've had the opposite experience so thanks, but no thanks.