Обновить
1
0

Пользователь

Отправить сообщение
>> динамических переменных
> Если очень надо, то есть QVariant / boost::variant

> Но практика показывает, что для большинства прикладных
> задач это не так уж и важно :(.
> Думаю, что AST (или макросы) и есть та вакуумная пушка

Нет, макросы всего лишь один из элементов CL. Это делают жизнь лучше. Но даже без них CL был бы лучше больше современных языков.
> ИМХО, преувеличение, вызванное недостаточным
> знанием других языков программирования

А у вас кажется не хватает знаний о CL ))

> динственное отличие современного C++ от Lisp в плане встроенных в язык
> функций — это отсутствие доступа к AST.

Ну что вы такое говорите. Как насчёт мультиметодов, рестартов, динамических переменных, MOP? Поверьте, разница огромна.
блин, куда-то не туда коммента пошёл (
Что такое «массовые лиспы»? Какие у них общие недостатки.

Ну да пустой разговор. Вряд ли кто-либо из программистов на CL согласится с тем, что Clojure хоть что-нибудь исправляет.
Вряд ли можно говорить о том, что Clojure исправляет «слабости», скорей это просто несколько другой язык с заметно отличающейся идеологией.
> написание собственной велосипедной реализации

О чем речь?
Думаю, что это удобная, но наивная точка зрения )
Да Грэм это вообще отдельная история.

Во-первых, то его приложение было гвоздями прибито к CLisp, медленной реализации.
Во-вторых, оно использовало «продолжения», т.е. просто не было масштабируемым.

Естественно, когда встал вопрос о другой нагрузке, то приложение надо было переписывать фактически полностью. На чём переписывать? Поскольку Грэма уже не было, то язык выбирали заново. Выбрали что знали лучше и что знали, что будет работать.

Ну, конечно, Грэм подаёт эту историю несколько по другому.
Да. Ну да они все примерно одинаковые )
Я когда писал lisper.ru, то дизайнера у меня не было и я сначала делал именно на встроенном языке. По результатам этого опыта и я пришел к шаблонам, как к оптимальному решению )
Ну так на шаблонах и получается же лаконичнее!

У генерации контента с помощью встроенного eDSL фактически вообще нет никаких преимущества. Я только для демонстрационных приложений объёмом в 10 строк использую cl-who.
Дизайнеру, как и самому программисту, проще и удобней редактировать код, максимально приближенный к целевой разметке.

Кроме того, в данном приложении автор использует библиотеку cl-closure-template. которая имеет ещё и совсем другие преимущества (хотя это и не важно для данного приложения), я писал об этом здесь
Ну так шаблоны же позволяют тоже самое, только они не забивают мусором основной код и их могу править дизайнеры.
Я пробовал так. В итоге когда перешёл на шаблоны, то был просто счастлив от того, насколько всё стало проще и яснее.

Вообще, с мнением, что контент надо генерировать через шаблоны я думаю согласится любой нормальный веб-разработчик, не зависимо от используемого им языка.
> Можно было и шаблоны описывать лисповыми конструкциями

На практике получается просто жуть.
Безусловно. Только это другие языки. Не такие как CL. И сделано там метапрограммирование совсем по другому. Я говорю о том, что конкретно CL практически не реально сделать на основе другого синтаксиса.
Гипотеза неверная, проверенно на опыте.
Например, на этот основано метапрограммирование. Ньюансов много разных.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность