原です。

In message "[ruby-list:14138] Re:"
    on 99/05/06, Yukihiro Matsumoto <matz / netlab.co.jp> writes:

|まつもと ゆきひろです

|In message "[ruby-list:14136]"
|    on 99/05/06, akendo / t3.rim.or.jp <akendo / t3.rim.or.jp> writes:

||object.cにある絵は、ちょっと感動しますが、ObjectとModuleとClassをまとめて
||しまえない理由が分かりません。ちゃんと読めば分かるということでしょうけど、
||種明かしをしていただけますか?
|
|えーと,「ObjectとModuleとClassはそれぞれ違うものだから」じゃ
|説明になってないでしょうね.

なっている気もする。(^^;

こんな絵があったんですね。引用してしまおう。

    /*
     * Ruby's Class Hierarchy Chart
     *
     *                           +------------------+
     *                           |                  |
     *             Object---->(Object)              |
     *              ^  ^        ^  ^                |
     *              |  |        |  |                |
     *              |  |  +-----+  +---------+      |
     *              |  |  |                  |      |
     *              |  +-----------+         |      |
     *              |     |        |         |      |
     *       +------+     |     Module--->(Module)  |
     *       |            |        ^         ^      |
     *  OtherClass-->(OtherClass)  |         |      |
     *                             |         |      |
     *                           Class---->(Class)  |
     *                             ^                |
     *                             |                |
     *                             +----------------+
     *
     *   + All metaclasses are instances of the class `Class'.
     */

構造だけでなくこの charactor art 自体が感動的!

ここで幾つか質問させてください。

OtherClass-->(OtherClass)-->(Object)

(i) この前の --> は継承関係ではなく is_a の関係ですよね。

(ii) 後の --> も is_a ですか?

(iii) (OtherClass) も is_a Class ですよね。
OtherClass も is_a Class ですね。

# is_a ってのをはっきり定義してないけど。

(iv) そもそもメタクラスは何のために必要になったんですか?

(v) Class is_a? Class が true である必要は無いのでは?
Class.new って使い道無いですよね。

(vi) クラスがオブジェクト(Class is_a? Object という意味だけで
はなくて OtherClass is_a? Object ということ)であるような言語っ
て Ruby 以外にもあります?まつもとさんの発明でしょうか。