[Перевод] Модульного тестирования недостаточно. Нужна статическая типизация!

Когда я работал над своей магистерской диссертацией, я пообещал себе, что опубликую ее в Интернете под свободной лицензией. Я получил степень, но, к сожалению, натолкнулся на одно из неписаных правил ВУЗов — когда вы тратите на интересующий вопрос много времени, он вам надоедает. Наконец, спустя год, я все-таки ее публикую. Для тех, кому лень знакомиться с моим полным трудом (в любом случае, 60 страниц текста это не так много для исследовательской работы, но это все же не мало), я предлагаю краткую версию статьи. Прошу заметить, что краткая версия не учитывает некоторые важные сведения, поэтому я прошу писать отзывы только о полной версии. В своём исследовании я обратил внимание на доводы сторонников динамической типизации, которые считают, что статическая типизация не нужна для выявления ошибок. Суть их рассуждений в следующем: Статической типизации недостаточно для выявления багов, поэтому необходимы модульные тесты; Статическая типизация становится лишней, так как у вас есть тесты; Из-за статической типизации некоторые корректные программы могут выдавать предупреждения на стадии компиляции. Несмотря на то, что я много раз слышал эти утверждения, я не мог найти им подтверждение. Поэтому я решил выяснить: действительно ли модульные тесты помогают устранить ошибки типизации. Также меня интересовал еще один вопрос: как часто разработчики используют конструкции языков с динамической типизацией, которые невозможно выразить в языках со статической.Читать дальше →

© Habrahabr.ru