"The world don't move to the beat of just one drum. What might be right for you, may not be right for some.
You take the good, you take the bad; You take em both and there you have, my opening statement."
 
    - Peter Griffin, paraphrasing 80's TV at the introduction of his campaign for office.
 
Mr. Griffin may as well have been speaking in defense of Apple's open source initiatives; the company's business strategies often fail to please either end of the spectrum, sometimes for the same reasons.
 
Grumpy, conservative business analysts get riled up about Apple legendary secrecy, and demand that the company publish better technology roadmaps and provide more detailed financial information about their operations, while long-haired hippies chant about free and open development, and stage sit-ins against Apple's cautiously opened, and often tightly closed, software projects.
 
In the article Apple & Open Source, Strange Buffaloes? I looked at the discussion surrounding Apple's involvement in open source, and presented a fundamental difference between the goals of a commercial software developer, like Apple or Microsoft, and the open source development community in general.
 
In The Revolution Will Be Open Sourced! I described open source principles and the reasons behind both closed and open development models. How does Apple fit into this newly emerging world, where open source is at the tip of every tech tongue? I wrote:
 
“How far can Apple go with open source? Many argue that Apple should decisively push into expanding their open source efforts, but how? There isn't just one way to embrace open source as a strategy."
 
In this article, I'll compare the benefits and the motivations behind two very different styles of open source development: the BSD style license, pioneered by UC Berkeley and MIT; and the GPL invented by Richard Stallman, the founder of the free software movement.
 
I'll compare these two styles with Apple's participation in open source. I'll also dissect some of the rhetoric surrounding open source, and later look at areas where Apple could open things up, and detail some of the challenges they face along the way.
 
BSD-Style Open Source
Open source serves several goals. In the case of BSD, open access to source code encourages rapid and compatible development based on shared technology.
 
If it weren't for BSD's contributions to the TCP/IP networking stack, which they freely shared, developers of Internet tools and devices would not have been able to reuse BSD's code to build their networking products. Instead, they would have to buy code or develop it internally. Either option would have slowed down the pace of Internet development and made everything more expensive.
 
Products derived from BSD's networking code, ranging from Brocade switches, to QNX, to the Sony PS 2 and PSP, are also much more likely to interoperate flawlessly, because they all reuse the same known and vetted code, rather than creating different, independent implementations of the standard.
 
In addition to efficiency and interoperability, the BSD model seeks to provide a third benefit: commonality. It engenders foundations and platforms that others can build upon.
 
Rather than developers spreading their efforts to work on a hundred different commercial web servers, BSD style licensing has given the world the Apache web server, which can be extended and configured for various different tasks.
 
Developers, vendors, and end users all benefit from having a solid product they can learn, add value, and invest in, knowing that it isn't going to go away and be replaced by a wholly different architecture in six months. Such commonality also focuses the open source community in a way that allows it to compete with commercial development. Apache has held onto its lead against the assault of Microsoft's IIS and other commercial web servers, for example.
 
BSD-style licensing allows anyone to reuse code as they see fit. Some vendors use BSD code and then publish their enhancements and extensions; others do not. Microsoft, for example, has benefited from using BSD's networking code, but did not return their derivative code in Windows as open source. The BSD license allows this type of one-way sharing, which makes it more attractive to many commercial developers.
 
BSD isn't interested establishing a world where software is community property; the goal of BSD-style open source is to prevent the world from unnecessarily reinventing the wheel, and stabbing itself in the eye in the process.
 
Apple's Open Source
The model Apple is using for most their open source projects is based on BSD's approach to licensing. Apple finds ways they can reuse available code, and they provide access to code that others might be able to reuse in mutually beneficial useful ways.
 
For example, Apple gave away the work they did to migrate AppleTalk to work over IP, so that anyone can use Bonjour (aka OpenTalk, Rendezvous) for providing local discovery and automatic configuration services without having to write their own implementation from scratch.
 
In addition to making sure that the various products that use Bonjour (many vendors include Bonjour in their printers, for instance) work together seamlessly, Apple's free and open Bonjour code release also accelerated the adoption of Bonjour as a standard. Apple didn't release Bonjour solely to polish their halo, they did it so the technology would gain traction rapidly.  
 
Apple has also given away the raw technology behind their OpenDirectory and NetInfo directory services, their Quicktime Streaming Server, and their launchd architecture, allowing anyone to take them apart and learn from them, and reuse and apply them as they see fit.
 
Apple also gave away the code improvements they made to KHTML in web and javascript rendering, so that others could benefit from their work. Developers at Nokia built upon Apple's code base to deliver a web browser for use in mobile phones. That effort didn't enrich Apple monetarily, but having other developers working on the same code ends up helping to identify bugs, security issues, and new ways to optimize the code. By sharing open source, KHTML wins, Apple wins, Nokia wins, and users benefit as well.
 
GPL Style Open Source
Software projects offered under the GNU Public License can be free as in beer just like BSD, but the GPL also caries the torch for an entirely different political mandate. GPL style open source doesn't just want to share technology, it wants to make sure that technology is never made proprietary and will always be free. Not necessarily free of charge, but free for users to distribute, port, fix, modify, and reuse the underlying code, with the proviso that freedom comes at a price: any value added to GPL code for redistribution must provide free access to the source code improvements as well. The GPL does not allow one way sharing the way BSD does.  
 
In other words, GNU doesn't give things away to make the world a better place, they give things away with the hope that a communist paradise will overturn the greed and vice of capitalism. That may sound controversial, but it's the exact premise of what the GPL is all about, and there is nothing wrong with that.
 
Richard Stallman originated the ideas behind free software after observing the short term profiteering and horrific waste of talent being expended to re-implement the same software over and over again. Companies seeking to build a business model around selling proprietary software sought to protect their ideas by locking up their closed software products for a specific use and shrouded them in secrecy to prevent anyone from copying their ideas.
 
Stallman wanted to see software develop as a collective of shared technologies, where no one company could appropriate basic ideas or algorithms and seal them off from reuse and implementation for other purposes, on other platforms, or by other people.
 
Stallman wrote a manifesto describing his goal to create a GPL version of the commercial UNIX operating system called GNU. A community of developers completed a userland of GNU software that was later paired with the Linux kernel, which was also developed under the GPL. The combination is referred to as GNU/Linux.
 
By most estimates, about half of the world's open source projects are released under the GPL, and the other half are variants of the BSD license. BSD software can be relicensed under the more restrictive GPL, but not the other way around. For example, one enterprising open source advocate and profiteer decided to take Apple’s free and open Darwin source and rebrand it for commercial sale under the GPL, for a distribution with “more freedom.”
 
Apple and the GPL
Apple bundles GPL software with Mac OS X, and contributes some things to GPL projects, but like most commercial software developers, Apple prefers to work in a model closer aligned to BSD.
 
Apple is a business shipping a product to sell, while the intent behind GNU advocacy is to develop free alternatives to replace proprietary software.
 
GNU/Linux is intended in principle to rid the world of not only Windows, but all commercial operating systems, including Apple's. There is nothing wrong with that goal, and the GPL has given the world, and the progress of technology, an injection of vitality and a different perspective on development. Many projects, including Linux, credit the GPL for their very existence.
 
However, turning that idealism inside out and demanding that Apple wave the GPL flag is the height of absurdity, because Apple represents the kind of commercial development GNU intends to displace. It's on the order of insisting that megafarm agribusiness adopt principles from a socialist communal collective, or that the guarantee of religious freedom in the American Bill of Rights should be enforced by a militant, fundamentalist conservative theocracy.
 
An increasingly absurd degree of rhetoric is being passed off as the official creed of an unofficial open source community. In my next article, I'll examine the value proposition behind open source and an emerging peanut gallery of critics who are trying to hijack and betray the free software movement. Stay tuned!
 
Next Article:
 
This Series
 
What do you think? I really like to hear from readers. Leave a comment or email me with your ideas.
 
 
| | Comment Preview

Send | Subscribe | Del.icio.us | Digg | Furl | Reddit | Technorati

Read more about:
Click one of the links above to display related articles on this page.
 
 
BSD & GPL: Different Sources for Different Horses
Saturday, July 1, 2006

Apple iTunes

Apple iTunes

Apple iTunes

 
Apple iTunes

Urban | Moto | Tech | Journal | Podcast