Staticka kontrola je dobra k tomu, ze overi, ze zadna funkce nedostane argument spatnyho typu. Tj. overi, ze struktura programu je spravne, ale neoveri semantiku, tj. takovy ry pripady kdy muzu ve funkci f(vaha: int, vyska: int) v klidu zamenit oba argumenty a typova kontrola mi to neodhali. To je uz pak o discipline programatora jestli na to pouzije typy nebo si na to napise testy. Kazdopadne staticka typova kontrola neni vselek proti vsem chybam.
Problem, kdy funkce dostane spatny argument, je dle me zpusobeny prasecim kodem s prilisnym vetvenim. Tj. pokud napisu v pythonu program co bere jeden typ argumentu, dela jednu vec ale zato spravne, pak mi staci jeden integracni test, co mi to dostatecne overi. Bud aplikace na testu slitne nebo ne.
Samozrejme kdyz nekdo prilis vetvi program (aka praseci kod), bude mit hodne prace s psanim testu nebo muze rovnou pouzit statickou kontrolu. Opet, vyresi to jenom strukturalni chyby, ne semanticke, takze za me je lepsi nepsat praseci kod.