История изменений
Исправление tailgunner, (текущая версия) :
Как показывает практика, никому как раз не нужна верификация времени компиляции. Слишком много затрат.
Когда верификация нужна, нужна именно верификация времени компиляции. А так да, на практике хватает просто проверки типов.
А то, что динамические системы типов более выразительны - проблема разве что для тех, кто сопровождает такой выразительный код.
Да нет, никакой проблемы как раз нет.
Если есть код - есть и проблема, даже две. Вторая - в том, что «giving people dynamic languages doesn't mean that they write dynamic programs», так что для _использования_ всех чудес динамической типизации нужно постараться.
Слабые системы типов вроде хаскеля никаких интересных гарантий получить не дают, только ограничить возможность сложения слонов с бегемотами (а такие ошибки и так элементарно отлавливаются с околонулевыми затратами)
В Хаскеле они отлавливаются компилятором, а в динамике для этого приходится работать руками. Впрочем, если ты работаешь руками быстрее, чем работает компилятор Хаскеля... окей, у тебя different tradeoff.
тайпчекер ошибку может выдать как угодно далеко от места, где она случилась
Есть языки и помимо Хаскеля.
Исходная версия tailgunner, :
Как показывает практика, никому как раз не нужна верификация времени компиляции. Слишком много затрат.
Когда верификация нужна, нужна именно верификация времени компиляции. А так да, на практике хватает просто проверки типов.
А то, что динамические системы типов более выразительны - проблема разве что для тех, кто сопровождает такой выразительный код.
Да нет, никакой проблемы как раз нет.
Если есть код - есть и проблема, даже две. Вторая - в том, что «giving people dynamic languages doesn't mean that they write dynamic programs», так что для _использования_ всех чудес динамической типизации нужно постараться.
Слабые системы типов вроде хаскеля никаких интересных гарантий получить не дают, только ограничить возможность сложения слонов с бегемотами (а такие ошибки и так элементарно отлавливаются с околонулевыми затратами)
В Хаскеле они отлавливаются компилятором, а в динамике для этого приходится работать руками. Впрочем, если ты работаешь руками быстрее, чем работает компилятор Хаскеля... окей, у тебя different tradeoff.