So switching to clojurescript adds a few constraints, which personally, I’m not thrilled about.
- clojurescript is compiled into a fairly ugly bunch of obfuscated code, which is what one is dealing with whenever any debugging is in order.
- it adds the google closure library to the dependencies, even if you’re just adding a couple of effects.
- any moderately heavy client-side stuff usually needs some performance optimization, this means twiddly js stuff. Shall I use this function instead of this other? Shall I avoid this loop in favor of something else? This is made markedly more difficult when having to deal with a layer of indirection between the code you’re working on and the code actually running on the browser.
- let’s not mention producing cross-browser compatible code, IE hacks are not nice and lispy, however you turn it.
I admit I’m sometimes a curmudgeon and resistant to change, so as always, happy to hear any arguments as to why I might be glaringly wrong.