why? seriously, is this the point that modern tooling has gotten to where for no apparent reason it has a node dependency?
why? seriously, is this the point that modern tooling has gotten to where for no apparent reason it has a node dependency?
And I expect the right implementation for many of these params will be running separate daemons anyway (eg. you clearly want one per user).
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.
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
One can even AOT to native code, if desired.
Second, it is a well known fact in the Clojure community since several years, that the blame lies in Clojure itself.
http://blog.ndk.io/jvm-slow-startup.html
https://dev.clojure.org/display/design/Improving+Clojure+Sta...
Its slow because a bare bones hello world takes 40ms in Java instead of 1ms in C. Its "slow" relative to other languages, but its not really that slow over all. I can use mvn without noticing that its slow, but leiningen takes multiple seconds to run a command.
Take a look at this image, taken from the link pjmlp posted: http://blog.ndk.io/img/jvm_vs_clojure.svg
Note that the Clojure team are working on improving this, but it will never be as fast as pure Java and certainly never as fast as other languages (including cljs on node)