Usuzuji podle toho, že existující tzv. dynamicky typované jazyky přidávají podporu pro statické typování - konkrétně Python (zatím volitelně: PEP-484, Mypy, PyAnnotate) nebo Dart 2 (ve druhé verzi je Dart nově staticky typovaný a s korektním typovým systémem) nebo JavaScript (TypeScript, Flow).
Díky pokrokům v typové inferenci už není třeba explicitně otypovat každý řádek, takže statické typování již není rušivé, ba naopak, staticky typované programy jsou přehlednější, neb statické typy slouží jako dokumentace, kterou kompilátor umí zkontrolovat. Díky statickým typům programátor a i jeho IDE rozumí programům více, což se projevuje ve vyšší produktivitě a menším množství chyb.
staticky typované programy jsou přehlednější, neb statické typy slouží jako dokumentace, kterou kompilátor umí zkontrolovat.
Toto slycham uz petadvacet let. V davnych casech se to pouzivalo k dukazu nadrazenosti Pascalu nad cimkoliv, protoze ten te jeste nutil na zacatku procedury deklarovat hezky vsechny promenne, navesti a tak, abys nahodou na nic nezapomnel a nemohl udelat chybu.
Dnes už je teorie typů dostatečně rozpracována, aby mohla posloužit v praxi.
Asi pred pul rokem jsem delal pruzkum mezi beznymi programatory (vetsinou Java, C#), kolik z nich v zivote vytvorilo generickou tridu (mimo cviceni ve skole). Vyslo to tak, ze kazdy dvacaty uz nejakou tu generickou tridu vytvoril. Poptavka po propracovanych typovych systemech je opravdu mohutna.
Tak Zboj je známý proponent statických typů.
Dynamické typování je určitě lepší na vytvoření prototypů, různé skripty, utility, testy, benchmarky a určitě by se toho ještě spoustu našlo. Statické typy pak na rozsáhlé aplikace o mnoho vývojářích.
Ideální cestou jde podle mě to, jak to dělá Dart, Typescript, možná Haxe i když to je trochu něco jiného. V zásadě dynamické prostředí, které umožní hot reload, nahrávání kódu za běhu a takové ty features, které velmi usnadňují a urychlují práci a k tomu nějaká statická nadstavba se silnými typy.
Na druhou stranu třeba Clojure je pokud si pamatuji dynamicky typované a spousta lidí si ho nemůže vynachválit.
Najlepsia je kombinacia silnej statickej typovosti s type inference a dynamickymi rozsireniami tak ako to maju funkcionalne jazyky.
v typescripte je sice silna staticka kontrola ale dynamicke moznosti su ziadne... neviem pomocou jazyka za behu overit typy... Neviem overit dokonca ani to ci do premennej typu number nacitam naozaj number. Ba za behu neviem zistit ani typ premennej, musia mi stacit len zakladne typy JSka nic take ako reflexiu tam nemame, typescript je v tomto smere velmi hlupa nadstavba, ktora sa spolieha len na kompilator ale s behovym prostredim si absolutne nerozumie.