Já nevím, tohle se mi nezdá. Když mám data z externího zdroje, stále to můžu otypovat. [...] typem určím, že buď zadá číslo, a pak ho zpracuju, nebo zadá nečíslo, a pak mu hodím chybovku. Tohle jde udělat compile-time.
To rozlišení mezi číslem a (čímkoli jiným) není nic jinýho, než dynamický typování
Vstup od uživatele není moc dobrej příklad, protože to je vždycky string. Zajímavější je třeba deserializace z disku nebo sítě.
Jde vlastně o featuru, moct ty typy vypnout. Protože třeba ten Haskell to vždycky kompiluje jako na produkci.
Přesně tak. Chceš jenom něco narychlo prubnout a přitom jsi nucenej psát stejně kvalitní kód jako pro produkci. A to je opruz.