> From: Chris [mailto:chris / cmb-enterprises.com] > > I think the best way to introduce someone to OO programming is to first > explain that a method/feature/message/etc. is what an object "can do". This is where I see a chance for confusion. Message != method. Ruby objects can respond to arbitrary messages in a variety of ways, and yet the object may have no corresponding method. Most of the time, though, there is a one-to-one correspondence. For example, in Java, you can't write myFoo.arbitraryMessage unless myFoo really has a method called arbitraryMessage. There are ways to allow for arbitrary messages, but the syntax is ugly; Java doesn't seem all that conducive for separating message from method. With Ruby, I can have #----------------- class Foo def method_missing(methID, args=nil) methID.id2name end end my_foo = Foo.new puts my_foo.bar # Acts as if there is a bar method #----------------- I'm inclined to think it incorrect to say that that the code is calling my_foo's bar method. Am I being pedantic, or wrong? James