Programming Language Typing
Aug 26th, 2008 by mark
The following comparison is from Dive into Python, by Mark Pilgram, Section 2.2.1:
statically typed language:
A language in which types are fixed at compile time. Most statically typed languages enforce this by requiring you to declare all variables with their datatypes before using them. Â Java and C are statically typed languages.
dynamically typed language:
A language in which types are discovered at execution time; the opposite of statically typed. Â VBScript and Python are dynamically typed, because they figure out what type a variable is when you first assign it a value.
strongly typed language:
A language in which types are always enforced. Java and Python are strongly typed. If you have an integer, you can’t treat it like a string without explicitly converting it.
weakly typed language:
A language in which types may be ignored; the opposite of strongly typed. VBScript is weakly typed. In VBScript you can concatenate the string ‘12′ and the integer 3 to get the string ‘123′, then treat that as the integer 123, all without any explicit conversions.
(Put here so I can find it again, quickly, in the future.)
Handy post, Mark. FYI: I’ve found python sits in the sweet spot (ie dynamic and strongly typed) and makes my life so much easier. In that vein, if you want to do some real apples-to-apples try python+sqlalchemy sometime (vs java+hibernate). The only downside to that potent combination is that you will thereafter grit your teeth when using hibernate.