Проблема функціонального програмування - це не саме функціональне програмування - це більшість людей, які це роблять, і (що ще гірше) більшість людей, які розробляють мови, на яких це робити.
Проблема випливає з того, що, незважаючи на те, що вони дуже розумні (іноді прямо блискучі), занадто багато людей просто занадто фанатичні щодо чистоти, досконалості та застосування власного (часто досить вузького) погляду на світ та програмування на мови та всіх, хто нею користується.
Одним із результатів є невдача для компромісів. Це призводить (серед іншого) до приблизно 10 000 мов та діалектів, які досить різні для роздратування, але лише рідко досить різні, щоб один мав справді значну перевагу перед іншими. Багато людей також дивляться на реальний світ і вирішують, що оскільки він не дуже добре відповідає функціональній моделі, це в основному просто неправильно і найкраще ігнорується.
Неможливість йти на компроміс також призвела до небагатьох мов, які абсолютно красиві для конкретного типу проблеми (або декількох конкретних типів проблем), але насправді є достатніми для багатьох інших. Дещо з цього, ймовірно, спричинене самою функціональною моделлю, але набагато більше, здається, (принаймні, мені) спричинено базовим типом особистості, що приваблює цю область для початку.
Це призводить до низки проблем. Перш за все, вивчення "функціонального програмування" здебільшого має філософське значення. У більшості інших типів мов знання однієї мови певного жанру є суттєвою допомогою у вивченні іншого. Якщо мій проект використовує мову XI, зазвичай можна найняти когось, хто знає мову Y (але не X) досить безпечно. Що стосується функціональних мов, це набагато менш вірно. Ви, можливо, знаєте Ерланга досить добре, але все ж вважаєте монади Хаскелла абсолютно чужими та незрозумілими.
З'єднайте кількість мов з обмеженою переносимістю талантів між ними, і ви отримаєте потворну ситуацію: одна мова чи діалект майже неможливо сформувати "критичну масу", необхідну для того, щоб зробити її досить розумною. Це повільно змінюється, але це все ще дуже багато , як Linux стає домінуючою настільної ОС - щороку, люди приходять з переконливими аргументами , що в кінці кінців це буде рік - і так само , як людей , які передбачали , що кожен рік десятиліттями, вони знову помиляться. Це не означає, що це (або одне) ніколи не може відбутися - лише те, що досі були люди, які дивляться на прогнози і думають "ні, не в цьому році".