Editor's Note: Beware of Suits Bearing CodeJul 28, 2006, 22:30 (20 Talkback[s])
(Other stories by Brian Proffitt)
By Brian Proffitt
While all the hoopla was taking place out in Portland at the Eight Annual O'Reilly Open Source Convention (OSCON) this week, some of us noted the ever-so-quiet death of what should have been a vibrant open source project: OpenDarwin.
Now, from a sheer Linux standpoint, we should not shed too many tears for the demise of OpenDarwin, the almost SourceForge-like project created in April 2002, ideally to develop open source software for OS X. They were also working on creating their own Darwin-based "distro." The project is (still) heavily referenced on Apple's own open source pages, and while not officially under Apple's control, it was clear that they were putting a lot of effort in steering open source developers through OpenDarwin's doors.
Still, c'mon, let's face it, if OpenDarwin kicks the bucket, it's just one less OS for Linux to compete with, right? From a purely pragmatic viewpoint, this is true. But we are not in a vacuum. The closing of OpenDarwin is an object lesson for us all, especially for those of us who choose to work with large corporations who open source their code for outside development "community participation." For the most part, this participation is exactly as advertised. People inside and outside contribute code, the changes are accepted or rejected on the code's merits, and the final project is created. But too many times "community participation" is actually code for "unpaid labor." The case of OpenDarwin and Apple is just the most obvious example.
What, then, exactly happened? It depends on who's talking. The developers involved in OpenDarwin cited "availability of sources, interaction with Apple representatives, difficulty building and tracking sources, and a lack of interest from the community" as contributing reasons for the pending shut-down. I think they were just being politic. What was really happening was that Apple had built a firewall between OpenDarwin and OS X. The most glaring evidence of this is found in how Apple treated what should have been the flagship project within OpenDarwin—the Darwin code itself.
According to Darwin developer Rob Braun, there were several problems just dealing with the change management system developers needed to use to work on the Darwin project, not to mention strange conventions the internal Apple developers used. Even if a developer was diligent and got their code properly within the Darwin development branch, it still would not enter the OS X build process until an Apple developer took the time to merge it.
Despite these obstacles, Braun indicates that things were going along fairly well, until Apple decided that it could not contend with all of the input it was receiving, especially from disgruntled coders who weren't getting their bugs fixed fast enough and were sending terse and rude messages to internal Apple employees. In response, Braun says, the nightly bug snapshots went away. Now, however, coders had a more difficult time keeping pace with the project.
But what really made things bad was when Apple decided to keep some future-release features secret. Braun writes:
"As time went on, and Mac OS X got closer to release, Apple decided they wanted to keep some things secret. Some new features needed to be worked on, but couldn't be in the live cvs repository, or it wouldn't be a secret anymore. Some things leaked out, which caused no end of fuss, and gradually projects were removed from the live cvs repository. Eventually, so little was left in the live cvs repository and processes already needed to be in place to do periodic source drops, the live cvs repository was abandoned. For a while, the project floundered, trying to figure out how best to deal with the situation. Source drops continued to be made to an external cvs repository, but all agreed that made little sense. Eventually, Apple settled on the system that is currently in place, where .tar.gz files are placed on a web page.
And that, in a nutshell, shows why Darwin has screeched to a near-halt in terms of outside involvement. Darwin/x86 source code is completely closed, and Darwin/PPC is partly closed and, oh, did we forget it's a soon-to-be diminished platform?
This pretty much seems to be the attitude Apple has decided to take with most of its open source projects, though I am told that some are still flourishing, with and without Apple's active participation. Which explains why the over-arcing OpenDarwin project is about to bite the dust.
Geez, no wonder so many Apple developers are looking at Linux as a more attractive option. If I were getting treated like that, I'd leave too. This reaction to Apple's arrogance seems to be trickling down to the users as well, since a bunch of the more notable ones are also switching over to Linux lately. (Though, as an aside, should we tell them that Ubuntu does not represent all that is Linux?)
Apple has and is squandering the good graces and talent of many developers, that could make their products outstanding. Their greed and fear has kept them from truly embracing the concept of open source, something which might have helped them get out of the squeeze put upon them by Linux and Windows.
This eventually comes back to Linux, because it raises an object lesson for all of these companies who open their code and invite community participation. You need to be aware that this kind of behavior will ultimately get you nothing but grief. Most of you are genuinely interested in open source development, and we welcome you with open arms.
But for those few companies who are looking to make a quick buck with some cheap help, think again. The Linux community notoriously does not suffer fools and doesn't fall for a lot of marketing hype. They talk, they react, and they are vocal.
Don't follow Apple's example. Be a real community member, and reap the benefits of what you sow.