если суммировать из собственного опыта, то могу сказать так - генерация кода - это хорошо, когда уместна. Снижает риск ошибок при рутине - текстовые DSL - это хорошо - графические DSL идут в топку
Хотя слишом высоко в абстракциях так не забраться. Я вот поглядываю на языки, изначально спроектированные для распределенных систем. Пока там все не очень хорошо, но процесс идет.