questions from a lost sheep

Michele Simionato michele.simionato at
Fri Oct 3 08:11:00 CEST 2008

On Oct 2, 11:08 pm, johannes raggam <raggam... at> wrote:
> 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
> conversion.

I have always considered this argument rather weak.
It is true, we Pythonista we are in a better position
that Perl and VBScript users, but still how strong is
"strong" typing really? When I can never know the types
accepted by a function at compile time?
When I can change the class of
an object at runtime?
Dynamic typing has its advantages, but calling it "strong" is
ridicolous for people coming from a background in ML or Haskell. The
definitions change
according to the circles you frequent, so there will be always
confusions on the terminology, unfortunately.

More information about the Python-list mailing list