Кажется, что в последнее время все запрыгивают на динамичную, некомпилированную подножку. В основном я работал только с скомпилированными языками со статической типизацией (C, Java, .Net). У меня есть опыт работы с динамическими языками, вроде ASP (Vb Script), JavaScript и PHP. Использование этих технологий оставило у меня неприятный привкус, когда я думал о динамических языках. Вещи, которые обычно были бы обнаружены компилятором, такие как неправильное написание имен переменных и присвоение переменной значения неправильного типа, не происходят до времени выполнения. И даже тогда вы можете не заметить ошибку, поскольку она просто создает новую переменную и присваивает какое-то значение по умолчанию. Я также никогда не видел, чтобы intellisense хорошо работал на динамическом языке, поскольку, ну, переменные не имеют явного типа.
Что я хочу знать, так это то, что людей так привлекает в динамических языках? Каковы основные преимущества с точки зрения того, что динамические языки позволяют делать, что невозможно или сложно сделать на скомпилированных языках. Мне кажется, что мы давно решили, что такие вещи, как некомпилированные asp-страницы, генерирующие исключения времени выполнения, были плохой идеей. Почему наблюдается возрождение этого типа кода? И почему мне, по крайней мере, кажется, что Ruby on Rails на самом деле не похож на то, что вы не могли бы сделать с ASP 10 лет назад?