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


Reply via email to