Interesting. My only quibble is when you say that in Ruby, types and classes are the same thing. I don't know any Python, so maybe you are trying to say that the role of "types" in Python is taken care of by classes in Ruby... i.e. there is another kind of thing in Python called a "type", but Ruby unifies that concept with the "class" concept. Maybe that's what you mean... I don't know. But (at least outside of the Python-comparison context) it's incorrect to say that classes and types are the same thing in Ruby. Ruby has what I think they call "duck typing": If it walks like a duck and talks like a duck, it's a duck. (Or something like that. :) For example, let's say I consider something to be a duck if it has a quack method, that is, if: `obj.respond_to? :quack' I can turn a string into a duck pretty easily: str = 'duck' # not a duck yet def str.quack puts 'coin, coin' # a french duck, of course end # now str is a duck So I have implicity "defined" a duck type without ever making a Duck class. In Java I would need a class or an interface or something, but in Ruby that's all behond the scenes. Sorry if this seems off-topic, but that's what "type" refers to usually (at least I thought so). Chris