I also do not think that this is a bad thing.

First, I don't see the many implementations of lisp as a "mistake". They 
are all bound together by the language standard, which is good enough for 
compatibility, meaning that most of the time you won't need to use 
implementation specific features. And even if you do need, there are 
libraries to help you out (check out threads in lisp). So, 99% of the time, 
it doesn't matter what implementation you use. And this is a good thing, 
because you have a choice.

 This is not true for scheme where the standard is small, and each 
implementation is forced to define it's own thing in many areas. But that's 
on purpose since scheme has other goals.

Clojure is a different story. Clojure is designed to be a hosted language. 
It's meant to live on an existing platform, which in other words means that 
it tries to be as close as possible to its ideal, but it will obey the 
constraints of the platform where required (e.g. multimethods vs protocols: 
protocols are preferred because they are fast on the JVM).

The fact that there are many clojure implementation is a good thing. It 
means you can choose to use the language no matter on what platform you 
are. The fact that they are incompatible is on purpose, because clojure 
considers that efficient implementation and easy access to the platform is 
more important than keeping a standard around. As a consequence you will 
never be able to take a ClojureJVM code and compile it on the CLR without 
modifications.

There is one aspect that could be considered as negative: ClojureJVM was 
the first and is the main implementation, while all others try to be as 
close to it as possible. This means that you are likely to end up having 
constructs which are idiomatic to the jvm in the other implementation, 
where they might not make much sense. We could argue whether that really 
happened and what would it's impact be, but the fact remains that there is 
no standard, and the implementation is free to introduce an 
incompatibility, should it consider that it's worth the effort.

duminică, 2 iunie 2013, 13:16:25 UTC+3, Michael Klishin a scris:
>
> 2013/6/2 Zed Becker <zed.b...@gmail.com <javascript:>>
>
>> Common lisp also commited the same mistake back in the past
>
>
> I'm not convinced it is a mistake.
>
> There are only 3 implementations that are actually used in production
> and feature complete: Clojure, ClojureScript, ClojureCLR. They are
> largely developed by the same group of people and try to adhere
> to Clojure JVM semantics as closely as possible.
>
> Compilers that target Python, Lua, Ruby, C are nothing more than
> experiments and breakable toys at this point.
>
> What specific issues with those 3 implementations you
>  consider to be real problems that affect production users?
> -- 
> MK
>
> http://github.com/michaelklishin
> http://twitter.com/michaelklishin
>  

-- 
-- 
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/groups/opt_out.


Reply via email to