The recent release of Snow Leopard marks Apple’s first attempt since the initial release of OS X to focus almost exclusively on under the hood system performance and take a breather from a rapid infusion of marketable features. One of the more significant under the hood improvements in Snow Leopard is Grand Central Dispatch, a technology which allows developers to more efficiently take advantage of multiple cores, creating a more efficient and less resource hungry OS in the process.
Interestingly enough, Apple released the source code to Grand Central Dispatch to the public yesterday under an Apache open source license. But why would Apple release the source code to one of its more touted features? What does it possibly have to gain?
The folks over at MacResearch put forth a few theories which make a good deal of sense:
First, Apple will of course reap the rewards of any development that takes place, just as they have with WebKit. Second, it is unlikely that Grand Central would be used by any direct competitor to Apple, like Microsoft. Grand Central is more likely to be added to other UNIX and Linux systems, none of which really pose a threat to Apple’s consumer-based business.
This leads to what is perhaps a more important consideration for Apple, that allowing Grand Central to be ported to other UNIX/Linux systems will encourage its use. Until today, it would have been very unlikely that any new UNIX tools would be developed on Mac OS X using Grand Central, simply because they would only run on the Mac. With the possibility that Grand Central will become available on other UNIX systems, the likelihood that Grand Central will be incorporated into command line tools is greatly increased.
… There could be one last reason why Apple has taken this step: they want to use Grand Central to push the adoption of other technologies, in particular, blocks. Blocks are an extension to C which form the basis of Grand Central Dispatch. Having your operating system based on a non-standard language is not a good position to be in, and Apple would surely like to see blocks incorporated into the C language. By offering Grand Central to the broader programming community, they may be hoping it will catch on, and make the argument for incorporating blocks in the C standard that much stronger.
Good ole’ paradoxical Apple – completely closed and open all at the same time.