The debate on the net for the past few days are about “Open Core”, for which the best coverage is here by Simon Phipps. Phipps coverage trumphs PJ’s of Groklaw. This is in itself no mean feat, considering PJ is always still the best after you take away her GPL-rant and this time, she tone it down significantly.
My first reaction is a bit of a puzzle. I do not see any need for the word “Open Core”. What is described as “Open Core” is something we had for a very long time. Proprietary software, including Windows, always had some open source component in it. The BSD experiences shown that a lot of downstream developers, including proprietary ones, do prefers to contribute modification/enhancement to upstream development effort. My own experience says that as a developer become more and more sophisticated in a particular software, a time will come when he will, by necessity, contribute back because he is pushing beyond the envelope of the software he is working on.
Where proponent of “Open Core” says it is different from closed source is the extend of which things are open sourced. They says they give you everything, but the glue that makes everything join together in a usable product. I finally understood it as like writing a complex mathematical algorithm where what you do is to write a shell script that glues together several algorithms from GNU Scientific Library, but instead of giving everything, including the shell script, out as open source, you simply say I am not going to give you the script but instead I will refer you to the GNU Scientific Library. Furthermore, I am not going to tell you how I constructed the shell script.
Am I doing anything open source? No. That is why proponent of “Open Core” has to coin the term. They will argue that unlike me, they do contribute to open source because unlike me, they wrote the replacement of the GNU Scientific Library and post that as open source. And because they wrote the replacement, and their proprietary shell script is just a very small proportion of their proprietary offering, their product is “Open Core”.
The way I see it is, this is no difference from distributing a “developer library”. Microsoft, Apple and IBM will ship you a copy of their developer library on request and you can use it to construct a simple “Hello World” application. Most, if not all, will then allow you to redistribute your “Hello World” software in whatever licensing terms you choose. Does that qualify your software as “Open Core”? Or even better, can Microsoft, Apple and IBM insist you call your “hello world” program Open Core?
There is no pretense that Open Core is unusable by any users who downloaded it out of the box. For this, as Simon Phipps and others correctly point out, means it fails the open source philosophy when it comes to shipping “working” software. Therefore, in my book, they should not link “Open Core” to open source at all.
As for “Open Core” as a way to fund the development of the open source component in the “Open Core” software? I leave it to the people who wants to pursue this business model. My heart says it will not work, but I had been wrong quite a few times, and the world favour the brave.