А чем это отличается от Дейкстры, который доказывал, что пошаговый код - хуйня?
Динамическая типизация - это последствие сложности тогдашних статических языков. Современные статические языки во много раз удобнее чем были раньше.
Ну вот например кусок на Котлине. Допустим, мы хотим умножить числа на 10 и сохранить только те, что стали круглыми, а потом сделать из них красивые строки:
val arr2 =
arr1.map { it * 10 } .filter { it - it.round() < 0.000001 } .map { "${it.toInt}'th user" }
Пример очень надуманный, но хорошо демонстрирует возможности неявной статической типизации.
Когда я познакомился с Котлином, у меня возник вопрос: а нафига тогда вообще существует динамическая типизация? Можно же любой ЯП сделать совершенно стабильным, при этом всё еще очень хорошо читаемым. Обычный такой, филосовский вопрос. Пока единственное преимущество скриптово-динамических ЯП (эти два признака почти всегда вместе), которое я нашёл: они быстрее включаются, а время на проверки типов размазывается по всему времени работы приложения. А так, динамика появилась из-за страшных ЯП типа С++, а многое в мире становится популярным из-за первенства и отсутствия в этот момент внятных альтернатив (пример - php: популярен из-за того, что нормального аналога, заточенного под скриптинг серверов через CGI нет, а аналога нет из-за того, что уже есть php)
Вот такими критериями я мыслю. Очень люблю синтаксический сахар. Всё, что может быть описано синтаксисом, должно быть описано синтаксисом (в пределах разумного, разумеется)
Я не набрасываю говна на вентилятор (если вы так думаете, просто не стойте под вентилятором!), я просто филосовствую. И до многого додумал сам, без подсказок из подобных статей.