Все эти корявые строково-файловые недоязыки (препроцессоры, баши, сборочные системы и прочее такое) вечно пишут в стиле "ой, нам тут DSL для костылей очередной понадобился, давайте напишем как умеем". А потом там то scope переменных вида "переменные окружения видны везде, а внутренние переменные нужно передавать явно, хотя неймспейс один на всех", то в подпроцедуры параметры передаются в виде $1 $2 $3 и прочее такое. В лиспе с хаскелем хотя бы система видна, у остальных же адхок содомия.
Отличия между реализацией предметного языка на препроцессоре или на Лиспе очень небольшие и непринципиальные. В обоих случаях - адхок-надстройка Вот если проектируется свой язык с грамматикой и транслятором - тогда да.
Ну, например потому что лисп (или какой-либо еще язык программирования), все-равно нужен в проекте - значит разработчики знают синтаксис, наверняка возможен какой-то реюз кода, проще интеграция в инфраструктуру, полноценный язык имеет больше фичей и таит меньше загадочных сюрпризов.
Это не так. Языком является система макросов, которую можно реализовать как препроцессором, так и на Лиспе. Во втором случае знание Лиспа является дополнительным условием, усложняющим разработку.
no subject
Date: 2014-10-07 10:06 am (UTC)no subject
Date: 2014-10-07 10:17 am (UTC)Все эти корявые строково-файловые недоязыки (препроцессоры, баши, сборочные системы и прочее такое) вечно пишут в стиле "ой, нам тут DSL для костылей очередной понадобился, давайте напишем как умеем". А потом там то scope переменных вида "переменные окружения видны везде, а внутренние переменные нужно передавать явно, хотя неймспейс один на всех", то в подпроцедуры параметры передаются в виде $1 $2 $3 и прочее такое.
В лиспе с хаскелем хотя бы система видна, у остальных же адхок содомия.
no subject
Date: 2014-10-07 10:23 am (UTC)Вот если проектируется свой язык с грамматикой и транслятором - тогда да.
no subject
Date: 2014-10-07 10:17 am (UTC)no subject
Date: 2014-10-07 10:21 am (UTC)