The two companies publicly support open source efforts and both have built products that take advantage of open source software. Yet Google and IBM tend to prefer open source licenses other than GPL.
Why is that?
It's a question that has a few answers. It's also particularly interesting in the context of the current discussion about revisions to the GPL in version 3, which is expected to be finalized this year.
Google's manager of Open Source Programs Chris DiBona recently told me that Google typically chooses the Apache license as a way to help broad commercial and open source adoption. Google does also release software under the GPL and will continue to do so when it makes sense even after the GPL version 3 comes out.
IBM's Steve Mills told my colleague Clint Boulton at a recent event that IBM lives with the current GPL today though they don't particularly care for it much themselves.
"It carries with it certain dos and don'ts as far as packaging. We think there are other licensing techniques out there that are more attractive, certainly the Apache approach and others that are somewhat less onerous than GPL," Mills said.
"We've been an advocate of these other licensing techniques," Mills continued. "We use them ourselves for things that we put out under open source. We don't use the GPL for reasons of the restrictive nature of GPL. "
Ahh, the restrictive nature of the GPL.
It's a common refrain for those that choose other licensees. While GPL is an Open Source or Free Software license, that freedom is also considered by some to be restrictive.
The GPL, whether it be version 2 or the upcoming version 3, is fundamentally different than the Apache license in one core and critically important area: reciprocity. That reciprocity is considered to be somewhat restrictive in that it requires those who make changes to GPL-licensed code to contribute those changes back to the community.
Enterprise Content Management vendor Alfresco recently decided to move from its Mozilla Public License based (which is similar in many respects to the Apache license) to the GPL.
Instead of seeing the GPL as being something that would handcuff their business, Alfresco has taken the view that it will actually help their commercial business.
Matt Asay, vice president of business development at Alfresco, told me that the risk of a forked version of Alfresco's GPL code would be a positive thing for the company.
"We would be ecstatic if someone forked the GPL version of Alfresco because then they get to go off on their fork and develop their own system but we would also benefit from the work that they do," Asay commented.
"If we can't compete based on the work that we're doing on our own code as well as benefiting form the work that a fork would do on theirs, then we don't deserve to be in business."
The debate over what open source license is actually better for business extends to nearly every facet of the open source ecosystem. In the middleware market, which is worth billions of dollars, IBM and Red Hat recently sparred over GPL and Apache and which approach is actually more open.
IBM argued that the Apache community approach was better with its Apache Geronimo, and Red Hat argued that the LGPL approach was better with its JBoss applications.
Raven Zachary, an analyst with the 451 Group, recently wrote a research report calling the GPL the No. 1 choice for vendors that are moving from proprietary to open models. Zachary said the GPL helps protect commercial interests.
"While it's still possible to fork and to do commercial re-use, it's much more difficult than with Apache or BSD licenses where there is no requirement of giving code back to the main tree," Zachary said in a recent interview with internetnews.com.
Eben Moglen who is helping to lead the GPL version 3 efforts, once told me something about GPL that has stuck in my mind as a defining statement for what makes GPL different: With the GPL, that which is born free will remain free.
But that's not necessarily the case with Apache-type licenses. One notable example is how Eclipse tends to work. The entire Eclipse model (which is one of the most successful open source organizations ever created) is to allow commercial vendors to build additional value on top of open source code.
If that additional value add were required to be open source as well, then it becomes more difficult for the commercial vendor to differentiate their product just on features.
Fundamentally it's all about the difference of being free versus being open.
Protecting software freedom
Though I often will refer to the GPL as an open source license, the original author of the GPL, Richard Stallman, would not be impressed. He uses the term "free software" rather than open source, and for him and his disciples there is a big difference between "free" and "open."
Free is all about freedom. That freedom is specifically defined as the four software freedoms that Stallman has deemed essential:
- Freedom zero is the freedom to run the program as you wish.
- Freedom one is the freedom to study the source code and change it, so that the program does what you wish when you run it.
- Freedom two is the freedom to help your neighbor; that is, the freedom to distribute exact copies to others when you wish.
- Freedom three is the freedom to contribute to your community; that's the freedom to distribute copies of your modified versions when you wish.
GPL version 3, as was the case with version 2, is merely an effort to protect Stallman's four essential software freedoms.
Yet thanks to the larger open source ecosystem, vendors like Google and IBM have another essential freedom: choice. The choice to choose a license that works for them and allows them to both contribute and profit from Open Source.
There is no question that both the Apache license and the GPL license are both open and can be used successfully by commercial ventures. The only question is what makes sense for the developer or vendor and their particular application and business model.
It is good to be free. It is good to be open. It's better to have choice.