Problém všech těch alternativních paradigmat a v jejich rámci dále návrhových vzorů je v tom, že na papíře to vypadá všechno krásně jednoduše a elegantně. Ale v praxi z toho vzniká horor. To rozházení do objektů a řešení rozhraní každého z nich je zkrátka náročné. Vždyť to je problém i na úrovni celého programu, OOP z toho udělalo problém i v jeho jednotlivých vnitřních částech. Když k tomu připočteme, že pro účely OOP se postupně prosadily ty nejméně vhodné jazyky, tak z toho skutečně vzniká katastrofa.
OOP vzniklo právě proto, aby se jeden velký problém rozdělil na více malých problémů, které jdou snadno řešit, resp. se do nich dá recyklovat již hotový kód. Náročné rozhraní? Stačí se jen podívat na zásady SOLID a hned vidíš, jak málo jsou dodržovány. Místo SRP různé god objekty. OCP je ignorováno - každý si přejmenovává metody, kdy se mu zamane a neváhá přitom měnit i signatury v rozhraní. LSP? O zaměnitelnosti potomků s rodiči si fakt můžeme nechat zdát. ISP je pro mnoho vývojářů jen dobrým vtipem. A DIP? Jeho implementace v podobě různých DIC tento princip zcela degradují.
Z toho je vidět, že OOP se v praxi moc nepoužívá. V podstatě se strukturované programování jen převlékne do objektového kabátku a je to. Získáme tím paskvil, který je pomalejší, komplikovanější a méně srozumitelný, než jaký by byl ve strukturovaném zápisu.
A teď do toho přijde FP, který ukazuje, jak elegantně se vše dá řešit pomocí funkcí a monád. Dobrá, začtu se do prvního netriviálního programu a co vidím? Opět strukturovaný paskvil. Moduly ne nepodobné god objektům. Vychvalované namespace neplnící svou funkci, neboť dvacetiznakové neintuitivní názvy funkcí určitě nejsou to, co jsme od toho chtěli. Když se na něco zeptáš, tak jsi místo odpovědi poslán do teorie kategorií. Proč? Protože tomu skoro nikdo pořádně nerozumí.
Když se tedy vrátíme ke strukturovanému programování, tak proč jsme nezůstali u osvědčeného Fortranu?
Jinak pozdní vazba se dá i ve strukturovaném návrhu udělat - tam, kde je opravdu zapotřebí. Ovšem vždy povede k pomalejšímu běhu a náročnějšímu programu, když dopředu nevím, co mi v daném místě může přistát - v případě čistých OO jazyků cokoli. Aby nevznikla mýlka - nejsem úplně proti OOP nebo FP. Ale tvrdím, že to na potřebné úrovni nezvládá skoro nikdo, takže masové nasazení je prostě omyl.
Když jsem kdysi používal pozdní vazbu v Pascalu, tak jsem byl za exota. Přitom to bylo velmi elegantní řešení mnoha problémů, které vůbec nebylo pomalé ani náročné. Naopak se tím dalo zredukovat větvení programu, takže to mohlo být i rychlejší.