There’s been some fiery debate over time about whether Apple is leeching off the open source community. Now one of the developers of KHTML, which forms the basis of Safari has come out and essentially said that in his eyes Apple is ripping off the open source community, insofar as it is not really giving back its code improvements in a useful way.
Until now there have been two (circular) arguments:
Argument number one, usually by Microsoft sympathisers, goes like this: “sure, Apple may have a great operating system and a great web browser, but that’s an easy thing to accomplish when the open source community has already built… a great operating system and a great web browser.”
This argument, of course, fails to take into account that although Apple used BSD as the basis of OS X’s core (Darwin), it added a huge new layer on top of it in the form of the best graphical user interface ever seen for a Unix OS. And as for Apple’s appropriation of the KHTML open source web rendering engine for Safari, it overlooks the fact that Apple has done a huge amount of work in improving it. For example, Safari can now render the Acid 2 test accurately… that’s a ‘best in breed’ capability among web browsers and KHTML can’t do it.
Then there’s the ‘argument number two’ people. These people spin the counter argument that Apple is simply doing what open source advocates have been calling for since the dawn of time: learning from open-source, building open source code into bigger and better products, and returning the improvements to the community for use in other free software projects.
And, the argument goes, if the open source community feels like Apple is profiting from the community’s blood, sweat and tears, then the open sourcies only have themselves to blame. Apple is meeting its obligations under the GPL by returning all code improvements back to the community for reintegration into freely available codebases.
Today I read a fascinating third argument, which lies somewhere in between. It’s from Zack Rusin who is one of the developers of the KDE, which is of course a leading desktop environment for Linux and also includes the Konqueror browser with the KHTML rendering engine which is the basis for Safari’s HTML rendering engine.
Rusin says he is sick to death of people asking when KHTML is going to integrate Apple’s code improvements that have made it possible to render Acid 2 accurately.
He says some of the code that has been returned to the open source community calls proprietary Apple APIs, which effectively means it cannot ever be integrated into KHTML.
And he complains that while the KHTML developers did the work of creating a change versioning system (CVS) which allowed Apple to become intimately familiar with the KHTML code and any changes and improvements that have been made over time by the open-source community, Apple hasn’t returned the favour, which makes it nearly impossible to reintegrate their changes.
“Do you have any idea how hard it is to be merging between two totally different trees when one of them doesn’t have any history? That’s the situation KDE is in. We created the khtml-cvs list for Apple, they got CVS accounts for KDE CVS. What did we get? We get periodical code bombs in the form of them releasing WebCore. Many of us wanted to even sign NDA’s with Apple to at least get access to the history of their internal vcs and be able to be merging the changes incrementally, the way they can right now. Nothing came out of it. They do the very, very minimum required by LGPL,” Rusin writes.
Ironically Rusin sides, albeit sourly and begrudgingly, with the “argument number two” people who say that Apple is fulfilling its obligations.
“And you know what? That’s their right. They made a conscious decision about not working with KDE developers. All I’m asking for is that all the clueless people stop talking about the cooperation between Safari/Konqueror developers and how great it is. There’s absolutely nothing great about it. In fact “it” doesn’t exist. Maybe for Apple – at the very least for their marketing people. Clear?”
It sounds like Apple is talking the talk of open source without walking the walk. Or in other words, it’s meeting its obligations to the open source community in law, but not in spirit.
Interesting, considering the lead developer on Safari, Dave Hyatt, is formerly a key developer on Mozilla. He’d obviously have a very full understanding of the necessity of sharing code history, so the decision would seem to be an Apple corporate one.