At 4:34 PM -0500 5/13/06, Jonathan Scott Duff ([EMAIL PROTECTED]) wrote (on dbdi-dev@perl.org):
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
third question:

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 dbdi-dev@perl.org or not, but there is a newer dbi2-dev@perl.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 perl6-language@perl.org 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

Reply via email to