An idea has come to me over time and all at once: We've been thinking the GPL backwards this entire time. I will try and go through what the problems are and where the solutions lie.
Unlike MIT-style licenses which are very permissive, the GPL attempts to secure guarantees for the end user. However, such guarantees are often very hard to deliver, and can be of limited value. Further, the license, when at the “source code” level, is too far removed from an end user for them to consider it valuable. In addition, the “viral” nature of the GPL makes it difficult for business to co-operate in the creation of more software.
My proposal is in a couple of parts, and comes from some observations in history:
GPL software should then focus on creating a holistic end user experience with that GPL guarantee, using either GPL or BSD style licenses for libraries. The guarantee pushes the deliverable of “freedom” front and center to the user’s faces. It also makes the GPL less viral, since it can be linked against BSD-style licenses. However, none of the guarantee is weakened: The software is completely free-as-in-speech. Any use of proprietary software will taint the guarantee at the library layers, thus disallowing its use for the GPLed end user software.
The GPL is clearly not working, and the reason is that it is too onerous on developers, and does not clearly outline the benefit to users. Branding user software with a GPL “guarantee” will more clearly communicate the benefit. Making the GPL “connect” to BSD style licenses (with the guarantee) will reduce the fear of the license for business and individual developers, and will also engender greater co-operation and leverage more BSD licensed software.