-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Tanaka Akira wrote:
>> 長いファイル名はRubyに合わない感じがしますね。なんででしょう。大クラス主
>> 義だから? とすると本筋はrandom.rbかな。そして誰かがRandomクラスを書く。
>> Railsみたいなのが流行れば、種が1つじゃ困るでしょう。って、誰も困ってない
>> んかね。
> 
> 長い名前は使いにくいから、かなぁ。省略して短くするのは正しく
> は無いけど、使いやすさのためにはあえて踏み込む、という慣習は
> あると思う。

はい。ostructやpstoreがあるので、私も「新規に略称として導入するほどの名
称」であれば、気にならなかったと思います。ここで「新規に略称として導入す
るほどの名称」になりうる理由としては、「固有名詞として覚え易い」「誤り易
い利用法から正しい利用法への誘導になる」など。

というわけで、最初は、srandom.rbはどうかと提案しようと思ったんですが、
この場合関数名はsrandom()で、それはsrand()と混同するので駄目だ、と。
関数形式がなくなった今、srandom.rbはどうですかね? SRandom.random_bytes。

> 種が1つじゃ困る、というのはよくわかりません。シミュレーショ
> ン用の疑似乱数ならそうでしょうが、cookie に使う secure
> random number ならひとつあればいいような。

cookieに使うsecure RNGについては、ひとつあればよいと思います(*)。それ以
外に、randとsrandに依存しているライブラリが複数あって、それを混ぜて使う
アプリケーションの場合、あるライブラリが呼んだsrandが他のライブラリの前
提を壊すことはないか、と。例えば私がsoap4rの中でこっそりsrand呼ぶと、一
緒に使われて発狂するライブラリとか、ないかな。

# すいません、「Railsみたいなのが流行れば」というのは、余計だったかも。
# Railsじゃなくても起きます。

(*) 今回の修正により、種とは無関係になったわけですが。これ1.8にも入れた
ほうがいいと思うなー > ブランチメンテナ

>> 私だったら、securerandom.rbというかっこ悪い名前のまま追加して、「あーい
>> つか直さなきゃ」というトゲにします。そしていつか直す。しかし、互換性のこ
>> とを考えると、標準添付ライブラリでそんなことはできないか。
> 
> 私もメソッド名についてはそのような手段をよくとります。
> 
> でも、ファイルは古いのが残っていると目障りですし。

そうですね。1.9でもしrubygemsが入るなら、フィーチャー利用宣言(っていう
かrequire)をhookできる仕組みを入れて、そこで、存在しないファイル名の指
定を掴まえて書き換えられればいいのかな。

> むしろ、この件については長いほうがいいのだ、という積極的な主
> 張はできませんかね。例えば、しばらく考えて思い付きましたが、
> cookie の生成なんて個々の webapplication がやるものじゃなく
> てframework がやるべきものだから、secure random number を直
> 接使うプログラムは少なくて、secrand みたいに短くするほどの頻
> 度はない、とか。

最初に上記の論拠も考えたんですが、cookieの生成しか考えないのであれば、そ
もそもsecrand.rbなんて追加せずに、cgi/session.rbに追加すりゃいいですよ
ね。そうしなかったってことは、汎用の(cookieの生成以外でも使われる)
secure RNGが欲しい、という経緯だろうと思いました(それで最初に経緯を聞き
ました)。

だとすれば、RNGとしてrand/srandを使っていたほとんどの層に、スムーズに新
RNGに移行してほしいわけで、やはり短い名称のほうがいいと思います。

というわけで、今のところ「固有名詞でもない略称がちょっとなー」以上は思い
ついてません。# なので気にせずどうぞ

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRmnarx9L2jg5EEGlAQIfcAf/U5gSHtc3U0LivA4Tbmlrx1X7QIr/Laoj
x5RIXRJlVXLBV3aYqUDZOsXwGpjAvVnpacDmjcgHdh3Uylps6NFwWSWM1A3xK4MU
Xfv6cws9mG676rssrNdK/AR4uLdNKjPeyHJ+vbUqTpm9+QIfiXvuwWBbIiOvhrJx
wooHRsQyA/Kuv5E1WEzgMeNDX+Cw1+rGGVXLa1aAAoIVnFmP+7s+6q9HbM9kq5l9
42IvR/k2EXVcLQ/8ygbJYTgXboFsmAsrrP+JybPaM9fAQMEpBLliqcpfQ28+tFCd
1rjAw9lPpc+dHKVnhLJllwrireRKA0e9pm1pGnVlIcILZEIqS6uMIw==
=8j5a
-----END PGP SIGNATURE-----