'. '

WhyGPL

From APIDesign

Jump to: navigation, search

GPL (the General Public License) is viral - software based on any GPL library needs to be licensed as GPL as well. This is good from the global perspective of open source projects. The more GPL open source libraries there is, the more GPL applications there will be.

The virality is also good from the point of view of the library vendor. Every public application based on such library needs to make it sources available publicly. This is good for promotion of the library itself (you would not believe how hard it is to find all users of NetBeans Platform now when we desperately need to show it is useful and used; its licenses -- GPLwithClassPathException and CDDL -- are not viral and thus many usages remain unknown) as it gains more visibility. Publicity makes the developer prouder (obviously I rather use software based on my library than other), and also it increases the possible contributions back to the library (as one can easily take useful pieces of code build upon the library and backport them back to the base).

However not every user of the library wants to release own code under GPL. It may seem that in this case the virality of GPL becomes an unsolvable problem. Surprisingly, the opposite is true. If the author of the library is open to such solution (like me in case of my Netbinox project), it can offer an alternative licensing mechanism. The users can then buy right to remove the virality - e.g. to incorporate the library into own application without releasing own code as GPL. In this case the library author looses some of the benefits discussed in the previous paragraph (visibility, more code with easy backporting), but instead it gets a donation. And donations later help the library to improve more rapidly.

Thus licensing libraries under GPL (with the option to remove virality) seems beneficial for all involved parties. Moreover it is also a clean way to manage sponsoring of an open source project. Instead of emotional attempt to ask for donation: "Do you care about our library? Support us, please!" where the library user needs to do decision about somebody else (about the library maintainer), we have more clearer situation where the library user needs to decide about ownself. The interaction goes like: "Do you want to produce GPL code? OK. No? Then donate!". The library user then makes decision about own business and that is more direct question. As such it cannot be left unanswered (in contrast to "do you want to make a donation?" where the simplest thing is to pretend the question has not been noticed) and yields actual results.

Thus donate to Netbinox (if you don't mind its license has meanwhile been changed to non-viral ones)!

Personal tools