Non GPL Python MySQL Client Library.

Mike C. Fletcher mcfletch at
Tue Jun 29 03:42:02 CEST 2004

François Pinard wrote:

>[Mike C. Fletcher]
>><rant>And developers; stop GPLing libraries which are essentially
>>commodities.  The GPL is effective when you are dealing with code
>>which is so compelling and unique that it is easier to buy into
>>the FSF's manifesto than to switch or write a substitute. [...]
>>GPL is a PITA when working on commercial products and often forces
>>reimplementation... when it's commodity code that's just entirely
>>wasted effort.</rant>
>GPL is a likely PITA for whoever does not like it.  If one doesn't like
>the GPL, then one should be congruent enough to merely not use GPL'ed
>code, instead of spending sweat and blood, trying to bend it.
Which was the thrust of my suggestion elsewhere in the message.  Free 
not just users, but developers as well.  But the implication of what you 
just advocated is that the community (which consists of both libre and 
non-libre developers) *must* develop two different versions of the 
software.  In other words, they *must* duplicate the effort of development.

>original plan of the GPL is to have so much good and attractive code
>flying around, which is GPL'ed, than people will give in free software
>instead of doing it all over again.  That plan went pretty well so far.
To some extent, sure, and for some project areas.  But there are lots of 
cases where people look at the GPL requirements and say "no, I have to 
re-implement that"... it's that waste that bothers me.  Particularly as 
a BSD-style developer of libraries, I find it annoying to have to 
re-implement trivial GPL libraries just to avoid infecting my users for 
a few hours of convenience on my part.

I don't argue against GPLing KDE, GCC, or the Linux Kernel, but GPLing 
an ever-so-slightly-better PostgreSQL client library... I mean, really, 
why?  Developers aren't going to look at that and decide to convert, 
they'll just go with one of the non-GPL-encumbered libraries and split 
the pool of developers in half, slowing humanity's progress by just that 
much in order to impose a particular philosophical position on others.  
This is what I mean by a "commodity" library.

>Libraries are commodities, but so is a lot of non-library software.
>Developers who consider that the GPL brought good software to them, may
>well choose to produce some GPL code in return, in so contributing to
>the critical mass.  You invite people to stop GPLing libraries because
>it annoys those who do not like the GPL.  I would rather read this as a
>practical proof that the GPL serves its purpose: if people against the
>GPL were not a bit bitten by it, the GPL would be useless.
My concern is the waste of effort.  The simple fact is that there are 
groups doing proprietary software.  For them the GPL simply isn't a 
choice.  Instead of getting their contributions added to an existing 
library, they must develop their own library.  LGPL (or BSD/MIT), on the 
other hand, allows everyone to use the same code base, contributing and 
extending it.  It avoids the fragmentation and waste.

The FSF's original strategy with the GPL assumes that the library is of 
such value that it is reasonable to go the FSF way rather than 
re-implement.  When the libraries are basically trivial, they don't even 
begin to surmount the barrier to entry, so all you're doing is forcing 
pointless fragmentation.  The LGPL was developed precisely because there 
are lots of situations where that assumption just isn't true, and it's 
more valuable to get the contributions of everyone to the library than 
to force the bifurcation of libraries.  If the FSF, which represents the 
most extreme view of the situation is having to admit that there is a 
need for such a license I'd submit that there's a pretty good argument 
for those not occupying the ideological extreme to seriously consider 
the argument for every library they develop.

As for the idea that the goodwill engendered by GPL software will make 
others want to GPL their code, the same argument holds for BSD and/or 
MIT, no?  I'd argue that it applies to an even greater extent, because 
the BSD/MIT software tends to treat the end-developer as an adult, 
rather than a recalcitrant child.

>Sometimes, people want the butter and the money of the butter (from a
>French idiom: "Le beurre et l'argent du beurre").  They want everything
>without giving anything back.  The GPL is there to remind people that
>the overall game is a give-and-take.  It is something useful.
If you like it, feel free to continue liking it ;) .  As I mentioned, I 
prefer the BSD licensing scheme.  And just to clarify, the GPL isn't a 
reminder, it's an attempt to *force* give-and-take.  That's perfectly 
fine if that's your goal, but don't mistake it for a touchy-feely 
reminder :) .  The question is whether you feel the need to impose your 
desires, or whether you rely on people's better nature.

>P.S. - Please do not read me as saying that the GPL is the only path to
>free software, there are other good free software licenses too.  But the
>GPL is not "wrong", and developers are not "bad" because they choose it.
Oh, come on, it's much more fun if we sling about huge generalisations 
and moral characterisations.  I'll start the ball rolling:

    The GPL represents an attempt to enforce maturity on others, while
    the Python, BSD and MIT licenses assume the maturity of the
    audience. Whether there is a moral superiority depends on whether
    you consider the proper way to improve society to be exemplary
    conduct and education or the external imposition of law (more
    basically, are people generally "good" or "evil").

    It would seem that the more "Zen" (and I use the term loosely)
    approach of living a good life, and giving your gifts to the world
    without attempting to impose your will on another is the path taken
    by the Python developers, but there are others, such as the Free
    Software Foundation who have chosen more of a bondage and discipline
    approach to improving society.

    The underlying philosophical question is one which every human must
    decide for themselves, so there is, perhaps no final solution to the
    question.  That won't stop me from advocating my position, however ;) .

And that, I think, is where I will stop, as we're obviously a good 
little way from discussing Python any more, and this debate really can't 
reach any sort of conclusion.

Have fun, and peace out,

  Mike C. Fletcher
  Designer, VR Plumber, Coder

More information about the Python-list mailing list