내 질문의 의도는 없습니다 불꽃 전쟁을 시작하는 것이 아니라 각 언어가 어떤 상황에서 결정하기 위해 "작업에 가장 적합한 도구입니다."
나는 Clojure에 관한 여러 권의 책을 읽었습니다 ( Programming Clojure , Practical Clojure , The Joy of Clojure , and the Manning Early Access edition of Clojure in Action ), 환상적인 언어라고 생각합니다. 저는 현재 Common Lisp 매크로를 주로 다루는 Let Over Lambda 를 읽고 있으며, 또한 매우 흥미로운 언어입니다.
나는 하지 로 일반적으로, 함수형 프로그래밍을한다 (더 초보자의) 리스프 전문가,하지만 언어의 가족은 정말 매력적.
Clojure의 장점 (및 "기타"의 단점) :
JVM에서 실행됩니다.
JVM은 "한 번 작성하면 [거의] 어디에서나 실행"이라는 Sun의 꿈을 잘 충족시키는 매우 안정적인 고성능 언어 환경입니다. Macbook Pro에서 코드를 작성하고 실행 가능한 JAR 파일로 컴파일 한 다음 추가 테스트없이 Linux 및 Microsoft Windows에서 실행할 수 있습니다.
(핫스팟 및 기타) JVM은 고품질 가비지 수집과 매우 성능이 뛰어난 Just-In-Time 컴파일 및 최적화를 지원합니다. 불과 몇 년 전만해도 C로 빠르게 실행해야하는 모든 것을 작성했지만 이제는 Java로 작업하는 것을 주저하지 않습니다.
표준, 단순, 다중 스레딩 모델. Common Lisp에 표준 멀티 스레딩 패키지가 있습니까?
모든 사람들 괄호의 단조 로움까지 휴식
[]
,{}
그리고#{}
, 커먼 리스프 전문가는 아마 독자 매크로와 함께, 당신은 CL에 사람들을 추가 할 수 있음을 말해 것이다 있지만.
Clojure의 단점 :
- JVM에서 실행됩니다.
- 꼬리 재귀 또는 연속이 없습니다. Common Lisp는 연속을 지원합니까? Scheme은 두 가지 모두에 대한 지원이 필요하다고 생각합니다.
기타 장점 (특히 Common Lisp) (및 Clojure의 단점) :
사용자 정의 가능한 판독기 매크로.
다른 장점?
생각? 다른 차이점?