In this little note I would like to argue that the GPL is in fact a hindrance to the widest acceptance of open source software. But first a little background.
In essence the GPL is a license that is viral. Any software that an engineer writes that uses GPLed code is, by the terms of the GPL, itself GPLed. There are some gray areas and the LGPL is a whole other story, which I will not address here. The purpose of this virality is to prevent software hoarding, an endeavor I whole-heartedly support.
Ironically, however, although the GPL prevents one kind of hoarding, the use of GPLed code in commercial products in a way that prevents other people from benefiting from the original software and any added value generated from the commercial product based on the original GPLed code, it produces another kind of software hoarding; many developers by the environment they perforce must work in are often prevented from using GPLed solutions.
Let us look at the software development world from the point of view of an average developer as well as an average user of software. Because of our economic system (I refer to that which holds in the United States), most developers are forced to take jobs, which require them to write commercial and proprietary code. The terms of the GPL prohibit in most cases the use of GPLed software as part of proprietary software. This leaves Joe Programmer in an unhappy position. Unable to use GPLed software in his job, he is forced to reinvent the wheel, thus wasting his time, and in the end, driving the price of commercial software up, to the detriment of end users. This situation benefits no one.
GPL advocates will, of course, argue that the whole point of the GPL is to force commercial software out of business. When there is enough high-quality GPLed software, the argument goes, people will no longer need to resort to commercial software. As a socialist and a communitarian, I think this is a noble goal. A world in which everyone contributes what they like, and everyone receives what they want (a state of affairs I like to refer to as the Socialism of Plenty) I think highly desirable. However, we do not live in such an ideal world (many of course would consider the world I described far from ideal). Further, I don't think we will live in such an ideal world any time soon.
The GPL model is actually a mistaken path to follow in order to secure, in the long run, a world of free (as in beer and speech) software dominance, and in the short run as much good software for as little cost for as many people as possible, and to promote programmer contentment. Less restrictive, and most importantly, non-viral, licensing schemes are a better approach. They make programmers happy; they give us some of the best open source software: perl, and the various flavors of BSD among others.
By using non-restrictive licenses like those of perl or BSD we maximize programmer acceptance of free software, and promote high quality, in both commercial and free software. Some will argue that with licenses other than the GPL, improvements to an open software project will not get fed back to the main code-line. In some cases this is certainly true. However, experience teaches us that many improvements and bug fixes are returned to open software projects with less restrictive licenses. Look at the size of CPAN. In that case the community of developers, both commercial and non-commercial have responded to the power and utility of perl by building a module library that, almost literally, has an answer for every programming problem. If more open source projects were to adopt non-viral open source licenses, we would see a much stronger adoption of open source software in the commercial sector. I think this is a good thing; the more open source software gets used the more dependent the software industry will become on open source and more commercial vendors will see the industry wide advantage of supporting open source. The more freely available solutions there are to common and not so common software problems the more efficient both commercial and free software development becomes.