Re: Perl 6 and DBI

Darren Duncan <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Message-ID <[email protected]>
On 2015-02-06 10:50 AM, Tim Bunce wrote on dbi-users:
> On Thu, Feb 05, 2015 at 12:23:40AM -0000, Greg Sabino Mullane wrote:
>>
>> As you may have heard, Larry Wall gave a speech recently declaring
>> the goal of releasing Perl 6 this year, 2015. Honestly, there
>> is little chance of me using Perl 6 until it has a good, working
>> DBI. Anyone know the state of things with DBI and Perl6? Is the
>> goal still to implement what is basically DBI v2, or perhaps
>> someone is working on a simple port of the existing DBI? Is
>> a working DBI even on their list of blocker features for a release?
>
> On MoarVM the perl5 DBI can be accessed via the Inline::Perl5 module.
> That probably counts as a "reasonable working DBI" :)
>
> Back in 2007 I said this:
> http://www.slideshare.net/Tim.Bunce/dbi-for-parrot-and-perl-6-lightning-talk-2007
>
> Then in 2010 I said this:
> http://www.slideshare.net/Tim.Bunce/perl6-dbdi-yapceu-201008
>
> I still think that's the right way to go, for all the reasons expressed
> in the slides.

I support this in principle, particularly the part about having a 
language-agnostic DBI that can be reused across multiple languages otherwise 
capable of running in the same VM.

However, I still think there should be no mandatory sharing of code between 
different DBMS interfaces, for example one shouldn't be required to share any 
code between say a PostgreSQL interface and a MySQL interface.

What we should have instead is documented API standards, and a shared test suite 
written to that API that each DBMS interface implements, and that this common 
API is what we call "DBI".

For example with a minimal delta from how it works now in Perl 5, we go from this:

   $dbh = DBI->connect('dbi:pg:foo', ...);

... to this:

   $dbh = DBD::Pg->connect('foo', ...);

... and the $dbh etc essentially behaves the same, but now DBI is just an 
interface that DBD::Pg etc provides to the public rather than a mandatory extra 
piece of mediating code.

> What's missing is a team of people with the right skill willing to work
> on it.  I've had little time to do more than the tinkering I've already
> done and I'm severely hampered by knowing ~zero perl6 or Java.
>
> Volunteers are most welcome to express interest on the dbi-dev mailing list.
>
> Tim.

I am certainly interested in this, and so am expressing so on dbi-dev.

That being said, for the moment I am working to tackle the problem from a 
different angle, which loosely resembles your proposal but is distinct.  I hope 
to have the start of something executable in about 2 months that people can play 
with.  (It will actually be in Perl 5 initially, but a Not Quite Perl port would 
follow.)  Then we could either use that as a point of departure, or otherwise it 
could just help inform your proposal.

-- Darren Duncan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.