The [L]GPL, Java and Asymmetry
Wednesday, 16 July 2003
A few points:
In his comment thread Dave suggests that "Class.forName() might also be a workaround", echoing questions on the LGPL in Java I previously mentioned. The answers to those questions still aren't entirely clear to me, although the position of simply steering clear of LGPL/GPL code for Java is seems increasingly rational.
Sam writes "An example of something that does solve the issue: JDBC" but I'm not sure I follow. Does this mean Class.forName? In other words, I can use a LGPL'd database code as long as I never directly invoke the LGPL code?
Andy writes "Thus we need a license for Java that guarantees contributors will donate back to the library that does not infect the outside code."
Do we? Why? I think there is sufficient incentive to release most derivative works anyway, and if someone doesn't, who cares? The open source project still gets more users, more support, more field testing, mo' better, than it otherwise would. If you make a few bucks selling proprietary extensions to my open source code, more power to you. (You run the threat, of course, of the community re-implementing your proprietary extensions in an open source fashion, thus destroying your business model. This disincentive to selling proprietary derivatives augments the incentives for releasing those derivatives to the community for further extension, testing, maintenance and support.)
A big issue I have with the [L]GPL is the asymmetry of the license. If Company X releases code under the [L]GPL, I'm less troubled by the need to similarly open my derivative works (although the people who sign my paycheck quite reasonably have a different perspective on that--there is some work that is best kept proprietary, if only because it pays the bills) than by the fact that Company X, typically acting as the "umbrella" copyright holder (to both their original work and my contributions) now has more rights to my contributions than I do. Under the viral GPL, I cannot use the larger work under any terms but those provided by the GPL, and in isolation my contributions are probably pretty much useless. Yet Company X (as the holder of the collective copyright) is free to take my (donated) work and theirs and release (or sell) it under whatever terms they choose. I wonder if Stallman had foreseen this consequence when constructing the GPL.
The "umbrella" copyright holder on a BSD- or ASF-type license has the same rights of course, but the license grants me the ability to do pretty much whatever I want with the larger work, short of claiming it all to be my own. There is very little that the copyright holder can do that I, as a user let alone contributor, cannot also do. It seems to me that the license with the least restrictive terms is the one that is most "free".