Пост навеян чтением холивара про динамику и статику.
Давайте рассмотрим, основные плюсы которые дает динамика в вебе тем же рельсам в по сравнению с asp.net mvc:
Возможность не описывать поля модели хранящейся в БД
Возможность сформировать пачку данных и передать их во вьюху не заморачиваясь описанием их структуры
Возможность нагенерировать удобных хелперных методов для каждого чиха пользуясь соглашениями об именовании.
Делать красивые DSL заточенные для мелких задач.
Вероятно я что-то пропустил, думаю меня дополнят.
Все эти задачи можно решить в статически типизированном языке, если в него добавить возможности метапрограммирования. Все типы и хелперы можно генерировать в момент компиляции, рельсы в продакшене примерно это и делают на момент старта. При этом мы получаем все плюсы статической типизации (контроль компилятора, автокомплит, рефакторинги, быстродействие), а теряем только REPL. Возможно REPL тоже реализуем, но у меня пока много белых пятен в видении этого механизма.
Некоторое время назад, я сделал экспериментальную библиотеку для немерле для проверки этих концепций,
они работают.
Какие еще плюсы дает динамика в вебе, недостижимые для сочетания статики и метапрограммирования? Что если вместо альтернативы — (быстро пишем|быстро и более надежно работает) выбрать быстро пишем — быстро и более надежно работает.