>>а без метапрограммирования кодер обречён так и остаться кодером.
> Но для создания несистемных (не JPA, например) приложений они вряд ли нужны
> и даже опасны.В Java (и .NET) подход другой, насколько понимаю: вместо компактного набора ортогональных базовых вещей выдаётся сундук с барахлишком. Если надо что-то прямщас напялить, то порывшись, скорее всего подходящее найдёшь. А вот если сшить то, чего ещё не было -- то без абстрагирования (о котором метапрограммирование) не получится сделать эффективно.
Кстати, Непейвода недавно на зимней альтовской конференции ссылался на какого-то мужика из Питера, который умудрился доказать, что применение абстрактных идей определяет эффективность решения задачи (формулировка в моём перевире, долго подбирал челюсть).