Perché la programmazione funzionale non è più abbracciata? [duplicare]

2

Ho lavorato come sviluppatore J2EE negli ultimi 3 anni e volevo imparare qualcosa di diverso, così ho iniziato a imparare sulla programmazione funzionale passando attraverso molti articoli e libri (SICP, i saggi di Paul Graham e altri articoli simili) .

Mi piacciono molto i concetti e l'eleganza, ma la cosa che mi dà fastidio è se è così bello perché non sta recuperando spazio nell'azienda? Se alcune delle migliori persone nel settore del software (Paul Graham, Peter Norvig) consigliano di impararlo, perché le imprese non le ascoltano? Numerosi ricercatori hanno investito molto tempo nella ricerca sulla FP, ma non sembra materializzarsi. Sono nuovo di FP, quindi per favore perdonami se le mie preoccupazioni sono ingenue.

    
posta nrb 30.09.2011 - 15:13
fonte

2 risposte

2

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à).

    
risposta data 30.09.2011 - 15:24
fonte
2

Dichiarazione di non responsabilità: adoro FP. Lo faccio in tutti i linguaggi di programmazione nella misura del possibile. Quindi questo non è un putdown, è la triste realtà che sto combattendo tutto il tempo:

Dal punto di vista del business è un rischio enorme: non è quello che fanno tutti gli altri. Hai un pool di talenti meno numerosi e competitivi, in grado di far salire i salari. I vantaggi negli scenari di programmazione comuni (qualsiasi cosa eccetto i big data, in realtà) non sono considerati come valore aziendale (codice elegante, leggibile e gestibile) anche quando dovrebbero essere.

    
risposta data 30.09.2011 - 16:10
fonte

Leggi altre domande sui tag