Re: State of PostgreSQL's drivers in Python

Marko Kreen <[email protected]>
Newsgroups gmane.comp.python.db.psycopg.devel
Message-ID <[email protected]>
On 2/8/10, Nicholas Bastin <[email protected]> wrote:
> On Mon, Feb 8, 2010 at 05:55, Federico Di Gregorio <fog-NGVKUo/i/[email protected]> wrote:
> > On 08/02/2010 00:46, Cezary Statkiewicz wrote:
> > >  And a summary:
> > >
> > >
> http://it.toolbox.com/blogs/database-soup/postgres-needs-a-new-python-
> > > driver-36815
> >
> > Most of what he says is wrong.
>
> It would be interesting if someone would take it point by point as to what
> they believe to be incorrect (he doesn't really make that many
> non-subjective claims, so it's interesting that you state that it's mostly
> wrong).  From the perspective of someone who has dealt with most of these
> drivers (although not the Python 3 driver, which may be great, but many of
> us aren't in a position to use Python 3) over the last few years, the points
> seem pretty much on target (if broad).  In my experience pyscopg2 is
> definitely the best, but the documentation is this mailing list and the
> source code - which is to say, non-existant.  The license is also less than
> desirable for many open source projects, let alone the ambiguity of the
> commercial option.

Well, Josh collected bunch of anecdotes and added spin to them,
good for getting clicks but bad for PR...

- Calling licence "bizarre-hacked-up" is over the top, GPL+exception
  is pretty common - Linux, GCC, Java.  And the OpenSSL situation
  even requires it.

- The "transaction-control" issue is some local anomaly of his that
  they are not ready yet to report as bug, because even the
  guilty component is unknown.  So putting it into overview of
  Python drivers is stupid.

- Blaming the DB-API for multitude of drivers is silly,
  all databases should be affected then.

  The real reason is probably in the direction of Postgres minimal
  presence in the web world.  So the drivers were written with some
  specific app in mind, instead of "standard component".

  Another reason is likely "Core Postgres ignores surrounding
  infrastructure", which makes hard coordinate effort and
  get "preferred/only" projects in some area, unless they are
  coordinated elsewhere.  Eg: replication.

> Of course, the license "problems" are a matter of perspective - this license
> may be very much what you intend and that is perfectly fine, but you have to
> realize that it is a constraint for adoption, especially given a situation
> where both Python and PostgreSQL have significantly more flexible license
> terms.

Well, some of the confusion is actually legitimate.

The problem is that when you try to find a driver for Postgres:

  http://wiki.python.org/moin/PostgreSQL
  http://wiki.postgresql.org/wiki/Python

The Psycopg does not hop out as the preferred driver, and only one
whose DB-API 2.0 interface has gotten any level of scrutiny.

The GPL will scare people away.  "What, I need to GPL my client apps?"
Even if the GPL does not work that way when importing Python modules,
users don't want to consult lawyers when picking db driver.

Same for GPL+exception - it may be effectively LGPL, but people
rightfully are scared of custom licenses.  And the Psycopg
"exception" text is quite long thus leaving the impression
of custom license.

And the final blow is the dead website.

So if we want to keep Psycopg as preferred driver for Postgres:

- Fix website.  Simplest would be to point to Postgres wiki page.

- Set the licence to LGPL.  That would simply clarify current license.

The BSD license would be even better ofcourse.  As both Postgres
and Python are BSD-style licensed, then there is not really a good
reason for Psycopg be differently licensed.

-- 
marko
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.