As far as I've been able to determine, the only way to use the terms "strong", "weak", "static", and "dynamic" in relation to typing is something like this:
- A language can be dynamically typed. Languages like Perl and Ruby fit this description.
- A language can be statically typed. Languages like C and Haskell fit this description.
- A statically typed language can be strongly typed. Languages like Haskell fit this description.
- A statically typed language can be weakly typed. Languages like C fit this description.
I think that dynamic typing can be split into two subcategories as well — duck typing and . . . whatever the converse dynamic typing category would be called.
This raises a question, though. What do we do with a language like Objective C? It looks to me somewhat like it's both a duck typed language and a static, weakly typed language. Of course, I could just be wrong about the whole thing.
print substr("Just another Perl hacker", 0, -2); |
|
- apotheon
CopyWrite Chad Perrin |