zápisek je velmi emocionálně laděný a tvrdí, že dynamické jazyky jsou marketingový tah, vlastně neexistují a neuvádí žádný příklad (např. PHP by popisu odpovídalo, Python o poznání méně), kniha připouští, že existují, ale vhodné označení je "jazyky s dynamickou typovou kontrolou", nic o jediném datovém typu jsem ve vámi zmíněné části nenašel
V té knize je velmi důležitá část
Another important element in the above definition is its emphasis on classification of terms - syntactic phrases - according to the properties of the values that they will compute when executed. A type system can be regarded as calculating a kind of static approximation to the run-time behaviors of the terms in a program.
která říká, že typový systém je statická záležitost - tj. typová kontrola se provádí ještě před spuštěním programu. Python před spuštěním programu žádnou typovou kontrolu neprovádí - řečeno slovy knihy Python neklasifikuje termy podle vlastností jejich hodnot. Můžeme tedy říci, že Python nemá typy. Ale to je stejné, jako když řekneme, že má pouze jeden typ a přiřazuje ho každému termu (takovouhle typovou kontrolou projde každý syntakticky správný program, což je stejné chování, jako když typovou kontrolu vynecháme).
Za běhu Python nerozlišuje typy, ale tagy.
Jazyky jako C# mají více typů, ale ani tam nejsou typy za běhu přístupné a máte jen tagy. Uvažte například program
var p = new Pes();
kde proměnná
p má typ
Pes, ale díky podtypovému polymorfismu má rovněž typy
Savec,
Zvíře a
Object. Můžete dokonce napsat
var q = p as Zvíře;
a
q bude mít typy
Zvíře a
Object. Nicméně za běhu budou mít obě hodnoty uložené v promenných tagy
Pes bez ohledu na jejich typ v době kompilace.
Mj. autor blogového zápisku napsal knihu
Practical Foundations for Programming Languages, kde se tomuto tématu rovněž věnuje v kapitole 17 a 18.