> 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 <tbaldri...@gmail.com> 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.pitl...@gmail.com> 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> 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> 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 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 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 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 >> >> > > > > > -- > “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 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 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