Pull to refresh
1
0
Send message
>> динамических переменных
> Если очень надо, то есть 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 практически не реально сделать на основе другого синтаксиса.
Гипотеза неверная, проверенно на опыте.
Например, на этот основано метапрограммирование. Ньюансов много разных.

Information

Rating
Does not participate
Registered
Activity