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/

Reply via email to