Это может быть субъективным, я не знаю: у меня есть эта проблема, которую я как бы приравниваю к "какому языку для этого проекта?" вопрос, так как я не могу его решить.
Мне было поручено написать книгу об определенном домене (скажем, очень специфическую отрасль физики) для очень технически подкованного сообщества, но не программистов. Это книга об этом подмножестве алгоритмов, которые они используют изо дня в день.
Для этого, учитывая мою аудиторию, я играл с идеей определения DSL, вместо того, чтобы заставлять их изучать язык X и обсуждать алгоритмы в этом свете, а не на данном языке или в псевдокоде.
Вопрос заключается в следующем: каковы некоторые признаки того, что вам нужна DSL, а не библиотека функций, которые будут вызываться с хорошо установленного языка общего назначения?
Спасибо.
EDIT. Предложения в пользу DSL:
- Щит от сложности языка общего назначения.
- Сделайте "программист" более продуктивным в своем домене.
- Сделать языковые концепции очень интуитивными для новичков в программировании. (Только подумал об этом сейчас)