委譲があれば継承がいらない?
引き続き、Pythonistaによる http://d.hatena.ne.jp/w_o/20081204#p2 への反論
で、Rubyはmoduleを使って委譲ができるので、クラスの継承が必要無いのであまり関係無い。
意味が判らなかったんだけど、http://synth.jp/pg/2007/04/ruby_10.html のことかな。
Pythonでこう書くのとどう違うんだろう?
>>> class Foo(object): ... def __init__(self): ... pass ... def foo(self): ... pass ... >>> class Bar(object): ... def __init__(self): ... self._foo = Foo() ... self.foo = self._foo.foo ... >>> b = Bar() >>> b.foo()
とりあえず、実際にPythonを使っていて、 object 以外から継承することって少ないんだけど、本当にRubyでは継承がめったに使われていないんだろうか?
class を超特別扱いするのがデフォの静的型付け言語に比べたら、classもただのオブジェクトという動的型付け言語でコンストラクタに限らず明示的にクラスを指定しないといけないことが多いのは仕方ないんじゃないだろうか?