V OOP se píší testy, ve FP se programy dokazují.
To určitě nelze takto generalizovat.
Typy nejsou v OOP důležité, jsou jen atributem objektu. FP je na typech postaveno.
To zcela jistě není pravda. Jak je takové Clojure postaveno na typech? Java bez interfaců by byla méně než poloviční.
Každopádně mě ani nijak zvlášť nezajímá rozdíl mezi FP a OOP; ten je celkem jasný. Mě zajímá schopnost typů na úkor testů.
Takže jsme se dopracovali k tomu, že typy nejsou důležité ani v OOP, ani ve FP. Typy jsou užitečné, ale nejsou nezbytné.
Clojure není čistě funkcionálním jazykem, dá se v něm psát i strukturovaně nebo objektově.
Kdysi jsem si napsal javovskou aplikaci (plugin do Vimu) ve které jediným rozhraním byl Object. Žádné přetypování, elegance sama. Smalltalk je důkazem, že se bez typů obejdeme, ale bez testů nikoli.