[identity profile] cross-join.livejournal.com 2014-10-07 09:29 am (UTC)(link)
Пример из "системы макросов для Лиспа" может быть легко реализован без Лиспа, средствами макропроцессора.
Многократно использовал на практике.
http://arbinada.com/main/node/572

[identity profile] jakobz.livejournal.com 2014-10-07 10:00 am (UTC)(link)
А зачем реализовывать без лиспа, если можно на лиспе? Да и кроме лиспа есть дофига языков, на которых всякие eDSL реализуются лучше, чем на каком-то заповедном макро-языке.

Учитывая насколько SQL и прочие plSQL бесчеловечны, ущербны, и блевотны, и насколько лиспы удобны для всяких таких метапрограммерских штук, считаю что решение генерировать из лиспа SQL и заодно писать на нем остальную серверную логику - очень разумное. Немного джедайское, но если уметь - окупится сторицей.

[identity profile] cross-join.livejournal.com 2014-10-07 10:06 am (UTC)(link)
А зачем реализовывать на Лиспе, если можно без Лиспа, обычным препроцессором?

[identity profile] metaclass.livejournal.com 2014-10-07 10:17 am (UTC)(link)
Препроцессор математически не гуманен.

Все эти корявые строково-файловые недоязыки (препроцессоры, баши, сборочные системы и прочее такое) вечно пишут в стиле "ой, нам тут DSL для костылей очередной понадобился, давайте напишем как умеем". А потом там то scope переменных вида "переменные окружения видны везде, а внутренние переменные нужно передавать явно, хотя неймспейс один на всех", то в подпроцедуры параметры передаются в виде $1 $2 $3 и прочее такое.
В лиспе с хаскелем хотя бы система видна, у остальных же адхок содомия.


[identity profile] cross-join.livejournal.com 2014-10-07 10:23 am (UTC)(link)
Отличия между реализацией предметного языка на препроцессоре или на Лиспе очень небольшие и непринципиальные. В обоих случаях - адхок-надстройка
Вот если проектируется свой язык с грамматикой и транслятором - тогда да.

[identity profile] jakobz.livejournal.com 2014-10-07 10:17 am (UTC)(link)
Ну, например потому что лисп (или какой-либо еще язык программирования), все-равно нужен в проекте - значит разработчики знают синтаксис, наверняка возможен какой-то реюз кода, проще интеграция в инфраструктуру, полноценный язык имеет больше фичей и таит меньше загадочных сюрпризов.

[identity profile] cross-join.livejournal.com 2014-10-07 10:21 am (UTC)(link)
Это не так. Языком является система макросов, которую можно реализовать как препроцессором, так и на Лиспе. Во втором случае знание Лиспа является дополнительным условием, усложняющим разработку.