Really interested by this. The startup time has always been a big no-no every time I was tempted to use Clojure on Android.
On Friday, November 21, 2014 12:50:58 PM UTC-5, Uday Verma wrote: > > Hello Everyone, > > I was at this pretty interesting meet-up yesterday where Sam Beran [1] > showed how he achieved 30ms startup times on Android using Clojurescript. > He was not hosting his app inside a web view, it was a native java app. > > We all know and understand why clojure runtime bootstrap is "heavy" [2]. > It is definitely not feasible at all on Android, and I feel Sam is onto > something here. > > Sam took a round about way to solve this problem which I think is > incredible. I have requested Sam to write a blog post about this so that > interesting rhetoric can begin. > > Basically the approach is this: cljs -> js -> rhino [3] -> bytecode. > Provides java interop through rhino. By the time things get to rhino, > google closure has already thrown away most of the runtime away since we > didn't use it, and we end up with manageable amount of JS which is compiled > to manageable amount of byte code. All of jvm is still available. > > I do feel that having JS as an intermediate layer has certain > disadvantages when we want to target jvm (e.g. threading), but overall I > wanted to get a feel of what everyone thinks about this, may be insights > into this as to why this is or isn't a great idea. I understand that I am > not doing justice to Sam's efforts here by mentioning it in just one line > above, but I am hoping a more detailed blog post will help! > > I have a feeling that this approach can do certain things for me and the > Clojure community in general: > > - Makes it easy to sell adoptability to people, write code once, run on > Web or JVM (what JS sort of does with node.js). > - Fast startup times mean that we can write single shot command line apps > and short lifespan programs, right now Clojure bootup is a major thing > holding at least me back from doing this. "Oh man its takes forever to run". > - May be we can figure how to convert existing investment and effort > spent into writing Clojure libraries into this approach? > > Looking forward to hearing back. > > Relevant twitter thread: > https://twitter.com/samberan/status/523929208595025920 > > Thanks, > Uday > > [1] https://twitter.com/samberan > [2] > http://nicholaskariniemi.github.io/2014/02/25/clojure-bootstrapping.html > [3] > https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino/JavaScript_Compiler > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.