From: matz@... (Yukihiro Matsumoto) Date: 2003-02-13T13:15:42+09:00 Subject: Re: von Rossum on Strong vs. Weak Typing Hi, In message "Re: von Rossum on Strong vs. Weak Typing" on 03/02/13, Ryan Pavlik 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. | | |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.