Справжня проблема - держава.
Функціональні мови не мають глобального стану. Більшість виробничих проблем вимагають стану у великому масштабі (як ви представляєте головну книгу чи набір транзакцій), навіть якщо деякі функції в малому масштабі насправді цього не потребують (обробка великої книги).
Але ми використовуємо код на архітектурних машинах Von-Neuman, які за своєю суттю є повноцінними. Таким чином, ми фактично не позбулися держави, функціональні мови просто приховують складність держави від розробника. Це означає, що мова / компілятор має мати справу зі станом поза кадром та керувати ним.
Хоча функціональні мови не мають глобального стану, інформація про їх стан передається як параметри і результат.
Тож тоді виникає питання, чи може мова впоратись із державою ефективно за змістом? Особливо, коли розмір даних значно перевищує розмір архітектури.
Дивлячись на це з боку апаратних засобів
За останні кілька років ОС багато допомогла у візуалізації адресного простору, тому додаткам офіційно не потрібно про це турбуватися. Але програми, які не хвилюються з приводу того, що потрапляють у пастку обмацування апаратних засобів, коли тиск у пам'яті стає інтенсивним (обробка обладнання, що сповільнить, сповільнить ваші процеси до сканування).
Оскільки програміст не має прямого контролю над станом на функціональній мові, він повинен покластися на компілятор, щоб впоратися з цим, і я не бачив функціональних мов, які добре справляються з цим.
На зворотному боці монети програміст, повний стан, має прямий контроль над станом і, таким чином, може компенсувати низькі умови пам'яті. Хоча я ще не бачив багатьох програмістів, які насправді досить розумні, щоб це зробити.
Дивлячись з боку галузі:
Промисловість має багато неефективних повноправних державних програмістів.
Але можна легко виміряти покращення цих програм у часі. Ви кидаєте команду розробників на проблему, вони можуть покращити код, покращивши, як програма обробляє стан.
У функціональних програмах поліпшення важче виміряти, оскільки вам потрібно вдосконалити інструменти, які поліпшать програми (ми просто дивимось на те, як програми ефективно обробляють базовий стан, а не загальне вдосконалення програми).
Тому для галузі я думаю, що це зводиться до можливості вимірювати поліпшення коду.
З точки зору найму
Для прокату доступно багато програмістів, що мають повну статистику. Функціональних програмістів важко знайти. Таким чином, ваша основна модель попиту та пропозиції запуститься, якби галузь перейшла на програмування функціонального стилю, і це не те, що вони хочуть статися (програмісти досить дорогі, як це є).