Здравствуйте, so5team, Вы писали:
Pzz>>Ну а как люди пишут крупные системы на JS или Питоне? Там с проверками еще сильно хуже.
S>С какими именно проверками?
S>Так-то JS и Python -- это языки со строгой типизацией, в отличии от C или C++.
S>В них по ошибке строку невозможно выдать за double.
JS-то, как раз, без проблем даст сложить строку с числом

Питон да, не даст.
Но оба языка дадут положить в массив или словарь значение неподходящего типа (например, по ошибке, не поле какого-то объекта, а ведь объект целиком). И выстрелит это в момент использования.
S>А именно крупные системы пишут с трудом и за счет тотального тестирования. Не зря же сама мода на unit-тестирование в индустрию пришла из extreme programming, который возник из опыта разработки большого проекта на динамически-типизированном SmallTalk.
Мой тезис: отсутствие проверок усложняет разработку, но не делает её невозможной.
Я к тому, что всяческие статические проверки — это хорошо. Но не надо по их поводу истерику устраивать.
Кстати, моё личное мнение: динамически типизованные языки плохо подходят для первоначального обучения программированию. Статическая типизация не только следит за руками, но еще и приучает систематически думать наперёд. Если начинать с динамически типизованного языка, в котором "всё можно", этот навык не развивается.