From: MALTA Koji Date: 2002-04-05T00:58:07+09:00 Subject: [ruby-list:34812] Re: Ruby バージョンの検査法 丸田です。 ヌルい自分でもよく解りました。 丁寧な解説ありがとうございます。 At Wed, 3 Apr 2002 01:54:29 +0900, Yukihiro Matsumoto san wrote: > | ああ、「バージョン比較に意味はない」、そこなのですね。 > | 自分が作ったスクリプトが、様々な環境で動くことを前提に、動作を確認し > |ているRubyバージョンに限定し、そのバージョン以外で動かす要求があれば確 > |認し、対応できるバージョン範囲を広げていく、というのが特殊なニーズだと > |は思えません。 > > うーん、それをプログラム内で指定することに意味があるかどうか。 > ドキュメントに書くぶんには「桁がどうなるかなんて知らなくても」 > 人間はちゃんと比較できるわけですから。 それも解ります。 後の流れにもありますが、 ・ドキュメントが用意されないようなレベルで提供されるスクリプト ・どのRubyバージョンか判らないような環境で、インストールもされずに 勝手に動かされてしまうスクリプト ・そしてそれがRubyだとかすら何だか知らない利用者がいるスクリプト の場合(これらは主にCGIに多く見られます)、てっとりばやく「このプログラ ムは動かない。保証しているのはRubyバージョン○○だ。 そのバージョンに するか、システム管理者に文句言え」とスクリプト起動後に蹴る、というのが 一番苦労がないので、バージョン比較に頼ろうとしてしまいます。 安易ではありますけど。 > Rubyの現状を考えると、クロースドソースのソフトウェアと違って > Rubyのバージョンは星の数ほどあるわけですから、たとえば「バー > ジョン x.y 以上なら動作する」というのは、実は厳密には「バー > ジョン x.y 以上なら動作する、ただし20020322から20020401では > 動作しない、他にも動作しないバージョンがありそう」とかになる > ような気がします。^^;;; たしかに…、なりそうですねそれは。 たぶん、そこまでになっていて、さらにニーズがあれば「しょうがない、最 新版Rubyに依存する形で動くように全面的に書換えて、全ホストのRubyも揃え ようか」となるような気はします。 > たぶん、プログラム内でのバージョン判定ってのは、Perl4と5のよ > うな、非互換を含む大規模な変更くらいにしか有効ではないんじゃ > ないかと推測します。いまんところそれほど大規模な変更はRubyで > は発生してませんから。 解ります。 はたから見ている分にも、そういった大規模な変更があるようには見受けら れません。 おそらく、今回の件は、Marshalの記事([ruby-list:34545])を見て、必要以 上にバージョン差に恐れをなしたことが原因のような気はします。 > ということで、「桁がどうなるかなんて知らなくてもバージョンを > 比較できる方法の確立」よりも前にリリースエンジニアリングをな > んとかしろって話でしょうねえ。正直私の手に余ってますが。 解りました。 自分の中で、Perlのイメージのまま接しているところがあって、その辺りは 大変に申し分けないです。 一方で、Rubyが評価が高まり、広まった結果、おそらくそういった段階に来 ているのではないのかな、とも感じました。 ---------------------------------------------------------------------- MALTA Koji/丸田 康司 Tokyo, Japan