«前の日記(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じゃないよね。

本日のツッコミ(全1件) [ツッコミを入れる]
_ 通りすがり (2007-01-25 15:17)

Javaではtarget referenceと呼ぶようです。<br>まだ受け取ってなくても将来受け取る予定であればreceiverで良いんじゃないでしょうか。

お名前:
E-mail:
コメント:
[]

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

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.