>>391
個人的には〜以降の後半部分は同意。

前半部分は、反対でもないが賛成でもない。
理由は評価軸が異なるから。
俺はhas-a/is-aという形式論よりは、最終的にコードが目的に沿うかが重要だとしている。
それは大半の場合に於いて「長期的保守の為の可読性」だが、場合によっては「速度」だったりする。
(速度が必要なアプリなら遅いと存在価値がなくなり、長期的保守する意味がないから)
そして疎結合化には大抵の場合間接参照を一度噛まして当該コードを集めることになるので、
どこまで疎結合化するかも判断の一つだと思っている。
(というより疎結合化して問題がない場合は当然疎結合化するので、
残った物は速度等何かトレードオフがある物になるだけだが)

なおC++はクラス単位でしか継承出来なくてその辺不便だが、
JavaScriptは関数単位で継承出来る。
(というか、親クラスを自前で組み立てるだけで、その時に関数単位で引っ張ってこれるだけだが。
おそらくこれは動的言語の特性で、知らないがPythonやRubyも同様の筈。
Goが継承を廃止したと聞いたので俺は当然この機能がGoにもあると思っていたのだが、
無かったので愕然とした。
そしてもやもや考えているうちに、多分これは動的言語の特性なのだと(今のところは)結論づけている。
ただ、そうならGoって継承出来ないだけの糞でしかないのだが)

そしてこれがよいかどうかはまた別なのだが、
いろんな構造を試すという試行錯誤が簡単に出来るのは上達にはいいと思っている。
だからクラス配置を学びたい場合は、C++ではなくてLL言語を勧める。