And I expect the right implementation for many of these params will be running separate daemons anyway (eg. you clearly want one per user).
But many parts of code are platform agnostic. I think it would be cool to eventually port the system specific parts to java apis and have both.
(require 'cider)
(setq cider-cljs-lein-repl
"(do
(require 'figwheel-sidecar.repl-api)
(figwheel-sidecar.repl-api/start-figwheel!)
(figwheel-sidecar.repl-api/cljs-repl))")
Then I just use figwheel to manage my cljs projects (I think this is the default now for reagent and luminus projects, it's also the default for re-natal for react native development in cljs). Life is pretty good and I have a nice debugger via Chrome.I prefer the debugger in CIDER (which doesn't work for cljs) to the debugger in Chrome, but the Chrome debugger is decent (and it's what I'd have in Javascript anyway). There is a nice chrome extension to help with clojurescript eval in the browser/debugger called dirac: https://github.com/binaryage/dirac
Theres no meaningful reason to use cljs other than to avoid java or if the java runtime isn’t available (eg. browser).
lumo/cljs is instantaneous
The downsides are pretty darn significant though. I can’t imagine a situation where I would trade ‘starts a bit faster’ for ‘throw away all parallelism in code’ personally... but hey. Plenty of people use node for very serious stuff.
I suppose I just think this is an example of fast and cheap on the fast/cheap/good scale.