Сравнивать их имеет смысл. Это всё же довольно разные по своей идеологии языки. Imho, схема развивается в чисто функциональном направлении, а CL идёт в сторону метопрограмирования и CLOS. Т.е. одни и те же действия схема провоцирует делать через рекурсивную чистую функцию, а CL --- через loop и подобные макроизвращения.
Scheme - Lisp 1(что создает неслабые неудобства в сколь-нибудь крупных библиотека/приложениях), в голом стандарте практически нихрена нет, реализации идут кто во что горазд, вменяемой переносимости, соответственно - ноль. Нет ни CLOS, ни сигнального протокола, ни ридер-макросов, ни компилер-макросов, ни специальных переменных, ни UNWIND-PROTECT(aka Finally, aka RAII), ни опциональных деклараций типов(как и вообще деклараций), ни компилятора в составе рантайма, ни даже динамических массивов, зато есть непонятно нахрен нужные продолжения, кастрированная макросистема(«гигиена» - можно подумать, программисты на схеме столько срут, что не могут за собой все убрать самостоятельно) и отдельное значение для False(которое не равно NIL - соответственно при работе со списками сплошные неудобства).
Схема лучше! Для неё есть бесплатные графические IDE, а для коммон лиспа из бесплатных есть только обрезанные, где даже приложение скомпилировать нельзя, либо привет из прошлого тысячелетия под названием емакс.
Ну есть ещё плагин для Эклипс, но нафиг такой язык нужен, уж лучше сразу писать на джаве, для которой Эклипс и создавался, и лучше всего поддерживает.
Тех, кто решит изучать это ваш хвалёный лисп, и столкнётся с необходимостью выбора IDE. Нормальной бесплатной IDE, как уже говорил, нет, а ваш хвалёный емакс, который в каждую дыру суют, обладает удобностью управления, как у угольного паровоза.
Это такая псевдо-анти-лисповая кампания, чтобы новичков отвернуть? :)
Щас ещё ANSI Common Lisp на русском издавать начнут, и от желающих лопатой не отмашешься. Пока не поздно, нужно молодёжи открыть глаза на реальное положение вещей. Не дай бохх кусок хлеба с маслом и икрой отберут.
Вот! Понимаешь! А то развели тут рекламу: самый мощный, самый лучший...
Хм... а как насчет старого чудо «накормить 5к человек одним куском хлеба с икрой»? Я думал, что после всех вещей, которые изобрели лисперы, такое им раз плюнуть?
> Нет ни CLOS, ни сигнального протокола, ни ридер-макросов, ни компилер-макросов, ни специальных переменных, ни UNWIND-PROTECT(aka Finally, aka RAII), ни опциональных деклараций типов(как и вообще деклараций), ни компилятора в составе рантайма, ни даже динамических массивов
зачем это всё, когда есть продолжения и нормальная система модулей, а не примитивные пакеты?
сейчас ещё придёт Архимагъ и расскажет тебе про метапрограммирование в CL (точнее процитирует цитату).
Хм... а как насчет старого чудо «накормить 5к человек одним куском хлеба с икрой»? Я думал, что после всех вещей, которые изобрели лисперы, такое им раз плюнуть?
Все мы понимаем, что лисперы только выёживаются, а браузеры до сих пор на C++ пишут, и не чешутся.
>зачем это всё, когда есть продолжения и нормальная система модулей
Ладно, продолжениями и модулями худо-бедно можно реализовать нечто вроде CLOS(которая будет дико тормозить), сигнальный протокол, и динамические переменные, если поизвращаться.
Но reader-macros, compiler-macros, декларации, компилятор в рантайме, динамические массивы(в т.ч. гомогенные), и, особенно, unwind-protect то как?
а не примитивные пакеты?
Для модульности же есть ASDF. А пакетов хватает для тех целей, для которых они предназначаются(коллекции символов)(не, ну круто конечно было бы иерархические пакеты, да).
Сравни подачу материала с тем, как это делается в PCL.
В последнем первые пол книги в каждом разделе куча оговорок типа «это вот так, потому что это так, а что это зачем и почему я объясню позднее». В СИКПе же такого и близко нет, объяснили порядок редукции лямбда-термов и попёхали программить в полный рост.