From: Dice Date: 2010-06-21T08:35:10+09:00 Subject: [ruby-dev:41656] Re: 質問・提案:cgi.rbの後継となるライブラリについて Diceです。藤岡さん、返信ありがとうございます。 > えっと、どこが特殊事情なのかさっぱりわからないのですが、 私が「特殊事情」と書いたのは 「レンタル共用サーバーはgemコマンド1つでRackをインストールできない環境である」という状況のことです。 この状況のために、Ruby初心者はgemで入れるRackを使うよりも 標準添付のcgi.rbを使おうとするだろう、というのが私の考えです。 > つまり、初心者のためにRubyはcgiライブラリを改善すべきだと言うのは > 全然納得いきません。Rubyを使う万人が幸せで、かつ、 > メンテナがいるというのが重要だと考えます。 確かに、cgiライブラリが改善されたとしても Rubyを使う万人が幸せになる、というわけではないでしょう。 ですが、Rubyを使う初心者が幸せになるのであれば (そして初心者以外の人を不幸にするのでなければ) 改善するだけの価値はあると思います。 > 3. cgiのライブラリを同梱する > でいかがでしょう。かつてはperlはcgi-lib.pl(ファイル名自信ない)を > cgiアプリに同梱するのが普通でした。 「配布されているプログラムを使いたい」というエンドユーザーにとっては、それで解決するのですが 残念ながら「RubyでCGIプログラミングをやりたい」というRuby初心者にとっては、問題の解決とはならないように思います。 > これだけだと何も新しくする必要はなくて > cgi.rbでいいのではないかと思うのですが。。。 > そもそもどうしてcgi.rbだとだめなんでしたっけ? 元々の理由は、kwatchさんが執筆されたRubyist Magazineの記事に 詳細に記載されています。 http://jp.rubyist.net/magazine/?0023-Cgirb 現在では、CGIAltの導入によって 速度面での問題はおおよそ改善されたのではないかと思いますので 今のcgi.rbに残った問題は、以下の2つです。 1. RequestとResponseが分かれていない 2. 後からCGI以外のインターフェース以外のプロトコルへ対応するのが難しい また、上記の記事には書かれていませんが 3. rubyのバージョンが変わると、cgi#[] の動作が大きく変わる可能性がある (参考:http://www.nslabs.jp/rubycgi-18compat.rhtml) という点も、無視できない問題です。 -- Dice tetradice@gmail.com