作るにあたっての設計思想など。PerlのORマッパーは色々ありますClass::DBI,DBIx::Class,Data::ObjectDriber,Data::Model,etc...ここにあげたORマッパーは基本的には利用者が設定したtable構成を基にSQLを組み立ててdatabaseにクエリを投げます。その結果を各種オブジェクトにしています。私はいままでClass::DBIやDBIx::Classを色々使ってきました。DBIx::ClassはとてもパワフルなORマッパーだと思います。DBICはパワフルが由縁にとてもヘビーなORマッパーです。複雑なSQLを組み立てる場合、複雑なPerlのデータ構造を必要とします。dbhを普通に触ることもできるので、任意のSQLを実行させる事もできます。任意のSQLを実行した場合、その結果はDBIを直接さわっているのとなんら変わりがありませんでした。inflateもしてくれない、utf8周りの処理もしてくれない。してくれないものだから、自前でその部分の処理を行う必要があります。それではORマッパーの存在意義が薄くなってしまうと感じました。DBICに色々なコンポーネントを追加しても任意のSQLを実行する場合その恩恵にあずかることができないのです。DBICには色々な機能があるため、処理速度も重い方だと私はおもいます。HotSpotな部分でパフォーマンスが求められる部分にはDBICを使わずにDBIを直接使う事もしばしばありました。Skinnyの大きな目的としては1:生のSQLを発行した時にinflateとかutf8-flagを処理してくれる2:update,insert,deleteはDBICというかよくあるORマッパーみたいにできる3:簡単なselectもよくあるORマッパーみたいにできる4:小さなオブジェクト群で構成されており、デバッグが行いやすいです。#perl-casual@irc.freenode.netもしくは#dbix-skinny@irc.perl.orgまたはメールでお願いします。