Один адепт динамической типизации писал мне:
А: А вдруг там непонятная хрень вернётся из стороннего сервиса, например строка, а у меня тут integer твой. И все. Все сломалось.
Я: ну так изучи что оттуда прилетает и типизируй. В конце концов это же что-то типа API, доку по нему почитай.
А: ну вот сегодня оттуда приходит integer, а завтра бац! И строка пришла?
Я: автор этого сервиса конечный долбоеб
А: почему?
Я: потому что это нарушений соглашений
Если в языке строгая динамическая типизация, как в питоне, то программа в любом случае наебнётся, когда кто-то попытается сделать со строкой то, что можно только с числом.
Если слабая, то тоже наебнётся, но незаметно.
Например число 500, которое на самом деле строка, сложится с другим числом 100. Допустим, это нужно для вывода чего-нибудь в интерфейсе. Но из-за слабой типизации мы вместо 600 получим 500100.
И снова динамическая типизация всех спасла 🥳