La cosa più difficile della programmazione funzionale è l'utilizzo. Molti di noi hanno utilizzato la programmazione imperativa da allora - beh, per sempre - e FP potrebbe essere davvero una cosa difficile da comprendere se si è abituati alla programmazione imperativa.
Tutte le lingue imperative funzionano fondamentalmente allo stesso modo. Per imparare un nuovo linguaggio di programmazione solitamente si tratta di imparare la sintassi e le sue librerie incorporate. Dato un problema, probabilmente avrai già un modo per affrontarlo, si tratta solo di elaborare la sintassi e piccoli nodi.
Questo non è il caso di FP. Questo non è niente come il passaggio a OOP. I buoni programmatori che non conoscevano l'OOP probabilmente usavano già molti concetti di OOP. FP, d'altra parte, è un modo completamente nuovo di programmare. Cercare di implementare algoritmi relativamente semplici richiede un nuovo approccio. L'apolidia può essere un po 'di b @ #% !.
Tuttavia, i processori multithreading stanno diventando praticamente onnipresenti e la sicurezza dei thread è ancora una cosa molto difficile da "fare bene". FP può guadagnare terreno qui con la sua apolidia, che ti permette di essere più spensierato sulla sicurezza del filo e sulla concorrenza.
In breve, direi che la prima linea di resistenza contro FP è la sua difficoltà per la maggior parte dei programmatori. Quindi, le aziende sono solitamente diffidenti nei confronti di tecnologie nuove e / o non provate. Con linguaggi come Java, C e C ++ saldamente radicati nel mondo dell'impresa, ci vuole molto tempo per ottenere qualcosa di nuovo (o percepito come nuovo) per guadagnare sul mercato.
Inoltre, non è probabile che vengano toccati grandi codebase esistenti. Sareste sorpresi dal numero di persone che ancora oggi usano linguaggi come FORTRAN e COBOL. Alcune volte le decisioni come utilizzare una nuova lingua si trovano con i manager che non hanno un background tecnico. Buona fortuna convincendo loro che dovrebbero passare a una lingua che la maggior parte delle persone non è a proprio agio (ad esempio: probabilmente le costerà).