Tim and I had a great conversation with Andy Astor of EnterpriseDB last week. EnterpriseDB is a drop-in replacement for Oracle, based on the PostgreSQL codebase. Rather than forking the code, they’ve developed their product as a collection of extensions on top of PostgreSQL, and their releases track the latest version of the public code. They contribute patches back to the core in the virtuous cycle of benefit->contribute->benefit. They hire several developers to work on PostgreSQL (6, last I heard), and are among the largest donators to PostgreSQL.org. They’re a significant open source success story as a viable and growing competitor to the largest commercial database on the market. And yet, they’ve met a mixed response in the community: enthusiasm for their contributions and participation, but hesitation because their extensions aren’t open source.
Nat recently made a provocative post taking the position that companies like EnterpriseDB who don’t release all of their source code don’t belong in an “Open Source” conference. Really, it goes back to the age-old GPL vs. BSD licensing argument. GPL takes the perspective that proprietary versions should never be allowed, and so requires all versions of GPL’d software to be released under the GPL. The BSD license, as well as Apache, MIT, Artistic, etc., take the perspective that proprietary versions of open source software are an expected part of the open source ecosystem. They’re even desirable, especially when the company involved is contributing back to the open version of the code, and employs developers to work on the open version of the code.
It seems a bit hypocritical to extoll the greater freedom offered by the BSD license (as its supporters do), and then look askance at companies who use the rights granted to them. The dual-licensing model of MySQL is only possible because the GPL withholds certain rights from the users. It has always struck me as ironic that the primary use of the GPL in the business world is to exert control over customers and require them to pay licensing fees for uses outside the GPL. Without that option, the other business models available are pure support contracts (which don’t make for terribly compelling marketing material), or adding value to the open source code before passing it on to the customer, so they feel they’re getting something worth paying for. The latter is the strategy EnterpriseDB is taking, and it’s working well for them. And, who knows, some components that are currently proprietary may eventually be released, if for no other reason than the fact that it’s easier to maintain changes in the core than to continuously integrate changes between the core and a branch.
Should EnterpriseDB be called an “open source company”? What else would you call a company that bases their entire business on offering support and enhancements for open source software?