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