| I hear this a lot from the clojure community... but I think it's a missed attempt to pivot off the JVM and have clojure be useful for more people on a more popular platform. Missed? Yes. Pick a thing. Be excellent at it. What is clojurescript excellent at? Its a nice language, with not very nice tooling, that is hard to maintain and significantly different from the existing javascript code base you already have, with poor interop to the existing js ecosystem (it is poor, compared to some other compile to js languages). On the JVM, java sucks, but your choices are limited; what, maybe groovy, kotlin, scale, clojure? Clojure has pride of place as the best dynamic language in that space. For javascript, that crowd of alternatives is so much larger, clojurescript needs to actually be good to stand out amongst all the others. ...and I don't think it really does. The people who use it seem to just like it as a language; and I get that, that's a thing. ...but aesthetics are personal preference and its difficult to ague they make a compelling use case. |
The tooling is the best. Figwheel is hot reload that never goes down, devcards is revolutionary, and a browser repl for live in editor evaluation...
> significantly different from the existing javascript code base you already have
It actually isn't. Clojurescript is basically javascript that's immutable first, has underscore in it's core library, and then a bunch of other awesome language constructs. The libraries use the same patterns, re-frame is a nicer, more succinct abstraction over react-redux.
> poor interop to the existing js ecosystem
The interop might be the best out there. Seriously you can write javascript in clojurescript. you can straight up import es6 jsx javascript into your clojurescript code. (thanks Google Closure)
> For javascript, that crowd of alternatives is so much larger
I mean, what are the options? Clojurescript's benefits are so much more than the language. The real pluses for clojurescript are the Google Closure compiler, hot reload, browser repl, devcards, front end libraries. The language is the cherry on top. There are no alternatives that have a comparable platform not completely alien to JS developers.