Хорошо, много обсуждений уже. Вот мое мнение по этому вопросу:
Обычно гораздо проще получить доступ к модели домена непосредственно для ваших форм. Это одна из тех вещей, которые дают кодирование в Rails (я не знаю Django, но я предполагаю, что это то же самое), огромное повышение производительности. Вряд ли есть какая-либо потребность в кодировании: создайте таблицу базы данных, создайте немного html и простой контроллер в середине, и все готово. Поскольку в коде практически нет кода, его можно изменить быстрее, поэтому он хорошо работает в Agile-средах.
Но есть время, когда этого не хватает. Иногда ваше приложение слишком сложное, чтобы заставить его работать должным образом. Именно тогда вы можете добавить ViewModels, Presenters, Facades или как вы хотите их называть. Ничто не мешает вам делать это в Rails или Django. Фактически, Rails 3 представил ActiveModel в виде набора миксинов, чтобы каждый объект работал с формами так же просто, как и при работе с ActiveRecord.
Таким образом, вопрос не в том, почему Rails и Django не делают этого, а когда я должен это использовать? Называть DDD переобработкой тоже не соответствует действительности. Речь идет о «достаточно», чтобы решить проблему, которая у вас есть. Сохраняйте минимальный объем кода и сложность, и вам будет проще поддерживать его.
Я бы согласился с тем, что, безусловно, есть уроки, которые можно извлечь из Java / .NET. Обычно они хорошо разработали шаблон дизайна. Но говорить, что Rubyists и Pythonistas не сделали достаточно больших проектов, неверно. Сила приходит в понимании, когда вы можете сойти с простого решения.
Я думаю, что Java-программисты (у меня нет опыта работы с .NET-программистами) имеют тенденцию к чрезмерному совершенствованию. Может быть, это фреймворки, которые они используют. Кажется, он пытается заставить программиста сделать это «Правильным путем», что делает его слишком сложным.