From: Tadashi Saito Date: 2003-07-07T15:47:38+09:00 Subject: [ruby-dev:20522] Re: [BigDecimal] proposal to change specification 斎藤です。時間があるのでまとめて ^^; ----- Original Message ----- From: "Shigeo Kobayashi" Sent: Wednesday, June 25, 2003 5:07 PM Subject: [ruby-dev:20456] Re: [BigDecimal] proposal to change specification > ということです。そもそも、bigdecimal-rational.rbを別に提供する > 意味はbigdecimal.cとrational.rbを無関係にするためですから。 > そのうち石塚さんがSuperRationalを作成するかもしれないし、 > そんなときでも、bigdecimal-rational.rbを変更するだけで > bigdecimal.cを修正するのは避けたいということです。 えーと、「SuperRational」という例の意味がよくつかめません。 すみません。 しかしもしRationalの仕様変更という事を意味されているのなら、 上記のような事にはならないと思います。 [ruby-dev:20446]で自分が提案した、bigdecimal.c内で bigdecimal-rational.rbを読み込んでしまう方法でも、また [ruby-dev:20453]で提案したRationalが読み込まれるのと連動して bigdecimal-rational.rbを読み込む方法でも、 bigdecimal.c内部に埋め込まれたのは「bigdecimal-rational」と 「rational」というライブラリ名だけですので、実際に仕様変更の 影響を受けるのはbigdecimal-rational.rbのみです。 しかし頭を冷やして考えてみると、自分と小林さんの間には、 「標準添付ライブラリ」というものに対する考え方の開きがある ように思えてきました。 小林さんはBigDecimalの、一つのライブラリとしての独立性を 保ちたい、という方に重きを置かれているのだと思います。 これはもっともなことです。 しかし自分はそれ以上に、Rubyという「一つの環境」としての 使いやすさが気になります。Rubyをこれから使おうという人の 中に、rationalとbigdecimalの相互変換をしたい人が出てきたと します。それは二つのライブラリを利用する延長線上にあるはず なのに、もう一つ新しくライブラリを読み込まなければいけないと したら、(非常に些細ですが)面倒に感じるのではないでしょうか。 現状でそういう趣旨のライブラリはないはずです。 また既に、添付ライブラリどうしであるrationalとcomplexには、 それぞれ相手を意識したコードが入っています。 標準ライブラリどうしの連携がスムーズであることも、Rubyの 使いやすさという点で意味を持つと思うのです。 加えて現在のRubyの状態から察するに、今後それほど急に数値 クラスが増えることはないでしょう。もしその追加があっても、 BigDecimalがその中の全てと連携しなければならない事には ならないと思います。さらにもし相互変換などの連携が必要に なっても、それほど長いコードにはならないと想像します。 またその部分は、新規のクラスを作った人の方に頼んでもいい でしょうし、その時は自分も手伝える限り手伝いますので :) 長くなってしまいました。 つまるところ自分は、[ruby-dev:20446]で書いたように require 'bigdecimal' require 'rational' と書いた時点で、相互変換のメソッドが使える状態になって いて欲しいのです。 他の方のご意見はどうでしょうか。 --- 斎藤ただし