Я работаю над проектом Clojure, и я часто пишу макросы Clojure для DSL, но я смотрел видео Clojure о том, как компания использует Clojure в своей реальной работе, и докладчик сказал, что при практическом использовании они не используют макросы для своих DSL, они используют только макросы, чтобы добавить немного синтаксического сахара. Означает ли это, что я должен написать свой DSL с использованием стандартных функций, а затем добавить несколько макросов в конце?
Обновление: Прочитав много разных (и занимательных) ответов на этот вопрос, я понял, что ответ не так однозначен, как я думал, по многим причинам:
В приложении есть много разных типов API (внутренних, внешних)
Существует много типов пользователей API (бизнес-пользователи, которые просто хотят быстро что-то сделать, эксперт Clojure)
Есть ли там макрос, чтобы скрыть код котельной плиты?
Я уйду и подумаю над вопросом более глубоко, но спасибо за ваши ответы, поскольку они дали мне много думать. Также я заметил, что Пол Грэм считает противоположность видео Кристофа и считает, что макросы должны составлять большую часть кодовой базы (25%):