Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

you are wrong.The closure compiler is written in java. it is a fact of life that you need the jvm.


You're misunderstanding me, I know closure is written in Java. But closure is not the slow part. I timed doing lein cljsbuild once and it takes like 22 seconds; that's not Closure. That's Clojure itself. ClojureScript would be much faster, it has virtually none of the slowness that JVM Clojure has.


it sounds to me that the jvm is not kept running and you are paying a startup cost each time.

Transpiling a bucket load of any language in a warm jvm will be less than 2-3 seconds, and could easily be done on page refresh.

to give you some perspective, we have massive closure apps, first compilation on my (very powerful) desktop takes a minute 30 seconds or so (advanced optimizations and several other extremely stringent flags along with quite a few compiler plugins we wrote) keeping the jvm warm, and compiling with these same flags + plugins, the time comes down to under 5 seconds.


JVM startup time is slower than a lot of VMs, but it's not that slow. Write a hello world in Java and see how long it takes, I'd guess 100ms or so. Do the same in Clojure and you're looking at 3-4 seconds.

This is a good analysis of why Clojure startup is slow: http://nicholaskariniemi.github.io/2014/02/25/clojure-bootst...

This is why I think ClojureScript/Node should become the "default" environment for writing Clojure. It would open up Clojure to a new class of apps that are currently not practical.


A hello world in java however has next to zero depedencies. The jvm startup is notoriously slow keeping your jvm warm yields excellent results. Just try it please. Things like nailgun exist for this exact reason.

I can't see them porting the cross compilation of clojurescript to node.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: