西@九大です。 From: "NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp> > Ruby界の2000年問題と言えばブチキレ新聞のテキスト退化ですが, > その西さんはどうなんだろう,とか言ってみる. 呼ばれて出て来た訳ではないですが(意訳:呼ばれたので出てきました)、実は 話を追ってなかったりします。(慌てて元記事を探しているらしい) #ちなみに、退化でなく進化です。「進化の終着地点は自滅」(碇ゲンドウ) 要するに、「String#gsub! の戻り値の仕様が変わる(成否を返さない)」とい う事ですか?そりゃ、一大事ですね。 私は基本的に反対です。理由は 3つ。せーの、ドン! 1. そのメリットが不明。(過去記事読めよ、ていうか ruby-talk?) 2. 「bang method が成否を返す」という現在の統一的な仕様は美しい。 (一部の "!" メソッドだけが成否を返す、とかいうのは絶対に嫌) 3. &~ は Thread の事を考えると、あいたたた。(意訳:論外)。 で、[1]のメリットはもしかして「method chain し易い」という事ですか?も しそうなら、「cascading messages いいじゃん、ていうか、やっぱり必要で しょ?」という気分です。(今回の例は文字列なので特に) [2]に関しては、現在の Ruby において、"!" が持つ意味として「自己破壊的」 「成否を返す」の2つが上げられると思いますが、今回の変更によりこれから は、"!" は前者だけを意味するようになるのでしょうか? というか、むしろ、今回の変更の意義はそこにあって、一つの記号に複数の意 味を持たせるのを辞めたい、とか?確かに既にちょこっと無理してる気配もあ りますね。では、それぞれを "!","?" に分解しましょう。 String#gsub => 置換後の文字列を返す(置換失敗時は self) String#gsub! => 自身を置換し、その文字列を返す(置換失敗時は self) String#gsub!? => 自身を置換し、せの成否を返す String#gsub? => 文字列を置換し、成否を返す(意味ないじゃん) すんません、破綻しました。。。 From: matz / netlab.co.jp (Yukihiro Matsumoto) > 出るのは理解できます。ま、私(たち)がメソッドチェーンが結構好 > きと言うのはありそうです。 なのに、cascading は好きじゃなかったりします?本質的には同じなので、 個人的には「両方好き」「両方嫌い」のどちらかしかないだろう、と思って いたのですが。 ------------------------------------------------------------------ 九州大学大学院システム情報科学研究科 情報工学専攻 博士後期課程三年 西 和則 ( e-mail: kazunori / swlab.csce.kyushu-u.ac.jp ) ------------------------------------------------------------------