From: "NARUSE, Yui" Date: 2009-05-16T13:12:33+09:00 Subject: [ruby-dev:38471] Re: SQLiteライブラリ 成瀬です。 Kouhei Sutou wrote: >> これに対して今回新しく起こしたライブラリでは、 >> * nativeかつコンパクトな実装 > > コンパクトな実装ということは重要なことなのでしょうか? sqlite3-rubyよりコンパクトという相対的な話ですね。 アレよりはメンテしやすいという話です。 機能追加に関してはやぶさかではありません。 > 例えば、sqlite3_bind_*相当の機能は提供されていないのですが、 > これは必要がないということでしょうか? これは他の人の意見を聞きたかったところです。 最近はO/RマッパーがSQL文まで組み立ててしまうので、 手で書くなという意味であえて外すのもありかなぁと思いつ、 どう思われますか。 > また、SQLite3のエラーはArgumentErrorかRuntimeErrorで返されま > すが、SQLite::BusyやSQLite::ReadOnlyなど専用の例外クラスを返 > して欲しいです。busyのときは少し待ってからもう一度試してみる、 > というような処理を書くことがあると思いますが、そのときにエラー > メッセージを正規表現でマッチさせてbusyなエラーかどうかを判断 > するということはしたくありません。 これもそういう意見はあるだろうなぁと思いつつとりあえず外しておいたところです。 このライブラリにおいて例外を区別して分けたいのはSQLITE_BUSYな時に ちょっと待ってからリトライだと思うのですが、 それはすでにこのライブラリ側で行っています。 さらにもうしばらく待ってからリトライが欲しいとか、 別のケースを捕獲して何かしたい例があるのならば例外を分けますが、 そのようなケースってありますか? > 他にも、colnamesではなくてcolumn_namesとかcolumnsにして欲しい > など細々したものがあったりします。 うーん、column_namesあたりにしますかねぇ。 >> * それなりにやる気のあるメンテナ >> という利点があります。 > > いきなりRubyに標準添付するのではなくて、まず、独立ライブラリ > として使ってもらって使いにくいところなどのフィードバックをも > らった後で標準添付を検討するというのでは遅いでしょうか? まずはgemでやったらという指摘があることは理解しています。 しかし、既に実績のあるSQLite3/Rubyがgemである中、 gemでわざわざ入れて試してくれるかについてわたしは悲観的に見ています。 つまり、独立ライブラリとすると、使ってもらえないのではないかと。 とすると、そもそもそんなライブラリは必要とされていないんじゃないかという 反論が考えられますが、RailsやMerb等をはじめとしてWebアプリケーション フレームワークが栄える中、バックエンドであるRDBの重要性は増す一方で、 開発用の簡易なRDBに対する必要性も日に日に増しています。 この位置に来るRDBは今のところSQLiteが圧倒的に強く、 有力な代替ライブラリの話も特に聞きません。 ゆえにSQLiteライブラリはRubyに標準添付されるべきだと思っています。 わたしがこだわるのはここまでなので、 今回の実装よりよい実装があればそれに変えることには反対しません。 なお、SQLite3/Rubyはメンテナンスが終了している上に、 依存先であるdlがメンテナ不在なのが問題だと思っています。 > とりあえず、単体テストの中でpとかppを使っている状態では標準 > 添付になって欲しくないです。継続して改善されていくのであれば、 > ある程度継続して改善された後に標準添付になって欲しいです。 当然単体テストとrdocが揃うまでは標準添付にはなりませんね。 そこは当然のことだと思っています。 というわけで、その辺はこの土日でなんとかします。 -- NARUSE, Yui