«Строгая типизация» и ее противоположность «слабой типизации» имеют довольно слабое значение, отчасти потому, что понятие того, что считается «сильным», может варьироваться в зависимости от того, кого вы спрашиваете. Например. C был назван разными авторами как «строго типизированный» и «слабо типизированный», это действительно зависит от того, с чем вы его сравниваете.
Обычно систему типов следует считать более сильной, если она может выражать те же ограничения, что и другие, и более. Довольно часто системы двух типов не могут быть сопоставимы, хотя одна может иметь особенности, которых нет у другой, и наоборот. Любое обсуждение относительных преимуществ зависит от личного вкуса.
Наличие более сильной системы типов означает, что либо компилятор, либо среда выполнения сообщат о большем количестве ошибок, что, как правило, хорошо, хотя это может быть связано с необходимостью предоставления большего количества информации о типах вручную, что может рассматриваться как стоит. Я бы сказал, что "строгая типизация", как правило, лучше, но вы должны посмотреть на стоимость.
Также важно понимать, что «строго типизированный» часто неправильно используется вместо «статически типизированного» или даже «манифестного типизированного». «Статически типизированный» означает, что есть проверки типов во время компиляции, «манифест типизированный» означает, что типы объявлены явно. Манифестная типизация - это, вероятно, самый известный способ сделать систему типов более сильной (например, Java), но вы можете добавить силу другими способами, такими как вывод типов.