> 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