Il vero problema è lo stato.
I linguaggi funzionali non hanno uno stato globale. La maggior parte dei problemi industriali richiede uno stato su larga scala (come si rappresenta un libro mastro o un insieme di transazioni) anche se alcune funzioni su piccola scala non lo richiedono effettivamente (elaborazione di un libro mastro).
Ma stiamo eseguendo il codice sulle macchine di architettura Von-Neuman che sono intrinsecamente piene di stato. Quindi non ci siamo veramente sbarazzati dello stato, i linguaggi funzionali nascondono la complessità dello stato dallo sviluppatore. Ciò significa che linguaggio / compilatore deve gestire lo stato dietro le quinte e gestirlo.
Quindi, sebbene le lingue funzionali non abbiano uno stato globale, le loro informazioni di stato vengono passate come parametri e come risultato.
So the question then becomes can the language handle the state efficiently behind the sense? Especially when the data size far exceeds the size of the architecture.
Guardandolo da Hardware Side
Il sistema operativo ha aiutato molto negli ultimi due anni a visualizzare lo spazio degli indirizzi in modo che le applicazioni non debbano preoccuparsi ufficialmente di ciò. Ma le applicazioni che non si preoccupano di cadere nella trappola del thrashing dell'hardware quando la pressione della memoria diventa intensa (l'hardware thrash rallenterà i tuoi processi fino alla scansione).
Poiché il programmatore non ha il controllo diretto sullo stato nel linguaggio funzionale, deve fare affidamento sul compilatore per gestirlo e non ho visto linguaggi funzionali che gestiscono bene questo aspetto.
Sul lato opposto della moneta, il programmatore full-state ha il controllo diretto sullo stato e può quindi compensare le condizioni di memoria insufficiente. Anche se non ho visto molti programmatori che sono abbastanza intelligenti da farlo.
Guardando dal lato dell'industria:
L'industria ha un sacco di inefficienti programmatori statali.
Ma è facile misurare i miglioramenti in questi programmi nel tempo. Lancia un team di sviluppatori al problema di poter migliorare il codice migliorando il modo in cui il programma gestisce lo stato.
Per i programmi funzionali i miglioramenti sono più difficili da misurare poiché è necessario migliorare gli strumenti che miglioreranno i programmi (stiamo solo osservando come le applicazioni gestiscono lo stato sottostante in modo efficiente qui, non il miglioramento generale del programma).
Quindi per l'industria penso che dipenda dalla capacità di misurare i miglioramenti nel codice.
Da una prospettiva di assunzione
Ci sono un sacco di programmatori stat-full disponibili per il noleggio. I programmatori funzionali sono difficili da trovare. Quindi il vostro modello di domanda e offerta base potrebbe dare il via se l'industria si scambierà con lo stile di programmazione funzionale e questo non è qualcosa che vogliono accadere (i programmatori sono abbastanza costosi così com'è).