The GPL is usually considered to be an anti-business license; or, put another way, as a license that prioritizes freedom over profits. That’s probably right as far as it goes. At the very least, Richard Stallman’s intentions and ideologies certainly give a higher value to freedom than to profit. And I believe those intentions and ideologies are generally borne out by the terms of the GPL and by (most of) its effects.
But in some business cases, I believe the GPL is actually good for the bottom line. Let’s consider a business I understand pretty well: Clark & Parsia, a small Semantic Web consulting firm that focuses on R&D. We have amassed an impressive array of technical talent, and we’re located in a market—the US federal government—that needs that talent. But, truth be told, it’s a relatively immature market, in that it’s not very diversified.
Imagine that we develop something useful, like an RDF database (it’s not so hard if you try!). There may be a commercial market for RDF databases, though I don’t see much sign of a strong one, but that’s not especially germane here. Further imagine that we decide to make this database open source (for both historical and strategic reasons). We aren’t focused on building a product-based company, and we want to gain mindshare and attention, both for the database and, thus, for the company itself. Releasing the database under the terms of some open source license means that we can start to build a community of users, which gains us potential customers for our real business (which is consulting, application building, and R&D) and real users with real problems, which helps us focus our development, prioritize optimizations and extensions, etc.
Okay, so which open source license should we choose? To simplify things, let’s imagine that there are only two candidate licenses: GPL and BSD. Advocates of the BSD license—which have often been merely anti-GPL advocates, in my view—like to claim that the BSD license is more friendly to business than the GPL is.
But I always wanted to ask them: more friendly to which business?
After thinking about this for a bit, I’ve decided that the GPL is more friendly to our business than the BSD license is. Why? If we release our database under BSD, then the only conceivable motivation for another company, either a potential customer or an actual competitor, to enter into a financial arrangement with our company is because that company wants to trade money for changes to the database which that company values.
The conversation goes something like this: “Are you guys thinking about extending to disjunctive datalog?” “No,” we reply, “we haven’t really scheduled that work for this year, but for $100, we will do that work this year.” The company pays us $100 (our rates are really good!), we do the relevant development, release a new version, and the company uses our database in its own commercial product. We’ve done something we enjoy and are good at, and we’ve been compensated for it.
Imagine, however, this same scenario if our database is licensed under the GPL. In that case, there is an additional motivation for some company to pay us additional monies, namely, to arrange some licensing terms that are more friendly to its business. The conversation proceeds like the one above, but has an additional component: “Gee, we’d love to use your database since it covers disjunctive datalog, but the terms of the GPL don’t work for us; would you consider a dual-license arrangement?”
Dual licensing isn’t new of course; lots of open source companies (Troll Tech, MySQL AB, Sleepycat, etc) are using it effectively. It may in fact be one of the only viable open source business models. It also suggests that the GPL is business friendly — friendly, that is, to business that don’t have dominant market positions, or are located in immature markets, that need more than one revenue stream (though, really, what company doesn’t?), and choose, for various reasons, to pursue an open source strategy.
In short: if another company can do, more or less, anything with our database, and it’s actually a good one, then of course other companies will do whatever profits those companies with our database. If, however, another company’s use of our database is subject to the restrictions of the GPL, that creates an incentive to compensate us for a license with terms more favorable to it. The power of that incentive is limited only by (1) how badly that company needs our technology, (2) how good our technology is, and (3) whether it’s cheaper to buy favorable terms from us than it is to develop the technology themselves.
There’s nothing new in any of this; it’s been well understood for years. But it’s one thing to understand it, and it’s another thing to put it into practice.