Ci sono tonnellate di argomenti "teorici" sul perché la programmazione funzionale sia una buona idea (troppi per essere rimasti come una domanda aperta, e correttamente così).
Tuttavia, la maggior parte di questi argomenti sono fatti sia dalla teoria ("eleganza", ecc.), o, per gli sviluppatori.
Il problema è che molti di loro sono del tutto inutili quando il nostro obiettivo è quello di presentare l'idea al senior management di una grande azienda , alcuni dei quali non sono nemmeno sviluppatori, e tutti per lo più preoccupati di argomenti commerciali : costi, gestione del capitale umano, consegna dei prodotti, servizio clienti e entrate; così come fatti quantitativi su punti teorici che non possono essere supportati con fatti.
Ci sono argomenti convincenti da presentare per affrontare le preoccupazioni di business per quanto riguarda l'adozione della programmazione funzionale come concetto (non un linguaggio specifico), contro il tipico mix di procedural / OOP, per esempio Java / C ++ / (Perl | Python).
Preferibilmente, sto cercando argomenti che siano quantitativi e / o basati su ricerche o casi di studio. Per esempio. "secondo questo riferimento, il tasso di errore dei sistemi multithread in Lisp / F # è del 10% quello di Java" o "80% dei migliori laureati che esprimono le preferenze della tecnologia desiderata denominata programmazione funzionale come dei primi 3 interessi".
So che Graham ha presentato casi di utilizzo di programmazione funzionale per uno starup e che sarebbe stato aperto ad alcuni dei suoi argomenti possono essere validi per una compagnia più grande.
psI sono perfettamente consapevole del fatto che puoi fare qualcosa di simile alla programmazione funzionale in Perl, probabilmente a Python e (eventualmente) anche a Java 8 o C ++ 14. Ma ciò non significa che un'organizzazione che usa Perl, C ++ o Java potrebbero sostenere approcci funzionali vs OOP / procedurali anche in quelle lingue
Per gli scopi di questo linguaggio, "large" è definito abbastanza grande da avere un gruppo dedicato di engineering / strumenti di sviluppo, che impone ciò che tutti gli sviluppatori possono usare / fanno; e almeno centinaia di sviluppatori di fascia bassa .