Apple = open source
Microsoft = closed/proprietary
The first equation above doesn't sound possible. Apple is a
proprietary "build the whole widget" computer maker. Conversely,
Microsoft is all about developers, developers,
developers. You would think that Microsoft would like opening
things up to put into the hands of developers, since they love them so
much. It just shows what a crazy world we live in when the results are
the opposite of expectations.
Apple and Open Source
Everyone wants examples to prove something is true. One of the most
famous Apple open source projects is Safari - more specifically the
WebKit rendering
engine. This started back in 2002, when Apple approached the open
source KHTML project for use in a new browser it was going to make.
At first, everything was great. Then, when Apple complied with the
letter of the LGPL
and gave patches - but not tons of support to make those patches useful
to KHTML. The KHTML developers complained that they were expecting
more. It took a while (years), but Apple improved its support.
Apple wasn't just developing a browser for KDE, so it produced
changes that were more generalized for any platform. This led to the
creation of WebKit. Apple could have kept WebKit to itself, but to gain
more support and acceptance,
Apple offered it back to the KHTML developers.
Today's WebKit is used by many of Apple's competitors in the
computer, browser, and smartphone markets. For example, Google's Chrome on the desktop,
OmniWeb
browser, and Palm's Pre smartphone. Now that others are using it
successfully, does that mean Apple is upset and has changed its mind?
No, Apple reportedly still has
30 developers working on it, so it doesn't sound like they have
given up on the project.
Microsoft and Open Source
Let's compare that to Microsoft. In recent news, Microsoft donated
code to the Apache Stonehenge project. It helps that Microsoft
joined the Apache Foundation as a member. Still, to be more comparable
to Apple, Microsoft would have to open a large portion of its web
server or .Net code to the Apache 2.0 license. Don't hold your breath
waiting for that to happen.
For Microsoft's one step forward, there are two steps back. A
second code donation from Microsoft happened this year. It donated
20,000 lines of code to the Linux kernel! Why? Because Microsoft was
caught violating the GPL
license. Unfortunately, the code needed 200
patches to clean it up, and Microsoft's engineers won't return
calls for help. You can get Microsoft to support open source (after
they get caught), but that doesn't mean you'll get their
cooperation.
Microsoft even released the
SDK for Bing. It had to use its own Microsoft Public
License. (There are dozens of open source
licenses: Apache 2.0 license, LGPL, GPLv2 or GPLv3, etc., but none
of those are good enough for Microsoft.) This openness is seen as a way
to support the iPhone without Microsoft having to get its hands
dirty.
Microsoft is moving to capitalize on its limited progress in the
open source area. It has even started its own foundation, CodePlex. Nothing says "open source"
better than a privately funded foundation. What the heck is Microsoft
thinking? This isn't
Ubuntu.
If money corrupts, how can we trust a privately funded foundation to
remain independent?
Apple vs. Microsoft
How does the famously proprietary "we build the whole widget"
computer company, Apple, compare? In Apple's corner we have WebKit,
CUPS (Common Unix Printing
Solution), Bonjour (Apple's
implementation of Zeroconf for
sharing devices over a network), Darwin (a POSIX operating system and the
basis for Mac OS X), OpenCL, etc. Apple recently
opened Grand Central Dispatch (or at least a major portion of it called
libdispatch) under the
Apache 2.0 license.
That is some serious open source mojo. But
that's not all! Apple, being POSIX compliant, can use all sorts of open source tools.
One open source tool, the LLVM software
compiler, is so important to Apple that it created a custom logo
for it (left). Apple is willing to directly support outside open source
projects when the projects can be directly useful to the Mac.
While it mostly uses one of the popular open source licenses, Apple,
like Microsoft, has its own license, Apple's
Public Source License, for really critical technology like Darwin.
The Free Software Foundation (FSF)
approved Apple's
Public Source License, even though they don't recommend using it.
We can see that Microsoft has put a toe in the open source water.
Apple, one the other hand, is swimming around and enjoying the full
benefits of open source.
Are the efforts of both companies largely self-serving? Yes, but no
one should expect a free lunch. A person can donate code to satisfy
their ego, but companies have a different goal. Companies are about the
business of making money. (Other organizations are called charities,
nonprofits, or clubs)
Regardless of the strings attached by licenses, there is mutual
benefit, and of the two companies, Apple has been the most direct
supporter. Apple has taken these tools and used them to create great
products like Safari and Mac OS X. Sure, its competitors have
benefited, as has the open source community. Maybe this isn't the perfect world that
FSF wants, but it's better than the closed monopoly that Microsoft
has established.
When FSF attacks Microsoft for Windows 7 Deadly Sins and doesn't do the
same for Snow Leopard, there is a reason. Apple isn't perfect, and it
self-serving, but Apple is more actively supporting open source than
Microsoft will even dream of doing.