The Proper Context for Apple and Open Source

There has been a great deal of confusion surrounding Apple and Open Source. Apple its self has been somewhat schitzophrenic in it's own open source directions. The most effective and productive view of Apple's open source efforts is that it is for development of and on Mac OS X. This sounds incredibly vague, simple, and obvious, but I will clarify.

Apple has been all over the map with it's open source efforts, from producing and releasing a standalone OS in the form of Darwin, to open source applications that are only relevant on Mac OS X, to standalone applications usable by the open source community as a whole. The success or failure of Apple open source efforts entirely revolves around how the open source efforts relates to the development of the commercial Mac OS X product. Apple is in the business of releasing products and making money. I make no value judgement here, it is simply a fact. Darwin OS is tangential to the Mac OS X product and is treated as such. Apple is not developing for on or with the Darwin standalone OS, they are developing Mac OS X. Similarly, Apple is not developing tools for general open source use, they are developing tools and applications for Mac OS X. Following this rule, it stands to reason that the open source efforts revolving around Mac OS X are Apple's most successful efforts, such as webkit.

The most satisfied consumers of Apple's open source efforts are people developing for Mac OS X. They use Apple's open source as documentation and example code to aid in the development of their own projects. In this regard, Apple's open source efforts are very useful. In addition to just access to the source, Apple's engineers are much more helpful and forthcoming when people are actively trying to use thier technology.

However, there are a group of traditional hackers who are not satisfied simply with development on a platform, they want to participate in development of the platform. This is (with limitations) entirely possible with today's level of interaction from Apple. Setting expectations appropriately is key to this kind of development. Here are some general guidelines:

With those warnings, the best areas of Mac OS X to work on are middle areas. That is to say, above the kernel and below the GUI. This is for pragmatic reasons of source availability, but also because engineers at Apple that work on the "middle area" components are generally more involved in the open source community and more receptive to feedback. Additionally, you will be better off doing actual development, rather than simply working to update components. Updating components is rather routine for Apple and they are in a much better position to pick an opportune time to update components. Ideally, potential developers in this area would find a bug or a feature that they would really like to see addressed, and work on it. And as always, it is useful to report your change to Apple via an official bug report, but keep your expectations in line with the guidelines above. Remember that releasing a bug fix or feature on a mailing list or other public forum is no substitute for filing a bug with Apple.

The expectation guidelines above might scare off a few potential developers. They are very discouraging, although fairly realistic. There are a few things Apple could do to improve their open source efforts, both in terms of relations with developers, and maximizing their return on investment.

I believe that by simply refocusing on the attainable goal of maximizing external development on and of Mac OS X, instead of continuing to confuse and frustrate the community with standalone OS releases, Apple's relationship with their development community will improve significantly. By not focusing on a Darwin release, resources can be freed up for other open source tasks, such as communication with the community, potentially in the form of shuttling non-critical information from outside Apple in, and vice versa. Apple engineers may become more receptive to the community that is actually interested in the technology they are developing, instead of how it relates to the irrelevant standalone Darwin OS.