On Mon, 12 Sep 2011 19:23:02 -0700, Darren Duncan <dar...@darrenduncan.net> wrote:
> Fundamentally I propose an inversion of control, where users invoke DBD > modules > directly that optionally invoke or compose DBI to help them, rather than > users > invoking DBI that uses DBD modules to help it. The other stuff flows from > that. The whole idea seems to make it unavoidable that all well functioning DBD modules have to be rewritten or changed, copying (big) parts of an extremely well functioning DBI module. The way DBI currently works, and the (restricted/restrictive) functionality it gives DBD authors has made it possible that there so many well functioning DBD's currently available. I for one know how much time has been involved in writing DBD's and I would certainly not jump for joy if I had to re-invest that time to (re)write my DBD's to match the new API. I have neither the time nor the tuits for that. I write DBD::Unify after having a buggy but functional integrated version in perl4, but waited SEVEN (7) years before writing DBD::Unify for DBI hoping wholeheartedly someone else would do it instead. The power of the current DBI - as it stands - is that it enables me to write *PORTABLE* perl scripts that work *without modification* on Oracle, Unify, MySQL, MariaDB, SQLite and CSV and probably other db's that I do not use. The fact that the DBI is restrictive (or restricted) is a good thing. First of all most of the restrictions are based on well thoughtthrough decisions based on speed and use of resources. I do not have to take those decisions again when implementing a DBD. The whole infrastructure is there just for grabs, which is the second point. Even though possibly I could have written some of that code more efficiently in the DBD directly, I will not have the maintenance burden for that code, not do I have to verify that the code is working correctly. I have all other DBD's do that with - and for me. -- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using 5.00307 through 5.14 and porting perl5.15.x on HP-UX 10.20, 11.00, 11.11, 11.23 and 11.31, OpenSuSE 10.1, 11.0 .. 11.4 and AIX 5.2 and 5.3. http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/