вот тезис:
> Тезис: с динамической типизацией разработка сложнее, чем со статической.
аргумент в пользу тезиса я понял так: "Если вы не отловили ошибки типов в коде, но они там есть, то код некорректный. Если код некорректный, то неважно, что он запускается — от него нет толку."
я утверждаю, что от некорректного кода есть толк. Код на статических языках в продакшене тоже содержит ошибки, но он полезен
с тем, что код с ошибками вида "runtime error: can't cast String to Int" бесполезен, а код с менее тривиальными / "логическими" ошибками не бесполезен, я очень сильно не согласен
про количество ошибок: я утверждаю, что количество ошибок, которое статическая типизация может отловить по сравнению с динамической, *недостаточно* для того, чтобы можно было говорить, что, например, пока вы не натравили нормальный тайпчекер на свой код, он якобы настолько багованный, что его можно reasonably считать бесполезным. С тем, что статическая типизация ловит больше ошибок, чем динамическая, я не спорю
т.е. нифига не очевидно, что преимущество "быстрее получается код, который можно запустить" нивелируется тем, что надо его дольше дебажить
потому что не все ошибки, которые *может* словить тайпчекер, вообще *необходимо* ловить для того, чтобы код стал считаться полезным
Вам выражение "при прочих равных" о чем-нибудь говорит? В данном случае "прочими равными" мы считаем логические ошибки.