Clojure против других Lisp [закрыто]

) Цель моего вопроса - не , чтобы начать войну пламени, а скорее определить, при каких обстоятельствах каждый язык является «лучшим инструментом для 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 :

  • Работает на JVM.
    • Нет хвостовой рекурсии или продолжений. Поддерживает ли Common Lisp продолжения? Я считаю, что схема требует поддержки обоих.

Другие преимущества (в частности Common Lisp) (и недостатки Clojure):

  • Определяемые пользователем макросы чтения.

  • Другие преимущества?

Мысли? Другие отличия?

87
задан 3 revs, 2 users 100% 15 May 2011 в 16:46
поделиться