I&#x27;ve used clojurescript commercially for a couple of years. It has been a good experience.<p>More than anything it has completely changed my world view (and I&#x27;m a very experienced, older programmer who has seen a bit).  I feel very lucky to have had this opportunity.<p>IMO, some of the issues you raise are genuine, some not.<p>For example, the JVM startup time issue is never, ever a problem. If it is, you aren&#x27;t using the tools right.<p>I use Cursive and figwheel etc,  so I find the tooling generally fine and in many ways excellent. The trajectory in this area is good.<p>Debugging initially can be rough. Knowing about things like cljs-devtools can dramatically improve things. But, yeah, valid point.<p>And, yes, poor error messages can definitely be a problem initially -- although this has improved over the last year.<p>To get going, I&#x27;d recommend you use this set of technologies:<p>- use Cursive&#x2F;InteliiJ  <a href="https:&#x2F;&#x2F;cursiveclojure.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;cursiveclojure.com&#x2F;</a><p>- use reagent, rather than om.  <a href="http:&#x2F;&#x2F;reagent-project.github.io&#x2F;" rel="nofollow">http:&#x2F;&#x2F;reagent-project.github.io&#x2F;</a><p>- use figwheel<p>- use cljs-devtools with Canary for debugging<p>- use Schema to provide faint typing - <a href="https:&#x2F;&#x2F;github.com&#x2F;Prismatic&#x2F;schema" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Prismatic&#x2F;schema</a><p>- perhaps use clairvoyant for debugging <a href="https:&#x2F;&#x2F;github.com&#x2F;spellhouse&#x2F;clairvoyant" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;spellhouse&#x2F;clairvoyant</a><p>- use timbre  for logging <a href="https:&#x2F;&#x2F;github.com&#x2F;ptaoussanis&#x2F;timbre" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ptaoussanis&#x2F;timbre</a><p>- use re-frame <a href="https:&#x2F;&#x2F;github.com&#x2F;Day8&#x2F;re-frame" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Day8&#x2F;re-frame</a> (if the app is slightly more complex)    &lt;--- warning I&#x27;m biased<p>- perhaps use re-com - <a href="https:&#x2F;&#x2F;github.com&#x2F;Day8&#x2F;re-com" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Day8&#x2F;re-com</a>   &lt;--- warning I&#x27;m biased<p>- you may also be interested in the head start provided by  <a href="http:&#x2F;&#x2F;www.luminusweb.net&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.luminusweb.net&#x2F;</a> for client&#x2F;server<p>-<p>Perhaps just start here:  <a href="https:&#x2F;&#x2F;github.com&#x2F;Day8&#x2F;re-frame-template" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Day8&#x2F;re-frame-template</a>  and work out.   (I&#x27;m biased)<p>Good luck.