"Или, другими словами, можно ли свести все проблемы к гвоздям за один молоток?" Да. Период. Любой язык программирования, с которым вы, вероятно, столкнетесь, будет таким же полным, как и все остальные. На самом деле есть формальное определение «полноты» для языка программирования.
"Людям когда-нибудь нужно было изучать новую парадигму?" Всегда.
На самом деле есть хитрость в том, чтобы отслеживать взлеты и падения «смены парадигмы». За последние 30 лет моей карьеры я увидел, что программирование выросло из относительно упрощенной императивной / процедурной модели в ряд гораздо более богатых моделей, которые включают в себя лучший баланс между процессом и данными.
Я заметил следующее ...
Частью движущей силы является сообщество искусственного интеллекта. Многие из этих «новых моделей» начинались как схемы представления знаний ИИ. Там они набирают обороты, а затем переходят в более массовые приложения.
Модель Entity Relationship изначально была предназначена для представления знаний, а не для бизнес-операций. Объектная модель, аналогично, предназначалась для представления знаний. Тогда люди моделирования нашли это. Теперь у всех нас есть это.
Вот мой вывод.
Программное обеспечение - это представление знаний.
Ваш выбор Парадигмы, Модели, Подхода или Стиля основан на ответе на следующий вопрос:
«Как мне лучше всего представить эту проблему?»
Если у проблемы есть объекты и отношения, то ОО. Если у задачи есть алгоритмы и преобразования, карты, фильтры и сокращения, Функциональные. Если проблема динамическая, изменяющаяся и гибкая, динамическая. Если проблема статическая и быстро масштабируется, Static.