Hi,

In message "Re: von Rossum on Strong vs. Weak Typing"
    on 03/02/13, Ryan Pavlik <rpav / nwlink.com> writes:

|> 1. Ruby is strongly-typed, meaning that if an object receives a method
|> that it cannot respond to, it will generate a type error if the method
|> belongs to a built-in class, or a method missing error otherwise.
|<snip>
|
|This isn't strong typing by any definition I've heard... ruby isn't
|strongly typed by default.  That is, there aren't places where it
|cares about the _type_ (class) of an object, only what it responds to. 
|There are certain exceptions of course.

Hmm, by my definition, strong typing means that every data has its own
type, without exception.  Weak typing is that type can be mixed and
changed very easily.  Dynamic typing is that types of expressions
(including variables) are determined at run time, whereas static
typing is that every expression (and variable) has its type determined
at compile time.  Under these definitions:

  Ruby: strong dynamic typed language
  Java: strong static typed language
  AWK:  weak dynamic typed language
  C:    weak(?) static typed language.
  Perl: weak part static, part dynamic typed language

							matz.