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

Yukihiro Matsumoto wrote:
> |> (4) RubyGemsを添付した上で、gemをロードする機能だけをもった小
> |>     さなライブラリをコアに追加する。具体的にはprelude.rbで
> |>     requireする
> |> 
> |> のはどうだろうか、という気分です。
> |
> |これは(3)と同じなんじゃないかという気がします。「(3)でいく。ただしメモリ
> |消費量が馬鹿にならないから、可能な限りダイエットする」ではありませんか?
> |(もちろんそれを(4)と呼んでもいいと思いますが)
> 
> ま、どっちでもいいです。(4)としたのはダイエットの必要性を強
> 調したかっただけですから。

木曜日に笹田さんとIRCで話したのですが、「gemをロードする機能だけ」という
部分について、coreチームのみなさんと、私の認識に違いがあるかもしれませ
ん。で、金曜日に笹田さんがそのネタを振ってくれることになってたんですが、
忙しいみたいですね。いつまでもみなさんを待たせるわけにいかないので、先に
返信してしまいます。

> |つまり、1.9.1のrubyは、常にgem探索が有効な状態で動作する、ということです
> |よね。これについてはこれまで、私、やまだあきらさんから反対が出てますね。
> |ここまで確認できたら、次の投稿あたりで私の反対理由を書きます。私の反対意
> |見は空振り率が高いんで、やまだあきらさんもどうぞ。:-)
> 
> お待ちしてます。申し訳ないですが、今までの議論を必ずしも把握
> していないので、最初から説明してやってください。

以下が、これまでの流れです。足りないと思う部分があれば指摘してください。

- - [ruby-core:11752]で私が「デフォルトでenableするの? opt-in?」と振った。

- - RubyGemsのdrbrainのコメントからは、デフォルトdisableと読めたので、
  [ruby-core:11817]で私が再確認した。

- - [ruby-core:11818」でdrbrainが以下のコメント。以後opt-inで進む。

    Yes.  Not everybody will need RubyGems.  For example many Rails
    installations run with everything unpacked into a local directory
    for easy deployment.

    I would prefer users use RUBYOPT instead of enabling RubyGems by
    default.

drbrainの[ruby-core:11817]は、今日になってruby-coreに賛意が流れてるやつ
ですね。

	/	/	/

さて私は、デフォルトでRubyGemsの機能をenableにするのは反対です。以下は、
1と2の2つの前提、それぞれの場合の反対意見を書いておきます。[ruby-core:
12643]でまつもとさん、笹田さん、田中さんに問うている内容への回答に依存す
る違いです。

1. coreチームの想定が、現在のRubyGemsの機能を全て、標準でenableする、
   というものの場合。

1-1. 現行のRubyGemsはパッケージング、配布、feature loadingの各システムを
     まとめて置き換えている。それは悪いことではなく便利な側面もあるが、
     rubyがデフォルトで使える機能にし、「正式なRuby言語の機能」とするの
     であれば、弊害が多い。例えば;

1-1-1. 既存の他のパッケージングシステムとの相性が悪い?
       これは私自身は証拠を持っていないが、そう言っているディストリ
       ビュータが居る。なので、とりあえずdefault disableで、問題ないこと
       がわかってからdefault enableに移行すればよいと考えている。

1-1-2. 今後現れるかもしれない、他のfeature loadingシステムに制約を課す。
       具体的には、新たなfeature loadingシステムがみな、バージョン指定
       feature loadingをサポートしないといけなくなる。

1-2. 「デフォルトでrubyの機能ではあるが、あくまでもRubyGemsを標準添付し
     ただけで正式なRuby言語の機能ではない」という主張(もしあれば)は、
     前例がない(と思う)ので通りにくい。

2. coreチームの想定が、現在のRubyGemsの機能のうち、require置き換えのみ
   (gemメソッドは対象外)としてenableする、というものの場合。おそらく
   「常に最新のgemを読む」というつもりだろうと想定。
   1-1の機能分類で言えば、パッケージングおよび配布システムとしては
   RubyGemsを採用するが、feature loadingについては仕様変更してから取り込
   むということ。

2-1. 他者が作ったものを、切った貼ったして標準添付するという進め方に反
     対。もしそれが本当によいコトなのであれば、RubyGemsのメーリングリス
     トへいき、その旨提案して機能変更してもらってから標準添付すべき。

2-2. 例えばRubyGemsチームが今から上記仕様変更に納得したとして、1.9.1まで
     に安定させるのは無理でしょう。せいぜい1.9.1では見送って1.9.2とか。

	/	/	/

なお田中さんの、「require "rubygems" rescue LoadErrorというおまじないが
増えるだろう」という予想と、「RUBYOPTというおまじないは不幸」についても
ちょっと異なる意見があります。が、反論に対する反論を入れると論点が発散す
るので、今回は、なし。またいずれ。

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

iQEVAwUBRxMSQB9L2jg5EEGlAQJOCAgAg4ZrkQLhYYBld1u3yuN4ec9X1wFAjD7S
469KAzDMiNrdiPmehK2nPKW9C0GljZN7JfVIgVe0NxXgMzSXRCJx8A/qVhoZ6nNY
KDSPUmSYnVEkctou1xOpuCJd9HA0Q9DvqWZaaUpptYmcm5XRBpMfDhfYDIJNwgxw
b9e+yK5B/5redH7zhDxf92acrT8LI9cqeTWIBeDdQjZOKNqSqh6dcTqhEuxcUBOp
hDXzhCbfi0zAJVGsER9QMbR5FZflTSsCV7uJYUb4K4fqAfsfunsEKEVGzKMB755b
TCNa5HmvPhJQAK/UzO+TVgICBKTfpRbK1MAid8t3cOA7ZszKJyx/uA==
=3W37
-----END PGP SIGNATURE-----