プログラミング言語Ruby
- 作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/01/26
- メディア: 大型本
- 購入: 21人 クリック: 356回
- この商品を含むブログ (129件) を見る
読んでて改めて思ったのだけどRubyの言語仕様は巨大。いろんな構文があって、同じことするのにもいろんな書き方があって、標準ライブラリにも同じメソッドにいろんな別名があって。PerlのThere's More Than One Way To Do It.の思想を受け継いでる。たぶん全部を理解する必要はなくて、その人のレベルや好みに合わせて自分で好きなように書けばよいのだろうけど、人のコード読むためには、いろんな書き方も学ぶ必要があって、結果的に学習コストは高いと思う。ただ素早く完結なコードが書けるのは言語やライブラリのコンテクストが大きいからでもあって、一長一短なのかなぁというかんじもする。
一番危険でなんでこんな言語仕様になってんだろうというのはprivateメソッドとメンバ変数が継承先のサブクラスからも見えるのでたまたま同じ名前で上書きしてしまうと、意図せず挙動が変わってしまうので、継承元のクラスの実装をすべて把握しているクラスしか継承してはいけない。つまり実質自分で書いたクラスしか継承しないか、標準クラスはprivateまで把握しないといけないということかい。よくわからないクラスは委譲とか使うのが安全なのか。純粋オブジェクト指向言語なのに、なぜだか迂闊に継承できないのがすごいモヤっとする。