) Цель моего вопроса - не , чтобы начать войну пламени, а скорее определить, при каких обстоятельствах каждый язык является «лучшим инструментом для job. »
Я прочитал несколько книг по Clojure ( Programming Clojure , Practical Clojure , The Joy of Clojure и издание Manning Early Access из Clojure в действии ), и я думаю, что это фантастический язык. В настоящее время я читаю Let Over Lambda , который в основном имеет дело с макросами Common Lisp, и это тоже очень интересный язык.
Я не эксперт по Лиспу (скорее новичок), но это семейство языков очаровывает меня, как и функциональное программирование в целом.
Преимущества Clojure (и недостатки «других»):
Работает на JVM.
JVM - это очень стабильная, высокопроизводительная языковая среда, которая вполне соответствует мечте Sun о «Пишите один раз, запускайте [почти] где угодно». Я могу написать код на своем Macbook Pro, скомпилировать его в исполняемый файл JAR, а затем запустить его в Linux и Microsoft Windows с небольшим дополнительным тестированием.
JVM (Hotspot и другие) поддерживает высококачественную сборку мусора и очень производительную своевременную компиляцию и оптимизацию. Если всего несколько лет назад я написал все, что должно было работать быстро, на C, теперь я без колебаний делаю это на Java.
Стандартная простая многопоточная модель. Есть ли в Common Lisp стандартный пакет многопоточности?
Разбивает монотонность всех этих скобок с помощью []
, {}
и # {}
, хотя эксперты Common Lisp будут возможно, скажите мне, что с помощью макросов для чтения вы можете добавить их в CL.
Недостатки Clojure :
Другие преимущества (в частности Common Lisp) (и недостатки Clojure):
Определяемые пользователем макросы чтения.
Другие преимущества?
Мысли? Другие отличия?