* Ho sentito parlare di tanto in tanto e sto cercando di capire e convalidare l'idea che FP e OO siano ortogonali. *
Prima di tutto, cosa significa per 2 concetti essere ortogonali?
Citazione di Wikipedia: "L'ortogonalità garantisce che la modifica dell'effetto tecnico prodotto da un componente di un sistema non crea né propaga effetti collaterali ad altri componenti del sistema."
Semplicemente, significa semplicemente che la modifica a un sistema non lo è e non può influire su una modifica nell'altro sistema.
Ad esempio, un'auto ha componenti e controlli ortogonali (ad esempio, l'accelerazione del veicolo non influenza nient'altro che i componenti coinvolti esclusivamente con la funzione di accelerazione.) Ad esempio, non influisce sulla radio (anche se non sono sicuro che abbia effetto Riproduzione di CD, poiché la mia salta a volte)).
FP incoraggia l'immutabilità e la purezza il più possibile. e OO sembra qualcosa che è stato costruito per lo stato e le mutazioni (una versione leggermente organizzata della programmazione imperativa?). E mi rendo conto che gli oggetti possono essere immutabili. Ma OO sembra implicare lo stato / cambiare per me.
Sembrano opposti. Significa che sono ortogonali?
Kinda. Il problema è che nessuno di questi concetti è veramente definito. Ma sì, ne hai il succo.