Asi narážíte na spojení silný typový systém. Tímto spojením nemám na mysli nějakou přesně definovanou vlastnost, snažím se tím jen říci, že pomocí typového systému Reasonu lze popsat více než pomocí typových systémů populárních staticky typovaných jazyků. Mluvím tedy o vyjadřovací síle typového systému.
A samozřejmě, existují typové systémy, které jsou mnohem silnější než ten Reasonu. Např. dovolují popsat, zda funkce skončí nebo dokonce jakou má časovou složitost.
Protože pokud jste někdy viděl jazyk se skutečným typovým systémem, tak, jak už tu někdo psal, dojdete k tomu, že python (a spol.) jsou jazyky s jedním tagovaným typem. Prostě když v tom reasonu napíšu (neumim ocaml, takže plus minus):
type tenJedenTyp =
| Cislo(int)
| Retezec(string)
| Bool(bool)
| Desetinne(double)
| Trida(string, tenJedenTyp, tenJedenTyp String.Map.t }
Tak mám +/- hotový celý typový systém pythonu. Dokonce i v té "strong" variantě...
Ale on typový systém s jedním typem... no je lepší než žádný typový systém, ale fakt toho moc neumí. Jako třeba staticky něco garantovat. A to vypadá, že reason umí, už třeba proto, že těch typů má trochu víc než jeden.
Tohle je hra se slovy a definicemi :) Zrovna jsem začal číst Pierce (types and programming languages, dá se to najít i online), a tam používá následující "neformální" definici:
A type system is a tractable syntactic method for proving the absence of certain program behaviors by classifying phrases according to the kinds of values they compute.
No a v pythonu (pokud pominu nedávno přidané typové anotace, které skutečně jsou nějakým typovým systémem) nic takového není. Ještě jedna citace:
The word “static” is sometimes added explicitly—we speak of a “statically typed programming language,” for example—to distinguish the sorts of compile-time analyses we are considering here from the dynamic or latent typing found in languages such as Scheme, where run-time type tags are used to distinguish different kinds of structures in the heap. Terms like “dynamically typed” are arguably misnomers and should probably be replaced
by “dynamically checked,” but the usage is standard.