Earlier this year, arguments and debates raged about whether the open source model was doomed to fail in the 21st century economics of Software As A Service (SAAS). One thread of these discussions centered around the creation of a new type of license that could effectively preserve source code availability and author attribution while denying licensees some of the freedoms enjoyed by the authors, particularly the freedom to present a user interface distinct from so-called attribution.
I have weighed in on the question raised by so-called attribution licenses on email@example.com, but I have always been meaning to write down some thoughts on the flipside of those arguments, namely, how one existing license has brilliantly and effectively protected the three parties to the license--the authors, the users, and other developers--in spite of everything.
Consider the R project
. Both projects are governed by the GPL. Both projects are incredibly broad and deep, not only in the range of technologies they comprise (hundreds of highly specialized modules), but in terms of the constituents who use and contribute to them. Lately, I've been thinking: both have highly modular architectures that encourage diverse communities of use, but their licenses ensure a consistency that mere architecture cannot. To test that hypothesis, I've started thinking about what would these projects have been like if they were covered by a BSD-like license.
GRASS and R both offer integration modules so that a GRASS-centric user can use R, or an R-centric user can fully exploit GRASS. Both GRASS and R also implement integration modules for the PostgreSQL database, and PostgreSQL also returns the favor so that a PostgreSQL-centric user can reach into both GRASS and R (and vice-versa). The open source database PostgreSQL is covered by the BSD license, an OSI-approved license which has encouraged numerous startups to attempt commercial support offerings for PostgreSQL. Today, EnterpriseDB and GreenPlum both offer proprietary (closed source) products based on open source PostgreSQL (just like Apple provides closed source OSX based on the open source BSD operating system). EnterpriseDB and GreenPlum both seem to be developing technical innovations to PostgreSQL, but since some of these innovations are proprietary and not shared with the community, I fell that PostgreSQL is losing the kind of all-for-one and one-for-all mojo that GRASS and R enjoy. Thus, while the PostgreSQL project does benefit quite substantially from its overall open source citizenship, that citizenship is treated as second class and conditional by venture-backed innovators.
Last month I saw a thread on the GRASS mailing list about the need to purge code implementing algorithms that were published in a well-known mathematical handbook and reference. The reasoning was that the rights claimed in the copyright of the handbook were not compatible with the GPL, because they did not support the share-alike licensing requirements of the GPL. On the one hand it was terribly disturbing to think that copyright could take mathematical algorithms out of play, and on the other hand it was encouraging to see the GRASS community embrace the challenge that the GPL presents, which is to truly share and share alike (no discrimination). I could easily imagine that had the GRASS project been licensed under BSD, there would be tremendous pressure, especially from any venture-backed startups, to simply accept non-free terms and create forks of GRASS (blades?) that would have once licensing privilege or another. In that case, a BSD-style license would weaken, rather than strengthen, the resolve of the project's governance.
I have always been interested in mathematics, but now, for whatever reason, I've decided to do something about it. I've been buying books, reading up, and playing with R and the many modules and datasets that R provides. One great surprise and disappointment is how prevalent are proprietary data and mathematical methods in the literature. Nevertheless, the R project have bucked that trend, and again I believe that the GPL has specifically informed the governance of the R project, and hence the products it develops and distributes. Again, I believe that if the R project had been covered by a BSD-like license, it would have fragmented into hundreds of specialty modules, available for a price, but not to a community. Most importantly, it would have made it impossible for me to follow my mathematically curiosity across the innumerable disciplines that R now supports.
Which now brings us to the main point of this article: is it more important to build strength in community, from which commercial opportunities can be built? Or is it more important to define a particular commercial model, and then attempt to attract communities to that model? This is not unlike the dilemma faced by today's modern farmer: is it better to design a farm around the industrial fertilizers and capital equipment that is available for a given patch of dirt, or is it better to focus on making the soil as healthy as possible, and find a market for those who would buy the products that soil can sustain? Joel Salatin of Polyface Farms
argues and demonstrates the latter--that a focus on building up, rather than depleting the soil, is better for everybody and everything all around. He has created a thriving business around integrity, not expedience. I believe that one of the explanations for the success of the open source model is that a strong community is like good soil, and that the GPL's unrivaled popularity is due to the fact that it preserves and protects the integrity of the community, even at the level of governance.
I do not predict the imminent demise of all other OSI-approved licenses in preference to the GPL overnight. Rather, I think it is interesting, and worthy of consideration, how licensing informs governance, and how governance relates to the long-term sustainability of a community of use. I believe that the best way to embrace new modes of software use like SAAS, and the new business models that may accompany them, is to always think first and foremost about what is best for the community and to then build a market strategy based on what that community can create. Just a thought.