[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Call for Comments



Greetings All,

I've written an article about the benefits of using the GPL for 
software development, and I wanted to get some comments 
on it before I send it over to OSOpinion (which I'll probably 
do tonight, or tomorrow morning). In any event, please give it 
a read and post your feedback. Thanks.

Jason

 <<GPL.txt>> 

PS: There's no hard returns in any of the paragraphs so it 
might look funny if you open it up in your browser. You should
probably look at it in an editor so you can word wrap it.
Intro

	Over the past year there has been a great deal of talk about the GNU General Public License [1] (herein referred to as the GPL), and it's my feeling that much of this talk is nothing more than uneducated babble designed to discredit it's usefulness. I'm sure that everyone has heard from someone or somewhere that the GPL is a virus which is passed from one release to the next, which prohibits any business from using anything released under it. Well, I'm here to tell you that the source of such information is not only incorrect but also completely ignorant. So this article is an attempt to do a bit of "fud-busting" by explaining a little bit about what the GPL is and why it's important to building great community software.

	Now, before we get started I highly recommend that you go read it. You can find it at the Free Software Foundation link below. Notice that it states in Section 0 that the GPL is only designed to cover the copying, distribution, and modification of software. I think this is an important point, so keep it in mind as you read on. Also note that in the preamble it says nothing about taking away your copyright on the software, and there is no mention of doing so in any of the sections. I just wanted to mention the copyright thing upfront because I've meet a number of people who didn't realize that you still maintain your copyright even after you distribute under the GPL, and I feel that this is important because violations of the GPL end up becoming violations of copyright because of a nullified license (as per section 4).

Community

	I can hear many of you thinking, "What does community have to do with software?", and that's a valid, though difficult, question. As an amateur anthropologist, I believe that community is food for our individual souls. It defines us, and teaches use how to understand and interact with the world. Without community humans would have made it no farther than huddling around fires in prehistoric caves. Community embodies such things as working together for common goals, sharing resources, and helping each other out in times of need.  

	The Free Software community exhibits all of the above qualities, and the main reason for that is because the GPL was designed to encourage them. Whether or not Richard Stallman realized it, his experience and frustration with the commercialization of Unix in the 80's is what paved the way for his building of a true community oriented license (I personally believe that he was well aware of this, but that has yet to be confirmed). So, in a sense the GPL was designed to build a community, which it has done very efficiently. 

	However, in order for the Free Software community to survive and flourish it must protect itself from greedy corporations and selfish individuals by making sure that community resources (software in this case) remain within the community. From my point of view, this is the problem with the BSD style license [2] since anyone can come along, take their code, modify it, and then redistribute it without ever giving the enhancements back. This seems very one sided to me, and I wouldn't put it past any greedy corporation or individual to take code and pass it off as their own proprietary product (but perhaps that's just my paranoia at work =). So, how does the GPL protect the community? Well read on to find out.


Protection

	The GPL was designed to offer and extend protection to three very specific rights. As I pointed out earlier these are copying, distribution, and modification of software, but more importantly the GPL assures continued protection of these rights by requiring you to redistribute any GPL'ed work or derivative under the same license. Some call this the virus part, but I call this the protection clause (it's section 6 in the GPL) since it guarantees that the software and all redistributed modifications will always be available to the community of free software developers and users. However, section 6 is not the only section that focuses on protecting software from being hi-jacked, section 1 and 4 also make sure that the GPL is transferred properly when anyone distributes, modifies, or redistributes the software.

	The GPL also protects your right to modify and redistribute any GPL'ed code. These rights and responsibilities are explained in section 2 and 3 of the GPL. If you're a developer working with GPL'ed code I highly recommend you read this section carefully since it outlines the way you can make changes to someone else's software, and this can save you a great deal of embarrassment when you redistribute the code. Section 3 is closely related to section 2, but it accounts for distributing binaries and making sure that you have made the machine-readable source code available on request. 

	The final sections (5, 7, 8, 9, and 10) are miscellaneous sections that make sure the license is accepted and adhered to. They are pretty clear and specific so there shouldn't be any questions about those.

	The main point of the GPL is to guarantee your rights, and the rights of the community without sacrificing one for the other. It does this very well, and as a result we now enjoy a flourishing Free Software community. I have also noticed that there are two very important side effects of using the GPL for licensing your software and these are evolution and longevity. Keep reading to get my take on them.


Evolution

	Trust has become a big factor in today's software marketplace. Everyone has seen software companies come and go almost overnight, and because of this we have developed a fine sense of distrust against buying software from unproven companies and individuals. No one wants to be stuck in that dreaded black hole of software obsolescence when some software company drops support for your software, but it happens all to often in today's speed-of-light marketplace.

	The GPL on the other hand makes sure that software will always be available in source form, and that it can be modified. This factors in greatly to improve the level of trust that users and designers have in Free Software. However, I see this trust not as the main objective, but rather as a vehicle for continued use and improvement of software. It's this continued use and improvement that turns GPL'ed software into a living entity in it's own right, and through iteration after iteration the software grows more effective, more reliable, and more trustworthy. Now I don't know about you, but that sounds like evolution to me. It has a birth, life, death, and rebirth process, and it acclimates to it's environment more effectively over each successive generation. I think you get my point on this, and it's my opinion that without the protection of the GPL this level of software development would never have been reached successfully. 


Longevity

	The other side effect of the GPL is longevity, which works hand-in-hand with the evolutionary process. What I mean by this is that because the software's source code will always be available and improved upon trust in the software increases dramatically, and as a result we will use it for longer periods of time. In effect the system lifecycle is greatly lengthened, which is often a goal of system designers and here the GPL does it naturally. Again the reasons for this is because of the protection offered by the GPL, and not just because you can get the source code for the program. Ultimately it's the protection clauses that bring out the community's synergistic qualities, and without it, all of the efforts of the community would be at the mercy of greedy, amoral predators.


Conclusion

	Well, I can't say that I've proven that the GPL is end-all be-all of licenses, but I can say with some certainty that it's the main reason why Free Software is so successful and why it's the main changing force in the software world today. End users and developers want all the benefits that the GPL brings to software. They want software to improve over time, they want the software to be available until they decide themselves to move onto a different solution, and they want to trust the software. The GPL makes these things a reality.

	I feel the need to add a bit of a disclaimer here though. If you’re a business and your only tactic for revenue is selling shrink-wrapped software then the GPL may not fit into your business model seamlessly. However, there are a number of very successful businesses that sell packaged GPL’ed software to the masses, so it’s not an impossible task but rather one that requires a high level of creative thinking and planning. On the other hand, if you want to build community around your software then the GPL is without a doubt a great way to get that started.


1.) http://www.fsf.org/copyleft/gpl.html

2.) Although in their defense many BSD developers have stated that numerous corporations have contributed code back to their project.