People have a right to make their own code for any purpose.

If a freely offered, open source package is essentially used as a self-contained library by new code, it is presumptuous to force the new code built atop or alongside of this package to fit any particular political ideals. When I buy paper, my writings are not and should not be limited to the ideologies of the paper mill's owner. Though my words are meaningless to a reader without the paper, and a written paper with its paper removed would be nothing, no one believes that I am nor should I be beholden to the paper's creators' ideals and views for using it.

At the same time, if someone takes freely offered code and changes that code's internal workings to behave in a similar but improved fashion, they have an ethical obligation to the package's original contributors to not only offer this newly updated source freely to anyone interested, but also to contact the original project's maintainer(s), if they can be found, and let them know of and provide for them those changes. If I were to change one word or several of another person's written speech, I certainly could not, ethically, present it as my own and use it solely for my own gain. To alert the original author(s), or, at the very least, my listeners, of my changes and to my use of another author's words is not only a courtesy but an ethical obligation.

This is why the GPL is discouraged and the use of the LGPL (Lesser General Public License) or MPL (Mozilla Public License) for open source projects is recommended (though be aware of the LGPL's issue with Java and release with an LGPL-style license you authored or the MPL, if appropriate).

This is also why I dislike the X11, BSD, and MIT licenses. These licenses don't do enough to protect the contributions of the people that made the code -- they essentially enable legalized plagiarism. It's certainly one's right to make code that's this unregulated, but these licenses are nearly overly altruistic motivations. At the post mentioned above, I also use an extended metaphor to compare the LGPL to GPL & BSD and explain why I ultimately think the LGPL and MPL are the most ethical and fair. (That said, in the interest of full disclosure, I do enjoy FreeBSD via Darwin in Mac OS X.)

Just for kicks, I'm calling this the GNG movement (c) 2002. This quite obviously stands for "GNG's not GNU" and is pronounced "Gee-Ehn-Geez not Guh-nhu". And the GNG discussed here should not be confused with Robert Hartley's intriguing take on GNG.

(post updated nontrivially 20060416, 20060623, 20120706, 20131011)

Labels: , , ,