A few things to consider:

1. Performance is a key consideration. The speed of the compiler is a major 
determinant of startup time for Clojure applications, which is very 
important to many people. Having the compilker written in Java probably 
helps a lot here - it is generally easier to write high performance JVM 
code in pure Java. Yes, it's also possible to write fast code in Clojure, 
but it typically isn't idiomatic and is much harder to write / maintain. It 
would be quite a challenge to write a compiler with equivalent performance 
in pure, idiomatic Clojure.
2. YMMV but while I find that Clojure is extremely productive for writing 
new code, it really helps to have a type system when maintaining code. When 
maintaining a complex beast like the Clojure compiler, I don't think 
Clojure is actually going to be much better than well-written Java in this 
regard.
3. The bits of Clojure that users interact with directly (clojure.core 
etc.) are mostly already written in Clojure. Curious folks can still 
examine the Clojure source code for the core functions. The Java stuff is 
mostly around the compiler and implementation details of data structures 
etc.

Personally, I think this falls into the "if it isn't broken, don't fix it" 
category.....

On Monday, 24 August 2015 23:23:07 UTC+8, William la Forge wrote:
>
> Well gosh, Timothy, isn't Clojure code easier to maintain/extend than Java 
> code? There's a lot less boiler plate at least. Or is it just that Clojure 
> is superior mostly when multi-threading because of its use of immutables?
>
> Are you really saying that Clojure is not an advantageous choice for 
> implementing Clojure? Perhaps as a newbie I'm just oversold on Clojure? Or 
> are you just taking a short-term view and saying that a rewrite would carry 
> no IMMEDIATE advantages. Of course, the counter for that is that a rewrite 
> ALWAYS carries immediate advantages. :D
>
> On Monday, August 24, 2015 at 11:10:05 AM UTC-4, tbc++ wrote:
>>
>> " I would think that having Clojure implemented entirely in Clojure 
>> would have a number of advantages."
>>
>> I think that's the place you should start. List those advantages. 
>> Clojure-in-Clojure would be a "nice" thing to have...but I can't really 
>> think of any major features it would enable that aren't possible in Clojure 
>> already.
>>
>> One thing that would be nice to have would be to switch Clojure's Java 
>> interfaces over to protocols, e.g. `Counted` could be a protocol instead of 
>> a interface. But that could be done on the existing codebase, without the 
>> need for a full rewrite. 
>>
>> Timothy
>>
>> On Mon, Aug 24, 2015 at 9:03 AM, William la Forge <lafo...@gmail.com> 
>> wrote:
>>
>>> Step 2 in the classical bootstrap process for a language is to rewrite 
>>> it in itself. Clojure is more than capable of this. But Clojure continues 
>>> to rely on Java code for its implementation.
>>>
>>> Is there a reason why this was not done? Efficiency issues? A rush to 
>>> create something usable? I would think that having Clojure implemented 
>>> entirely in Clojure would have a number of advantages.
>>>
>>> I am sure there was a deliberate decision, not to complete the bootstrap 
>>> process. Is this documented anywhere?
>>>
>>> Just being a nosy newbie.
>>>
>>> -- 
>>> 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
>>> 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
>>> 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+u...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> -- 
>> “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 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.

Reply via email to