«前の日記(2007年01月18日) 最新 次の日記(2007年01月20日)» 編集

Matzにっき


2007年01月19日 [長年日記]

_ [Ruby] スターティア、独自CMSを「Ruby on Rails」に対応 開発を効率化

私が直接は知らない人が真剣にRubyをビジネスに使うことも 増えてきて、 最近、プレスでRubyやRuby on Railsの名前を見ることも珍しくなくなった。 そろそろ、いちいちフォローする必要もないのかなあ。

でも、うれしいけど。

_ [Ruby] receiver, name, owner of Method object

[ruby-talk:234949]の提案に従い、 Methodオブジェクトに

  • receiver - そのメソッドのself
  • name - そのメソッドの名前
  • owner - そのメソッドを定義していたクラス

の各メソッドを追加した。しかし、続いてこれらのメソッドの名前は 適切かどうかの議論が巻き起こる。

一番、もめた(もめている)のはreceiver。 つまり、obj.method(:foo)で取り出してきたものは メッセージを受け取ったものではないので、 receiverは適切ではないだろう、という話。

確かに普通、メッセージセンドというとメソッドの実行までを含めるから メソッドの選択と取り出しだけをメッセージセンドと呼ぶのもおかしいと言えば おかしい。

一方、Methodオブジェクトを経由しようと、通常のメソッド呼び出しだろうと selfの役割が変わるわけではないことを考えると、 receiverという名前が不適切であると言うことは selfのことをreceiverと呼ぶことそのものが不適切ということになる。

では、selfはreceiverではないのか。私はずっとそう呼んできたんだけど。

あるいはメッセージセンドというモデルを持たないC++やJavaでは thisのことをなんと呼ぶのか。まさかreceiverじゃないよね。


«前の日記(2007年01月18日) 最新 次の日記(2007年01月20日)» 編集