Без заголовка
А почему интересно Java и .NET обросло набором DSL-ей: asp, jsp, разные xml-дескипторы. Или вы считаете, что все это все правильно писать внутри кода основного языка?
Так именно потому что не все правильно писать внутри кода основного языка - смысл именно в том, чтобы ее вынести.
На регэкспы я посмотрел - во-первых - я довольно долго разбирался, что это все значит. Во-вторых - в том же camlp4 изобразить точный аналог - вопрос несколько часов работы. Но характерно - кажется никто этого так и не сделал. В-третьих - есть альтернатива - сделать нормальный API:
Ну выглядело бы оно тогда как-то так:
open RegExp;
let user = plus letdig in
let domain = sep ~by:(str ".") plus letdig in
matches s (cat [user; str "@"; domain]
То есть оно конечно более громоздко, но не особенно.
но реализация сервисов вокруг языка, таких как IDE поддержки, системы типов, разных видов анализа итп более чем сложно, и требует знаний, которых у большинства людей, работающих с предметной областью просто нет
Так оно особенно никуда не девается. Либо оно приходит из целевого языка, в который транслируется, либо все равно надо писать самому. Я на MPS давно не смотрел - но вопрос - реализовать тот же ML (хотя бы ядро, или F#) на нем получится?
imho MPS тут даст очень мало. Чем он, например, с анализом типов поможет? Вряд ли будет проще написания еще одного плагина для идеи или eclipse.