On the Just.My.2t blog, Steve, a self-confessed Apple fanboy (sorry!) puts forward an argument that the two companies Apple and Microsoft traditionally seen as “Closed” and “Open” respectively should be switched. That Apple Computers are more “open” then Microsoft. This article got me thinking not just about Apple Computers vs. Microsoft, but more widely about “Open” and “Closed” software.
In this quick article, I am going to take Steve’s five points from his article and provide a counter-argument. Before we do this, let’s define those often misused words, Open and Closed.
“Open” on its own is an innocuous word which conjures up positive feelings of warmth, community, friendliness, progressive values. Whereas the synonyms for “Closed” are the opposite: Shut, locked, sealed. Although Steve didn’t say so, many software professionals and “fanboys” alike apply a form of religious morality and ethical implication to these words. Open Source becomes “Good and Holy Source” and Closed Source = “Evil Corporate Money Software”. The big driver for this feeling seems to be from the business ethics of the “Old Microsoft” in driving competitors out of business with their own success and on the other hand the warm fuzzy way in which companies such as Google have portrayed themselves with their “Do no evil” tagline.
So that’s “Open” and “Closed” businesses out of the way, let’s address “Open” and “Closed” standards.
Standards come in different flavours. There are source code standards such as the Open Source Initiative, architecture (e.g. The Open Group) and interoperability (e.g. XML) standards. It always irks me when I hear people talk about standards as “Open”. Yeah, sure they’re open – you can download all the documentation off and print it and write software that works with it. You have no guarantee that the standard won’t change and you have absolutely no leverage in changing any of the above standards, even if you have a great idea for how you think it should be done. If you want to get on the “inside” of all of these closed standards, be prepared to pay big money to the companies who run them in order to join their Working Groups. And even then, be prepared to have your contributions rejected. Many of these “Open” standards cannot be extended without permission. How is this behaviour any different to an API provided by Microsoft for it’s developers?
Even those used by Military systems would be considered “Open” by this definition. I think we can safely discard discussions about standards and openness being in any way a “problem” for Microsoft.
Now to the points:
1. The Operating System
I imagine the room(s) where the Windows source code is stored to be accessed via an X-Men style bridge that is itself guarded by specially trained Ninjas. Mac OS X is based on an open-source Unix flavor called Darwin. The printing services in Mac OS X use the open source CUPS system. All code that Apple adds to these open source projects are made available back to the community. Windows on the other hand is locked down tighter than Fort Knox. From the kernel to the GUI, its all Microsoft’s crown jewels. – Steve, Just.my.2t
That certainly is the case. Well, maybe not the X-Men bridge or Ninjas. Each of the various teams which contribute to the Windows code stream submit their code at various levels of a four or five submission deep tree in order to update the source code for Windows. I saw an explanation of this from the Vista project managers webcast on Channel9/MSDN. This leads me neatly to the “New Microsoft” and why they are a great deal more “Open” than Apple.
All the staff who work at Microsoft are encouraged to blog on their work. And the teams blog together. Podcast together, provide pre-release previews to the development community and are open to being contacted to work through issues. I’ve often had teams at Microsoft from all around the world personally remoting in to solve difficult technical challenges together with us in the UK. The same staff who are open about their work and are the same ones who write the documentation for developers. It’s not open source, but that’s a good thing. I once had a networking issue that took several weeks to isolate the cause. I suppose that if I had this problem with any of the Linux flavours (inc. Mac OS), from where would I have received assistance? Would I have had to post on an internet forum to ask kindly for someone to donate some time to help me with these deep seated problems? Of course I would, since if the software costs you nothing there is no technical support, or obligation of care.
Microsoft have a very good understanding of what they want from the developer community. Microsoft provide the bare bones of the operating system but it is up the third parties to build hardware, write drivers and software for it. When third parties mess up or are slow or unwilling to provide drivers it is all to easy for the end-user to blame Microsoft for the short comings of badly designed technology.
Apple Computers on the other hand sell an end-user experience and do the lot. Everything is almost guaranteed to work when opening the box. All the various hardware and software possibilities have been thoroughly tested so that the user experience is consistent. With Windows, Microsoft has had to encourage software and hardware vendors to join the “Works With Windows” and “Certified For Windows” programmes. Most vendors don’t, since participation is expensive. But they don’t have to. Anyone can start building their own PC’s with crap hardware and ship with Windows Vista and customers will be told, “Vista is slow” and believe it. The Windows Mobile community had a famous issue with the TyTN II drivers. A flagship mobile device demonstrated by Bill Gates no less, a year on from it’s launch still has very bad performance problems caused by the third party hardware manufacturer (HTC) neglecting to adequately license the GPU in the device. So it could work, but Microsoft gets the blame ultimately because of a Taiwanese political hiccup. Apply bypass all these problems by manufacturing their own hardware to fit the software.
From my own experience, I have just switched to using Windows Vista x64 on my desktop machine. Immediately I notice that my Canon Scanner isn’t working. It’s a top specification “Lide 80” scanner that I would expect should have 64 bit drivers by now. But it doesn’t. This manifests itself on Windows as a message – “The driver could not be found for your device”, which makes the emotional side of me feel bad towards Windows. Apple have the advantage here, by obtaining work (including drivers) from the unpaid “community” and without paying anyone a cent they incorporate the work of others into their operating system.
I’ve also got a reference-quality set of speakers, the THX Creative Gigaworks S750 plugged into a Creative Soundblaster X-Fi. Microsoft had changed Vista to use an open audio standard rather than allow sound hardware to
“talk” directly to the output audio stream. This caused a few problems with anyone adopting Vista who used one of Creative’s popular new cards. Ultimately this was a factor in Creative’s de-listing from the NASDAQ stock exchange and massive downsizing. It also contributed to the general “Vista sucks” problem. Apple bypass all these issues by manufacturing their own hardware and making sure it works with their software.
The same can be said for Sun Microsystems, who also make good use of “Open” standards (which they sponsor). It provides for them an army of developers willing to work on a “community” project which ultimately benefits a company who had the foresight to understand developers can be made to work for nothing.
2. Internet Technology
Internet Explorer is very tightly integrated into the Windows GUI and therefore also a closed source application. As if thats not closed enough, Microsoft has built its own web technologies such as ActiveX, Silverlight and ignored web standards. Apple’s Safari web browser on the other hand is based on yet another open source project, WebKit.
Whilst it can hardly be argued that Microsoft have ignored the efforts of the greater IT industry to promote standards for web technologies and browsers, it would not be fair to say that Silverlight and ActiveX are somehow bad or any more closed than the technologies that they oppose. ActiveX is an interesting example since it is tied into Windows and is a method for allowing web applications to interact with the end-user’s desktop in a sandbox environment. Because of this it posed a serious security risk and Microsoft had to introduce a whole load of safety and security improvements to Windows because of it! Silverlight on the other hand, is a direct competitor to Flash and technologically is superior in many ways. However it’s not widely adopted so who knows where’s that’s going.
FireFox is the most popular browser and it’s not based on WebKit. Open Source web technologies tend to be good ones and easy to interface with. But if there’s a plugin to do something for FireFox, there’s likely something else to do the same for Internet Explorer.
I would argue that Safari is also a closed source application. Certainly nothing Apple does can be considered “Open Source” since the control of that source is closed. In 2005, Apple made front page news by announcing that they propose to dump the open source rendering engine in favour of their own proprietary (very closed) rendering engine. Anyone tempted to get heavily involved in sponsored open source community projects better read this:
Open-source developers have complained as of late that Apple took a less than professional attitude at fixing bugs and writing patches than what many are used to.
"In open source, everything’s supposed to be done the right way, but sometimes the less correct way is faster," said KDE developer Zack Rusin. "In fixing one problem, they were breaking a whole bunch of other things. Apple developers were focused on fixing bugs in such a way that we could not merge them back into KHTML. Those fixes were never an option for us." – MacObserver 12th May 2005.
3. Server Technologies
Microsoft’s server technologies are very popular (and for good reason), but that makes them neither open nor standard. From Active Directory, SQL Server, Exchange Server to IIS, they are all proprietary server technologies that use Microsoft’s proprietary protocols. Apple’s server technology, while not as popular, use open and standard protocols such as IMAP for mail, CalDAV for calendaring, SQLLite/mySQL for databases and Apache for web server..
I agree with all of the above. But since all of Microsoft’s technologies are easily integratable into almost any (including open source) environment, I don’t see the problem here? Microsoft have innovated a great deal especially in the areas you mention for enterprise and business. These are areas in which Apple has yet to even make a slight scratch so it’s not really possible to make a comparison.
4. 3D Technologies
Microsoft has its proprietary DirectX technology where as Apple uses the standard OpenGL.
Windows is way more open than Apple thanks to technologies such as Direct X, which don’t require an emulation layer. Direct X is not an “Open” standard but as I’ve explained above – there is no such thing as an open standard and I would argue that standards with the word “open” in the title do not convey any advantage to end users or developers that a necessarily “closed” system would. And even though Direct X may be closed source it is still possible to hack it and interact with it on a much lower level than intended by Microsoft in order to achieve even bigger performance gains.
This is further evidenced by the huge PC gaming industry which is larger than the movie and video industry. It is almost exclusively built on top of Direct X (instead of OpenGL). There is no Call of Duty 4, Crysis or FarCry on a Mac. Mac users get Sim City and World of Warcraft. One of the largest drivers for technological progress is actually computer games for the PC. The rise and fall of AMD as the love child of the gamers evidences this.
The standards that Microsoft put out in their own innovative technology stack (.NET, DirectX) are extremely capable and as open as you could wish. Often their own standards perform better than the open standards. Adding “Open” audio standards to Vista made it worse – higher latencies, lower throughput, no hardware acceleration – ruined. .NET for example is completely open and you can access and manipulate the source code for it. DirectX is very well supported and I’m not sure how it could be improved even if it was more open to the community. Direct X is simply a better technology than OpenGL. And Microsoft support OpenGL too.
Apple is accused a lot here for “locking” users into its iTunes/iPod ecosystem. The people that make this assertion usually go on to explain that this is because the iPod cannot play Windows Media Files (WMA & WMV). The PlayForSure initiative from Microsoft made sure that a lot of media players would support the Windows media files and Microsoft would earn a license fee from each OEM (similar to how Windows works). This however does not make Windows media an open format. Apple chooses to use AAC for its audio which has been standardized by ISO and IEC, as part of the MPEG-2 & MPEG-4 specifications. For video, Apple uses MPEG-4 Part 14 (mp4) which is also an ISO/IEC standard. Some of the the files that you obtain from Apple are protected with its proprietary FairPlay DRM just like Protected Windows Media from Microsoft.
Apple does lock users into iTunes/iPod and it’s terrible. I dislike iTunes, the footprint is heavy and the interface uses my screen space to sell music to me. Now imagine if Microsoft did something like this. The "community" would be all over them like flies over poo accusing Microsoft of being anti-competitive.
WMV isn’t a bad format. No worse than MP3. MP3 isn’t an open format. It’s a defacto standard with an ISO number. There are countless patents with all manner of people fighting over who owns it. Of course, whoever wins gets to claim that big pile of cash. That’s not very open of them! Does anyone know why Microsoft chose to reinvent the wheel with their own standards for audio and video?
Microsoft’s approach and Apple’s couldn’t contrast each other more. When there is an emerging technology or market to exploit, both companies try to react but they do so in different ways. If the technology is open source, Apple will usually use and contribute to the project. If not, for example Google Search, Apple will partner with the company to take advantage of the market. Microsoft on the other hand will almost always try to “invent” a competing and alternative technology and then use its Windows monopoly to kill off the original.
Both Microsoft and Apple are businesses who exploit for maximum profit. Apple have done this in a different way to Microsoft by leveraging work from the open source community which effectively is a method of obtaining cheap developer labour. Microsoft have historically used their monopoly to kill off competition (NetScape), but on the other hand Apple have locked down their iPhone to run only their software. Apple’s dominant position in iPhone mobile software through their AppStore has seen them remove perfectly good software that they simply didn’t like. This is damaging for the developer and not much different to the way in which Microsoft famously used to behave.
I agree 100% on what you say about ISO standards though. Microsoft never seem keen to embrace standards but instead provide their own way for doing things even if it’s more ambiguous than the well accepted standards. Sometimes they have a good reason for doing this, Direct X for example. But sometimes Microsoft make me sit back and scratch my head – going for an “open standard” for their audio means that any audio creation work I do takes longer on Vista’s slow open standard than it would on XP’s fast closed one. Creative obviously prefer to work with the closed Microsoft since they can write directly to the hardware. Via the open standard all the clever audio processing hardware cannot be used – it’s just not supported by the open standard. So that’s two companies and a heap of users screwed by a move to open standards.
In summary, just because you may live in a huge walled garden, doesn’t mean that its open to the outside world.
I would argue with this analogy that the whole world is a walled garden. It’s just the walls are in a different place.
Ultimately it all boils down to who pays for the software. Microsoft make you pay for the software licenses, but Apple charge extortionate rates for their hardware, where equivalent money can get you much more powerful hardware if only you’ll use Windows.
Standards have their place, but even open standards are not open and friendly and cuddly. Standards are free to develop with but they cost an absolute fortune to “get on board” with and effect improvements and change. Closed systems and application programming interfaces (API) are easy to change and can be done so quickly as customer and business needs dictate. Submit a change request and it can be done for you 🙂
Now it’s my turn to ask you a question. Is your iPhone factory/stock/original/closed or Jail-broken? 🙂