LVV>>Естественно, мы начали с императивщины. LVV>>Ибо цель была и пока остается: обучать чистых новичков, которые в школе программирование не проходили.
M>Это как раз не естественно. Новички в школе изучали, как минимум, математику. И функциональщина (особенно с паттерн-матчингом) на эту математику ложится просто сразу.
M>В отличие от императивщины.
Ну, у функционального программирования достаточно своих проблем. Например, классическое ФП предполагает stateless approach, в то время как немалое количество проблем вокруг нас — stateful. Но самая большая его проблема, ИМХО, в в том, что императивный подход интуитивно понятен человеку. Человек мыслит скорее императивно чем функционально (ну или, скорее, императивно с налетом функциональщины). Поэтому функциональное программирование гораздо тяжелее укладывается в голову, чем императивное.
Кстати, с многопоточностью та же история — ну не можем мы несколько мыслей думать параллельно. И это одна из причин почему у людей бывают серьезные проблемы с пониманием многопоточности.
Кстати, зачастую математическая формулировка решения/подхода/алгоритма проигрывает в понятности алгоритмической. К примеру, particle filter описывается жуткими формулами и выкладками, в то время как его алгоритмическое описание просто и понятно.