Hi,

At least it was possible to present some meaningful information on the
subject. :-)

> An object in Ruby may even change its type from one moment to the
> other.  A Socket object may suddenly become a File object.

dewd@heaven:~ $ irb
irb(main):001:0> a = b = "ccc"
=> "ccc"
irb(main):002:0> a = 1
=> 1
irb(main):003:0> a == b
=> false
irb(main):004:0> b
=> "ccc"

The "ccc" object was not changed in any way. If we didn't have any
further references to it, then it would be free to be garbage
collected.

The _a_ variable, on the other hand, now references the new object _1_. 

In other words, no type was changed whatsoever. Just a new object was created.

I don't like the "Duck Typing" term. I prefer just "Dynamic Typing." I
have tasted the dynamism provided by the dynamic typing when coding in
Ruby. It allows for great designing opportunities, without pushing the
design to UML or such tools.

I can try new ideas without much effort. So I can let the curiosity
flow while I'm coding. I mean, if I didn't like designing while I'm
coding (Agile/XP), I would choose a slower language like Java and
think and chat a lot about the design before trying it in code. Rings
any bell? :-)

Cheers,
Joao