LINUX.ORG.RU

История изменений

Исправление archie, (текущая версия) :

есть еще люди, которые не считают динамическую типизацию (в том виде, в котором она представлена в Питоне, а именно строгая динамическая типизация) серьезным недостатком при работе с большим объемом кода

Ну это скорее не заслуга динамической типизации, а недоработка мейнстримной статической. Если сравнивать строгую динамическую типизацию в питоне с какой-нибудь слабой статической типизацией навроде крестов, то действительно неочевидно, чем первая сильно хуже второй. В мейнстриме статическая типизация как правило унылая и ограниченная, ADT и HKT нет, слишком много церемоний, все равно остается масса способов выстрелить в ногу например через неявные преобразования типов, о принципах вроде make illegal states unrepresentable среднестатистические разработчики и не слышали. А на рефакторинг может вообще никогда ни времени, ни денег не будет, а будет только запиливание новых фич и обвешивание легаси кода костылями и подпорками. К тому же многие проблемы динамической типизации частично нивелируются тестами. Вот и получается, что на практике динамическая типизация не выглядит серьезным недостатком. По крайней мере не во всех проектах. Вот если в мейнстрим когда-нибудь завезут более-менее приличную систему типов, хотя бы с выводом типов по Хиндли-Милнеру, думаю вопрос с динамической типизацией можно будет закрывать.

дает ли статическая типизация выигрыш, если надо перекраивать несметные тыщи kloc

Да здесь и спорить не о чем. Очевидно даже самые слабые гарантии от компилятора при рефакторинге все равно лучше, чем их отсутствие. Вопрос скорее в том, а какого размера проект, а будут ли в нем эти самые несметные тыщщи kloc, а дойдет ли вообще дело до рефакторинга. А если не дойдет, то так ли уж нужны многословные типизированные портянки в джава-стайле вместо идиоматичного и компактного питона.

Исходная версия archie, :

есть еще люди, которые не считают динамическую типизацию (в том виде, в котором она представлена в Питоне, а именно строгая динамическая типизация) серьезным недостатком при работе с большим объемом кода

Ну это скорее не заслуга динамической типизации, а недоработка мейнстримной статической. Если сравнивать строгую динамическую типизацию в питоне с какой-нибудь слабой статической типизацией навроде крестов, то действительно неочевидно, чем первая сильно хуже второй. В мейнстриме статическая типизация как правило унылая и ограниченная, ADT и HKT нет, слишком много церемоний, все равно остается масса способов выстрелить в ногу например через неявные преобразования типов, о принципах вроде make illegal states unrepresentable среднестатистические разработчики и не слышали. А на рефакторинг может вообще никогда ни времени, ни денег не будет, а будет только запиливание новых фич и обвешивание легаси кода костылями и подпорками. К тому же многие проблемы динамической типизации частично нивелируются тестами. Вот и получается, что на практике динамическая типизация не выглядит серьезным недостатком. По крайней мере не во всех проектах. Вот если в мейнстрим когда-нибудь завезут более-менее приличную систему типов, хотя бы с выводом типов по Хиндли-Милнеру, думаю вопрос с динамической типизацией можно будет закрывать.

дает ли статическая типизация выигрыш, если надо перекраивать несметные тыщи kloc

Да здесь и спорить не о чем. Очевидно даже самые слабые гарантии от компилятора при рефакторинге все равно лучше, чем их отсутствие. Вопрос скорее в том, а какого размера проект, а будут ли в нем эти самые несметные тыщщи kloc, а дойдет ли вообще дело до рефакторинга. А если не дойдет, то так ли уж нужны многословные портянки в джава-стайле вместо идиоматичного и компактного питона.