Wes Dyer on Type Systems
Awesome post by Wes Dyer about Type
He tackles a lot of misconceptions and myths about Typing.
To frame his points, he starts with some fantastic definitions. I am all for
clarifying vocabulary and I really like this:
Based on the apparent confusion, I think it is best to clarify what I mean by each
of the following terms:
Type Checking - Verifying that code respects type constraints.
Statically Typed - Type checking occurs at compile time.
Dynamically Typed - Type checking occurs at run time.
Type Safe Language - A language which protects its own abstractions.
Type Unsafe Language - A language which is not type safe.
Strongly Typed and Weakly Typed - Depends on the author; The definitions
are so many and so varied that the terms are practically useless. It seems that anyone
can claim that language X is either strongly typed or weakly typed based on sound
reasoning derived from one of the various definitions.
Dynamic Language - A language which enables runtime inspection or
modification of a program; most languages can do this but dynamic languages make it
easy. It is common for people to refer to "dynamic languages" and mean "dynamically
typed languages" as the term is defined here.