Internet Watchの 検索エンジンの裏側という連載の第5回 で面白い記述があった。
先日、僕は“注釈付きWeb”(Annotated Web)についての記事を読んだ。注釈付きWebをご存じだろうか? 人々が、さまざまなネットコンテンツについて論評を加えているWebサイトのことだ。そのもっとも一般的な例は“blog”かな。blogはご存じのように“Web Log”(Web日記)の略語。狭い意味では、さまざまなニュースサイトの記事を引用しながら、その記事について論評を加えている個人サイトのことを意味する。日本でも最近、流行しつつあるようだ。
blogってそういうものだったのね。
この定義は明確だ。この定義なら日記とは全然違うし、混乱することもない。 でも、それってやっぱり違うんじゃないかなあ。
これでは自分から情報を発信するタイプのサイトはblogと呼べなくなるんじゃないだろうか。 しかし、そのようなタイプのサイトがあるからこそ、 いわゆる「blog文化」あるいは「blog publicity」が成立すんじゃないかと思うんだけど。
昨日、メソッドフックについて書いたら、 akrさんからフォローがあった。
define_before_hook(:initialize){...}
define_after_hook(:initialize){...}
とか
define_method(:before, :initialize){..}
define_method(:after, :initialize){..}
はどうだろうか、という提案だ。フックの種類なんてbeforeとafterで十分だろうから、 これで良いのかもしれない。個人的には後者の形式は順序を変えて
define_method(:initialize, :before){..}
define_method(:initialize, :after){..}
の方が良いとは思うけど。
もう一つ別の考えとしては、
def initialize__before(*args) ... end
と普通のメソッドのように定義するというものだ。あるいは名前は
def initialize:before(*args) ... end
のように普通の識別子でない方が良いかもしれない。
いずれの記法を選ぶにしても、現時点では効率的な実装方法が思いつかないという、 それはそれで大きな問題が残っているのだが。
しかし、はらさんの「プロレスって」という ツッコミ はどういう意味なんでしょう?
私はプロレスはあんまり好きじゃないんですが、たまに深夜の放送を眺めていると、 ある種の「様式美」に心打たれることがあります。
って、そういう話じゃないよね。
This work is licensed under a Creative Commons License.
はらさんのは<br>>stdinなどはプロレス全体でひとつずつしか持てない資源なわけで<br>のtypoのツッコミですよね。
おおっ、ぜんぜん気が付いてなかった!。
「このクラスを使う前にしたいこと」と「このメソッドを呼ぶ前にしたいこと」で、微妙に違うので、なひは自動superは自動superで欲しいなぁ。。。<br>でもJavaのコンストラクタのsuperの記法は好きじゃありません。ブロックの中に書くと、飛び込んでから上を呼ぶみたいに見えるし(発想がC++です<br> def initialize(*args) : super(arg[0])<br> ...<br> end
この場合の自動superってのはどういうのを考えてます?<br>C++的なものはイヤって風に読めるんだけど。<br>じゃあ、イヤじゃないものはどんなのだろう?
Java的な挙動(ほっといたら自動super、明示的に引数の数を変えることもできる)で、記法はJavaじゃないやつ、が好み、というつもりでした。<br><br>うっかり、間に挟まったModuleのメソッドを、引数の数合わないままに呼んじゃったりするのを避けるには、自動superと、呼ばれたい側が明示的にhookするのと、どっちが安全なんでしょう。。。<br>(と思って昨日うろうろ探していたら、<br>http://staff.aist.go.jp/y-ichisugi/mj/papers/mj-jssst20020911.pdf<br>こんなのを見つけました。読まなきゃ)
JavaやCLOSでは引数の数の違いはあまり問題にならないんですよね。<br>Rubyではどう解決しようか。