Clojure on the backend is awesome because you can use mature, stable, pure Clojure libraries for almost everything and it works together beautifully.
ClojureScript on the other hand suffers from constantly having to interop with JS libs and tools, or trying to wrap them, with many wrappers being outdated or having a bus factor of 1.
I feel like the advantages of CLJS have eroded over the past few years:
- TypeScript has fully taken over, generalizing the advantages of static typing
- JS libraries have adopted functional patterns, narrowing the comparative advantage of CLJS
Clojure on the backend is awesome because you can use mature, stable, pure Clojure libraries for almost everything and it works together beautifully.
ClojureScript on the other hand suffers from constantly having to interop with JS libs and tools, or trying to wrap them, with many wrappers being outdated or having a bus factor of 1.
I feel like the advantages of CLJS have eroded over the past few years:
- TypeScript has fully taken over, generalizing the advantages of static typing
- JS libraries have adopted functional patterns, narrowing the comparative advantage of CLJS
- Tools like create-react-app have emerged to simplify project configuration, while CLJS is still figuring things out: https://clojurescript.org/news/2020-04-24-bundle-target