МБ
Легко видно по конфигурационным файлам в unix-world. Всяк горазд накрутить свой DSL. И ты вот сидишь с опухшей головой и постоянно переключаешься между контекстами и языками, настраивая какой-нибудь mailman поверх lighttpd или nginx.
Самое прекрасное, что я видел - это проекты от suckless.org или вот сборочные системы в clojure, или вот mailman. Берёшь Сишешчку, EDN или Python, и без всякой смены парадигмы конфигурируешь себе так, как надо. При чём, сразу понимаешь, как это всё будет работать. И хорошо.
А, главное, легко расширяемо чем-нибудь алгоритмическим нестандартным.
Поэтому, надо не к DSL стремится, imho, а к языкам с хорошим уровнем абстракций и встроенным eval-ом. Хм... Только eval, конечно, должен позволять получить в итоге процедуру, то есть, исполняемый код. Ну, в принципе, в UNIX такой eval называется ${CC} и, в принципе, нормально.
Хотя, это тут же приводит к мысли, что, конечно, на Сишечке писать какой-нибудь grep - это одно мучение. И DSL регулярных выражений, наверное, может быть и нужен. Но это проблема того, что в Сишечке плохо с абстракциями. В Haskell для этого DSL не нужен, например.
P.S. Имеется в виду писать grep всякий раз, когда надо строки поматчить нужным способом.