Types Of Confusion
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.
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.
good read.
Copyright © 2006-2008 Corey Goldberg
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.