ふなばです。

At 2000-07-10T22:44:32+0900 (2451736.07259JD),
matz / netlab.co.jp (Yukihiro Matsumoto) wrote:

matz> 1.6直前のライブラリの見直しをしてます。

matz> で、date/date2についても考えていたんですが、このふたつは統合
matz> した方がユーザのためという気がしてきました。

matz> そこで以下の3つの提案を行います。ふなばさんはどう思いますか?

matz>   (a) Date::newをnew3のaliasにする
matz>   (b) 例外を発生させるためのfailをraiseに置き換える
matz>   (c) name_of_month, name_of_weekメソッドを追加

(b) については、了解しました。以前から、まつもとさんが、控え目に撤回し
たいような意向があるのは、気がついていたのですが。

(c) は、僕もあまり良い名前だと思わないのですが (人のことはいえないが)、
なんか、date2 っぽくないし (そんなのあったのか :-)。できれば、ナシにし
たいです。でも、ちょっと考えさせてください。

# でも、良くないと合意ができてるものを残すこたあないか?

(a) については、最初から、そのようなことを、そのうち誰かに言われるだろ
う、とは思っていました。

matz> それぞれについて少々解説します。

matz>   (a)はdateとの最低限の互換性のためです。現在はinitializeの
matz>   引数がnew1相当なのでこのようになっているのだと思います。
matz>   aliasを利用して、newはnew3相当、initializeはnew1相当の引数
matz>   という実装を実現できるはずです。それは私でやってもよいです。
matz>   ふなばさんのポリシーでこれは譲れないという可能性もあります
matz>   が、この点での妥協が実現できればdateをdate2で置き換える
matz>   (date2は今のインタフェースのまま残す)ことを行いたいです。

これ以上のことがでてくると、抵抗がありますが、これくらいなら、いいよう
な気がします。もし、そのように変更することになれば、僕がやります。まつ
もとさんもそれほど暇でないと思うし、このあたりのことは、僕のほうが、ま
だ詳しいしと思うし、僕の貢献できるところは、僕がやらなくちゃ :)

date.rb を、ちょっとだけ date.rb よりにした date2.rb で、置き換えて、
date2.rb は、互換性のために残す、ということになるわけですか。date2.rb
の残しかたですけど、具体的に考えてます?  ほとんど同じものを2つ用意する
か、ひとつで済ませるようにできるのか。

date2 の new をつかっている人は、それほどいないはずなので (公式には、
new1 をつかうように勧めているし、って誰もしらないか)、いっそ、date.rb
は require 'date2' だけ、というのもあるかも (あるいは、その逆)。どう思
います?

あと、本のほうは、どうするつもりですか?  date2.rb でなく date.rb と、
しますか? 私見では、今なら間に合うだろうと思いますけど (無責任な)。

とりあえず、僕は、基本的に良い、と思いますが、焦るといいことないので、
細いところを検討して、決断は、明日にでもしたいです。

matz> しかし、date/date2のことを考えるとJavaのパッケージのような仕
matz> 組みである程度実績を積んでから標準ライブラリにするような運用
matz> を考えた方が良いだろうなあ。Ruby 2.0への課題か。

そうですねえ。なんか仕組はいるかもしれないです。

ふなば ただよし