Due approcci distinti per risolvere lo stesso problema
Se il paradigma funzionale viene spesso visto come alternativo al paradigma a oggetti o al più complementare, a ben vedere è un diverso modo di rispondere agli stessi problemi.
La difficoltà maggiore quando si sviluppa un’applicazione è il rapido crescere della complessità e il carico cognitivo necessario per comprenderla e gestirla. La continua dinamicità dei requisiti e delle persone coinvolte nello sviluppo richiedono che il codice sia chiaro, comprensibile, facilmente manipolabile, modificabile e adattabile a nuove esigenze. Facile a dirsi, ma nella realtà accade assai di rado.
L’approccio a un problema complesso è sempre lo stesso: suddividerlo combinando tante piccole soluzioni semplici.
La programmazione orientata agli oggetti identifica appunto gli oggetti come elementi dotati di un comportamento relativamente semplice e quindi comprensibile, che combinati danno origine a comportamenti più complicati.
La programmazione funzionale dà la sua particolare risposta al problema, ponendo le funzioni pure come elemento base per comporre comportamenti più complicati.