История изменений
Исправление monk, (текущая версия) :
Я вообще считаю, что динамика имеет право на жизнь исключительно в виде Lisp.
Про Lisp согласен, про именно Common Lisp — не очень.
1. Не продуманный (или устаревший) стандарт. Про eval-when мы тут уже обсудили. Ещё есть разный порядок аргументов у elt и nth, разные стандарты именования у fdefinition, funcall, function-lambda-expression. Отсутствует стандарт на слабые ссылки, потоки. Нельзя сделать коллекцию, чтобы с ней работал elt.
2. Система пакетов. Символы приходится или писать через имя пакета (как рекомендует google) или они должны быть совсем уникальны (например с префиксом, зависящим от пакета). Если писать через имя пакета, то хочется имя пакета сделать покороче. Но имя пакета должно быть уникально. Мой advanced-readtable как раз был попыткой решить эту проблему хотя бы для себя — я вводил возможность локального псевдонима для пакета.
3. Процесс компиляции. ASDF — ужас. Fare пытался написать XCVB. Но распространения он не получил.
4. (Следствие пункта 1). Для каждого более-менее крупного фреймворка разработчики пишут свой «Lisp» на макросах на базе CL. Например, hu.dwim.*. Так как синтаксис дублирует стандартную библиотеку, то это очень бесит некоторых разработчиков.
Исходная версия monk, :
Я вообще считаю, что динамика имеет право на жизнь исключительно в виде Lisp.
Про Lisp согласен, про именно Common Lisp — не очень.
1. Не продуманный (или устаревший) стандарт. Про eval-when мы тут уже обсудили. Ещё есть разный порядок аргументов у elt и nth, разный стандарты именования у fdefinition, funcall, function-lambda-expression. Отсутствует стандарт на слабые ссылки, потоки. Нельзя сделать коллекцию, чтобы с ней работал elt.
2. Система пакетов. Символы приходится или писать через имя пакета (как рекомендует google) или они должны быть совсем уникальны (например с префиксом, зависящим от пакета). Если писать через имя пакета, то хочется имя пакета сделать покороче. Но имя пакета должно быть уникально. Мой advanced-readtable как раз был попыткой решить эту проблему хотя бы для себя — я вводил возможность локального псевдонима для пакета.
3. Процесс компиляции. ASDF — ужас. Fare пытался написать XCVB. Но распространения он не получил.
4. (Следствие пункта 1). Для каждого более-менее крупного фреймворка разработчики пишут свой «Lisp» на макросах на базе CL. Например, hu.dwim.*. Так как синтаксис дублирует стандартную библиотеку, то это очень бесит некоторых разработчиков.