Podstatné je, že já sice chci integer, ale stroj ví, že to nemusí být jen integer. A tak mě přinutí, compile-time, ošetřit obě možnosti.
(Jsem si vědom, že to není univerzální pravda, a že ne každý staticky typovaný jazyk se bude takto chovat. Ale je to má motivace, proč ano, a proč ne dynamické.)
No, skoro bych řekl, že to je univerzální pravda. Protože ten jazyk prostě musí nějak ošetřit tu druhou možnost.
Čili, jinak řečeno: myslím, že tady propadáš falešnému dilematu: není tady žádný rozdíl mezi statickým a dynamickým jazykem. "Statický" tě typicky donutí tu eventualitu explicitně ošetřit, dynamický typicky vyhodí výjimku (přičemž to, že máš povinnost
nějak ošetřit výjimky je implicitní).
Nehádám se s tebou, přijde mi taky lepší mít explicitně dvě větve, když tam věcně nutně jsou, ale nevidím mězi těmi dvěma možnostmi, jak k tomu přistupovat, tak
světodějný rozdíl jako ty