Mam k puvodni otazce dve poznamky. Prvni je, ze ten "Unixovy pristup" (ktery je asi stale zatim nejvetsi ukazkou znovupouzitelnosti v praxi) dovedlo k dokonalosti funkcionalni programovani. Jak?
Ta hlavni vyhoda Unixoveho pristupu je v tom, ze ta "API" jednotlivych "modulu" jsou vlastne jen (typicky textova a nestrukturovana) data predavana mezi temi aplikacemi. V OOP je typicke API nejaka mnozina akci, a data jsou skryta. Zatimco ve funkcionalnim programovani jsou API vzdy strukturovana data (datove typy) predavana mezi funkcemi. Tedy v FP jde o otoceni situace - misto toho, aby se vykonavaly prikazy, jako v OOP, tak se posilaji jako data. Ten rozdil je v tom, ze v OOP datum rozumi jen cilovy objekt, jenze pokud mas data jako verejne API, tak jim nemusi rozumet jen dany cilovy objekt, jsou pak proste samopopisna. (Ono to v podstate souvisi s tim, ze si pak ty jednotlive aplikace nemohou drzet vlastni kontext/stav, vsechno se musi rict temi vstupnimi daty. Tim, ze se zakaze nebo omezi drzeni kontextu, ktery zna jen dany objekt/funkce, dojde k vetsi znovupouzitelnosti.) Uplne idealni je pak predavat samotne prikazy jako data (viz treba
http://degoes.net/articles/modern-fp nebo napady jako CQRS).
V modernim "OOP" se obcas snazi o neco podobneho, ale vetsinou pres ruku delaji neco, co lze snaz udelat v FP.
Druha poznamka je, ze Unixova filozofie je dost stara a mozna uz dnes neaktualni. Vznikla v dobe, kdy byly pocitace drahe a lidska prace levna, dnes je to naopak. Takze tehdy davalo smysl dodavat software jako stavebnici, kterou si zakaznik sam zkonfiguruje, ale dneska po tom IMHO takova poptavka neni. To je ale spis obchodni otazka - vyplati se ti budovat stavebnici, nebo je lepsi udelat jednoucelovou aplikaci?