The purpose of my question is not to start a fiery war, but rather to determine in what circumstances each language is "the best tool for work."
I have read several books on Clojure (Clojure Programming , Practical Clojure , Clojure Joy and the Manning Early Access Clojure version in action ) and I think it is a fantastic language. I am currently reading Let Over Lambda , which mainly deals with Common Lisp macros, and it is also a very interesting language.
I am not a Lisp expert (newbie), but this family of languages โโfascinates me, as does functional programming in general.
The advantages of Clojure (and the disadvantages of "others"):
Powered by JVM.
JVM is a very stable, high-performance language environment that goes well with Sun's dream: "Write once, run [almost] anywhere." I can write code on my Macbook Pro, compile it into a JAR executable, and then run it on Linux and Microsoft Windows with a little extra testing.
JVM (Hotspot et al.) Supports high-quality garbage collection and very efficient on-time compilation and optimization. Where, just a few years ago, I wrote everything that needed to be run quickly in C, now I'm not shy about doing it in Java.
Standard, simple, multi-threaded model. Does Common Lisp have a standard multi-threaded package?
The monotony of all these parentheses with [] , {} and #{} interrupts, although Common Lisp experts will probably tell me that with the help of reader macros you can add them to the CL.
Disadvantages of Clojure :
- Powered by JVM.
- No tail recursion or continuation. Does Common Lisp support continuation of continuation? I believe that the scheme requires support for both.
The advantages of others (general Lisp in particular) (and the disadvantages of Clojure):
Thoughts? Other differences?
comparison lisp clojure scheme common-lisp
Ralph May 15 '11 at 12:15 2011-05-15 12:15
source share