As far as embedding Clojure is concerned, another option is ClojureScript-Lua + LuaJit + C. I've recently started going through the CLJS-Lua source to see how viable this is.
I am holding off committing any serious effort until I see the talk at Clojure/West. C + Python + ClojurePy2 could fit most of my needs (even if I have to give up some speed and memory). Paul On Sunday, January 27, 2013 7:07:31 AM UTC-8, Mark Rathwell wrote: > > > Embedding in applications - Python is used very often as a scripting > language in 3d apps, games, mapping software, etc. I've yet to hear of the > JVM ever being used for this. > > Related to this, do you have any thoughts on the viability of > embedding clojure-py into a C++ application for similar use cases? > Seems that performance could be a concern, but sandboxing might be > more straightforward. > > Haven't had time to try this myself yet. > > Thanks. > > > On Fri, Jan 25, 2013 at 11:28 AM, Timothy Baldridge > <tbald...@gmail.com <javascript:>> wrote: > > > > The important question to ask yourself (and I'll cover this in my talk), > is why do you want native Clojure? > > > > A native implementation of Clojure will fail to deliver on several > fronts: > > > > Interop with systems - Java has one of the biggest ecosystems on the > planet > > > > Performance - The JVM JIT and GC are really the best that the world has > to offer. Beating them in the general use case is very, very hard. > > > > However, a native clojure implementation could succeed on a few other > fronts: > > > > Deterministic behavior - The JVM JIT/GC are not very deterministic, and > are hard to reason about. In this area they trade off simplicity for > performance. 99% of the time that is what you want. But perhaps in some > cases you would like different behavior. > > > > Embedding in applications - Python is used very often as a scripting > language in 3d apps, games, mapping software, etc. I've yet to hear of the > JVM ever being used for this. > > > > Systems where the JVM isn't available/allowed - think iOS > > > > So while I think there is a use for a non JVM/JS implementation of > Clojure, the use cases are much smaller than many think. > > > > I've gotten a bit sidetracked on the more general topic of generating > native code via Clojure and LLVM lately, so while my talk will show some > basic Clojure code running in the Python VM via LLVM, it will also cover > the more broad concept of leveraging LLVM directly from Clojure on the JVM. > > > > The latter is a prerequisite to the former, so the library I'll be > showcasing can be used for generating code for either situation. Should be > fun times for all! > > > > Timothy > > > > > > > > > > > > On Fri, Jan 25, 2013 at 9:08 AM, Tony Pitluga > > <tony.p...@gmail.com<javascript:>> > wrote: > >> > >> There are a couple projects that might be worth looking at although it > seems both have not been updated in a few months. > >> > >> ClojureC: https://github.com/schani/clojurec > >> Clojure-Scheme: https://github.com/takeoutweight/clojure-scheme > >> > >> > >> On Fri, Jan 25, 2013 at 10:35 AM, Nahuel Greco > >> <ngr...@gmail.com<javascript:>> > wrote: > >>> > >>> Check the clojure-py2 project, they plan to use LLVM to generate > native modules (as C compiled) for Python. When that objective is reached > probably you will have almost all the machinery to compile python-less > native binaries: > >>> > >>> http://lanyrd.com/2013/clojurewest/sccgmm/ > >>> > >>> > >>> Saludos, > >>> Nahuel Greco. > >>> > >>> > >>> On Fri, Jan 25, 2013 at 12:18 PM, Marko Kocić > >>> <ma...@euptera.com<javascript:>> > wrote: > >>>> > >>>> > >>>> > >>>> On Friday, January 25, 2013 6:12:07 AM UTC+1, Mikera wrote: > >>>>> > >>>>> A natively compiled Clojure would be very very interesting (perhaps > targeting LLVM?) > >>>>> > >>>>> However it would also be very hard to implement. Clojure depends on > a lot of features provided by the JVM (JIT compilation, interop with Java > libraries, garbage collection being the most significant ones). It would be > very hard to reimplement all of these from the ground up. The JVM is > already a very good host platform, why fix something that isn't broken? > >>>> > >>>> > >>>> What about native ClojuresScript? It doesn't have to implement > everything Clojure have already, and many people could consider it good > enough alternative to Clojure. I could personally live without runtime > macros and eval if it would gain me small and performant native executable. > >>>> > >>>>> > >>>>> Arguably the effort would be better spend improving the JVM with > extra features that would help Clojure (e.g. TCO). > >>>>> > >>>>> On Tuesday, 22 January 2013 00:29:54 UTC+8, octopusgrabbus wrote: > >>>>>> > >>>>>> I use Clojure primarily as a very reliable tool to aid in data > transformations, that is taking data in one application's database and > transforming it into the format needed for another applications' database. > >>>>>> > >>>>>> So, my question is would a natively compiled Clojure make sense or > turn the language into something that was not intended? In almost all > instances I have not found a problem with Clojure's execution speed so my > question is not about pro or anti Java. > >>>>>> > >>>>>> Thanks. > >>>> > >>>> -- > >>>> -- > >>>> You received this message because you are subscribed to the Google > >>>> Groups "Clojure" group. > >>>> To post to this group, send email to > >>>> clo...@googlegroups.com<javascript:> > >>>> Note that posts from new members are moderated - please be patient > with your first post. > >>>> To unsubscribe from this group, send email to > >>>> clojure+u...@googlegroups.com <javascript:> > >>>> 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 post to this group, send email to clo...@googlegroups.com<javascript:> > >>> Note that posts from new members are moderated - please be patient > with your first post. > >>> To unsubscribe from this group, send email to > >>> clojure+u...@googlegroups.com <javascript:> > >>> 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 post to this group, send email to clo...@googlegroups.com<javascript:> > >> Note that posts from new members are moderated - please be patient with > your first post. > >> To unsubscribe from this group, send email to > >> clojure+u...@googlegroups.com <javascript:> > >> For more options, visit this group at > >> http://groups.google.com/group/clojure?hl=en > >> > >> > > > > > > > > > > -- > > “One of the main causes of the fall of the Roman Empire was that–lacking > zero–they had no way to indicate successful termination of their C > programs.” > > (Robert Firth) > > > > -- > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to clo...@googlegroups.com<javascript:> > > Note that posts from new members are moderated - please be patient with > your first post. > > To unsubscribe from this group, send email to > > clojure+u...@googlegroups.com <javascript:> > > 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 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