Front page | perl.dbi2.dev |
Postings from May 2006
Re: Hello again
From: Darren Duncan
May 13, 2006 18:22
Re: Hello again
Message ID: email@example.com
At 4:34 PM -0500 5/13/06, Jonathan Scott Duff (firstname.lastname@example.org) wrote
>Apparently it's my lot in life to think about dbdi once a year
>as it was almost exactly 1 year ago that I asked the following:
>1. Is this list alive?
>2. Is anyone working on the dbdi?
>So, consider this my annual ping on the subject. Only now I've got a
>3. What can your average programmer-type person do to help?
>I understand that parrot maturity was a a bit of a problem before, but
>maybe it's far enough along now that isn't a problem?
I don't know whether it was meant to replace email@example.com or
not, but there is a newer firstname.lastname@example.org list now that you may
want to check out.
That said, it has next to no traffic as well; waiting for something, I presume.
While I am on both of these lists, I am currently putting most of my
personal efforts behind 2 much more radical solutions to the same
general problem that DBI addresses. Said 2 solutions are largely
orthogonal to each other.
1. One effort, as seen to some degree on email@example.com and
#perl6 @ chat.freenode.net, is to improve and/or adapt the data types
and operators built into Perl 6 itself so that you can easily do
natively in Perl 6 the same sorts of things that you would do with a
separate relational database product.
This centers on one being able to use and/or easily create Perl 6
Roles for things like Tuples and Relations, that a relational
database is founded on, as well as associated operators like
project(), restrict(), extend(), join(), summarize(), union(),
difference(), group(), rename(), and so on. Such as these are the
building blocks of all types of RDBMS select queries and DML.
Done properly, an in-RAM relational database can be on one hand just
as simple to use as in memory hashes or arrays, or a usual persistent
one could be as easy to use as DBM tied hashes. Since you're doing
this in Perl itself, there is no impedence mismatch at all, and you
can use all your Perl classes and operators directly with your data.
If you look at the Pugs repository, I'm making a prototype of desired
functionality / interface in the ext/Relation/ subdirectory.
2. My other effort is my Perl implemented Rosetta DBMS, which is
more arms length in that using it is like using a typical database is
through DBI, but that it parses its own queries and utilizes
swappable back-ends, whose native language (usually SQL) it
translates its queries to. Rosetta works like a traditional DBMS you
access through DBI, but that it typically uses other DBMSs behind the
scenes, giving you database language portability between them. This
in-progress work is on CPAN as its own distro.
3. Now, neither of my two efforts are the same as the current DBI in
which you write queries in the native dialect of the back end store
and it just passes them through. I assume that this dbi2 or dbdi
group still plans to deliver such a thing when the time is right,
since users like things that are familiar.
4. For people that want to help where something will have the
greatest impact, I suggest exploring ways that DBMS functionality can
occur directly in Perl 6 itself, as I see that is where a true
innovation and usefulness lies.
-- Darren Duncan