"One OS to rule them all
One OS to find them
One OS to bring them all
And in the darkness bind them.."
-- With apologies to J.R.R. Tolkien
Although an apology to Tolkien is probably in order here, the similarities
between the Rings of Power and the various Microsoft products are in fact
striking. They will subtly try to take control of you, and every time you give
in to the temptation to use one, the Dark Lord's power increases.
And in this respect Microsoft's control over document formats and standards for data exchange are most certainly the One Ring of Power.
When it comes to supporting of the global standards used in today's IT market, Microsoft's record has never been good. They have always been extremely sloppy in following the standards' specifications, they have attempted to appropriate the standards for HTML, Java, E-mail and more, and they have tried to push proprietary standards that are only supported by Microsoft applications. Fortunately, the Internet community has resisted most of these attempts so far, although their efforts of recent years to "extent" XML (starting with the 'Global XML Web Services Architecture' initiative, and more recently through the .Net framework) doesn't bode well. Neither do Microsoft's applications to patent the "XML-Office" format. Microsoft obviously does not consider XML a format that should promote any increase in document interchangeability.
In the hardware market, especially where peripherals are concerned, compatibility is also deliberately being limited. Far too often the label 'Designed for Windows' means 'incompatible with anything else'. We've seen modems and printers that had no standard interface or hardware API but a proprietary Windows driver instead, and we'll see more of it. For example, before Windows XP was released Microsoft tried (but fortunately failed) to persuade PC manufacturers to discontinue the PCI bus and to support USB devices only. Older versions of Windows, as well as Linux and other Open Source products either have limited or no USB support, or drivers for USB devices are either unavailable or difficult to obtain.
But it's the application market where things are most serious. Microsoft's huge market penetration has flooded the world with documents in all kinds of proprietary formats. According to calculations by Gartner, switching from MS Office to the OpenSource alternative OpenOffice or StarOffice alone will cost, on average, $1200 per user, mainly for document and macro conversion, learning a new user interface and lost productivity during the migration.
The stranglehold that MS has on the IT market is a major problem for those who work in a multi-vendor environment. Microsoft applications always produce documents in a Microsoft-proprietary format, and they never run on anything but the Wintel platform. (OK, Microsoft ported Internet Explorer to Solaris and the Mac during their marketing war against Netscape, and they resurrected MacOffice as part of their anti-DoJ strategy with a few half-hearted versions for the Mac that are full of compatibility issues. But that's about it.) The net result of this is that when someone sends you a recent PowerPoint or Excel document and you don't have Windows, you may have to switch operating systems in order to view or edit it.
(You may fail to see how ridiculous this really is. After all, it's only reasonable to expect office personnel to run Windows with MS-Office, isn't it? Well... Think about it. Things have deteriorated to a point where many people actually look at it this way.)
Here's what Forrester Research said about Microsoft and standards:
Why Microsoft "Standards" Do Not Help They:
This is hardly in the best interest of IT.
- Work only for Windows (thus leaving out all other systems that do not run Windows and are unlikely to do so in the future)
- Increase Support Demands (since techies still must load, update and maintain proprietary code on every computer)
- Restrict Creativity (since Bill Gates' troops are defining the generic software layer, MS can tailor the interface to match its own technology biases -- and shut out competing ideas
Apart from the obvious inability to process documents from a Microsoft application in a non-Microsoft environment, there's also the limited inter-operability with Microsoft products that makes life in a multi-vendor environment difficult. Microsoft's deliberate use of proprietary standards, proprietary extensions to global standards, and their own incorrect implementations of global standards, often makes it extremely complicated to use Microsoft products in anything but a Microsoft-only environment.
Some of Microsoft's standardization efforts are relatively harmless and merely irritating. The Joliet CD-ROM format extensions, for example, are annoying but not really a problem. In the initial Joliet specifications Microsoft claimed that Joliet was needed in order to enhance the interchangeability of CD-ROM based data, since the bare ISO-9660 specs were too restrictive. Granted, ISO-9660 is far from luxurious, but MacOS and Unixen already had extensions to ISO-9660 that worked quite well and that could have been adopted right away. For a long time Windows was the only platform that could handle Joliet CD-ROM's. Joliet support doesn't even extend to the boot disks that come with Windows 9x/ME: since these are DOS-based they can only handle ISO-9660. That means that even Windows' own installation software cannot read Joliet CD-ROM's. In order to make their own installer work, Microsoft still has to ship Windows 9x/ME on ISO-9660 CD-ROM's. How's that for Joliet's enhanced data interchangeability?
Another annoying example is the use of MS-TNEF file attachments in E-mail. This is Microsoft's idea of using 'Rich Text' in E-mail messages, so that extensive formatting (different fonts, headers, italics, etc.) becomes possible. If you tell MS-Word to E-mail a document, this is what you get. Unfortunately, if the recipient of such a document happens not to use Outlook to read E-mail, his or her PC doesn't recognize the MS-TNEF format, and trying to use MS-Word to read it won't work either. In other words, if a Microsoft application uses 'Rich Text' to send a nicely formatted E-mail message, the recipient of that message is forced to use Outlook (and therefore Windows) to read it.
Outlook also sends messages that contain all kinds of embedded bells and whistles, MIME-attached business cards, message text in HTML format, embedded VBS, et cetera ad nauseam. This nonsense will be attractively displayed if the message recipient also uses Outlook (i.e. Windows) but is only so much garbage when viewed with any other RFC-compliant message editor.
Other issues are more serious. For example, you cannot format a volume larger than 32 GB in size using the FAT32 file system in Windows 2000 and later. The Windows FastFAT driver can mount and support volumes larger than 32 GB that use the FAT32 file system, but you cannot create one using the Format tool. This behavior is by design. If you need to create a volume larger than 32 GB, use the NTFS file system instead. When attempting to format a FAT32 partition larger than 32 GB, the format fails near the end of the process with the following error: Logical Disk Manager: Volume size too big.
There are good reasons why one would want large FAT32 partitions (for example, it might be necessary to share data on such partitions with other operating systems) but Microsoft forces you to use their own, proprietary NTFS instead. This creates an artificial barrier for non-Microsoft products for no good reason whatsoever and overrules the customers' needs.
A side-effect of Microsoft's indiscriminate use of non-standards and their sloppy implementation of standards they happen to support, is that third-party developers are under increasing pressure to support Microsoft's deviations. If software is confused by the way Outlook or Exchange treat message headers, customers who use Outlook tend to demand that all products must handle mail from Outlook correctly, reasoning that since Outlook is the most widely used client today, all the world must be expected to support its quirks.
While these impediments to information exchange are extremely annoying, they're not all that bad in comparison to other issues. Microsoft violates a number of 'best practices' that aren't really standards but that nevertheless ensure interoperability. For example, it's common practice not to use whitespace in filenames, since many operating systems use whitespace for command parsing and not all file systems can handle it. But Windows uses filenames that contain whitespace by default, which often leads to problems when Windows systems send or share files through non-Microsoft networking technology. For example, using FTP on a Unix file system that also acts as an SMB share for Windows clients often causes problems at the Unix end.
There are also deviations from the official, stricter standards. The sloppy implementation of the SMTP protocol in the Microsoft Exchange mail server, for example, can affect the flow of E-mail in other parts of the Internet and in non-Microsoft E-mail servers. Microsoft's Directory Services products tout being LDAP and ODBC compliant, but if you want an X.500 directory or a sync engine (other than MS DirSync) to talk to it, you'll need custom meta agents.
These issues are more than just annoying; they are serious hurdles in a multi-vendor environment (such as the Internet) and mean a possible disruption to the interoperability of both Microsoft and non-Microsoft systems.
Then there are the really nasty deviations from global standards that Microsoft has deliberately introduced to sabotage interoperability and freedom of choice. Take HTML and Java for example. The Frontpage web editor, the IIS webserver and the various backend E-commerce products all generate proprietary extensions to HTML and scripting languages that only Internet Explorer on Windows will handle correctly, and renders all other web browsers and platforms unusable. The same goes for Java support: Microsoft Java does not follow the Java specifications. Again this means that applets in this particular dialect can only be executed by Microsoft's own Java engine on Windows. Yet Microsoft used the Java label for products that were incompatible with the Java standard. This caused Sun to file suit. Microsoft then dropped the global Java standard entirely and now only supports their own Java dialect. The net result of this whole procedure is that Microsoft web server products and development tools generate code that needs Windows, Internet Explorer and the Microsoft Java engine at the user end in order to work properly.
And this is not a transient problem, because competing browser manufacturers can never keep up. Shortly after Microsoft releases an updated version of Frontpage, IIS or other backend or development tools, older browsers will begin to show more and more error messages, and users will be urged to upgrade to the latest version of Internet Explorer. Some Microsoft web server products even use Active-X. That means that if you access a website that uses Active-X (another Microsoft 'standard'), the server sends commands to your browser which then makes system calls directly into your Windows operating system code. These websites can only be fully and correctly accessed and displayed by clients running MS-Windows. Non-Wintel systems (e.g. workstations running Unix) are excluded from those web-based services.
Also, in 2003 Microsoft participated in the Web Services workgroup of the W3C (the World Wide Web Consortium, a committee that maintains and guards the global web standards that we all use) with hopes of getting some Microsoft proprietary technology ratified as a global standard. Since the W3C was unwilling to do this (read: to promote technology to be used on a royalty basis) the Microsoft representatives picked up their marbles and left, stating that the purposes of the W3C did not match those of Microsoft. Shortly thereafter Microsoft said that no major new versions of Internet Explorer as a separate product are to be expected,, and announced that future major releases of IE will be an integrated part of future (post-XP) Windows versions. Given the dependencies they've created, this means that in order to access information on a global network, we'll need to buy the latest version of Microsoft Windows.
Microsoft's contempt for HTML and related global standards is nicely illustrated by the way Internet Explorer 5.5 and 6 alter HTML code before presenting it to the user. For example, a web page header might contain a directive that an ISO (i.e. platform-independent) character set be used, with the following command:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html charset=ISO-8859-1">
But after downloading and saving the web page source code with Internet Explorer 5.5 or later, this line looks quite different:
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
IE's default behavior is to quietly modify the content of third-party web pages. This default can be changed by doing something in the View->Encoding menu that many users will find obscure and few will bother with, but that's not the point. The point is that without such tweaking a user will never see the original directive! And since many web developers reuse code or at least look at it (many of us built their first web page by modifying existing code found on the web) this platform-specific nonsense will propagate. Granted, it's a small detail, but it's another typical step in spreading the notion that "all the world is a Windows PC".
And then there's of course the principle of the whole thing. If Microsoft will insert code into IE to modify a character set declaration (that the author of the web page supposedly put in there for good reason) this proves that they're not above using their products to manipulate the information that eventually reaches the end user.
In fact this is a form of censorship, intended to manipulate the general perception on what practice is customary and what's not. Microsoft has become the IT market's demagogue, not by controlling the media, but by taking control of global protocol standards. Proprietary standards and products are presented so that they appear to have been a general standard all along. And where that's not possible or convenient, Microsoft encourages the notion that global standards are Microsoft's inventions. For example, look in the Windows 9x/ME control panel for the TCP/IP protocol. You'll find it listed under 'Microsoft protocols', along with NetBEUI. How's that again? (TCP/IP is a global standard that's older than the Microsoft Corporation.)
Microsoft not only seizes global standards but also attempts to rewrite history -- a practice not uncommon among those who want to control public opinion.
With the release of Internet Explorer 6, Microsoft finally seemed to
respond to criticism from the Internet community. In what looks like an
attempt to play by the rules, IE6 can be made to be less forgiving about the
HTML and CSS errors that earlier versions of IE would take in stride. However
this is not its default behavior, but has to be enforced with the right
document type declaration in the webpage. And of course IE6 is still full of
old code (which, for example, creates "web archive" MTHML files that
carry the label 'Saved by Microsoft Internet Explorer 5'. So much for version
management and quality assurance...
It's also fairly significant that MS had to put an entire second rendering engine in IE6 to achieve an acceptable level of standards compliance, which says a lot about the rendering engine in previous versions of IE. Then there's the annoying fact that the Windows and Macintosh builds of Internet Explorer are based on different rendering engines, and therefore react differently to the same web page. Also some new bugs are only present in the new second rendering engine, so ironically enough the only workaround for these bugs is to write HTML code that deviates from the standards enough to throw IE into 'quirk mode' so that the older, non-standard rendering engine is used.
IE7 is much the same in this regard. It has a few extra features that
its chief competitors FireFox, Safari and Opera have had for years, and
boast as many bugs and security vulnerabilities as its predecessors,
several of which surfaced within hours of its initial release. Not much
else is new.
Still the improved standards compliance in IE6 and 7 might be a good sign. On the other hand, Microsoft has also submitted proposals to the World Wide Web Consortium (W3C) for ratification as a global standard. At first sight this seems to be a Good Thing, until you read the small print in the submissions: Microsoft reserves the right to charge royalties for use of their technology even after it's been ratified by the W3C as a global Internet standard. In other words, they're now trying to stick an 'independent standard' label on their own protocols and formats, and still charge for their use as proprietary technology. This would effectively enable them to charge royalties on Internet traffic that uses a globally standardized protocol proposed by Microsoft. Will they try and get away with this? Only time will tell.
But it doesn't look good. Even during the development stage of Internet Explorer 7, new issues presented themselves. Microsoft has announced that IE7 will never conform to WaSP standards, because this would render websites that have been developed for IE compatibility inoperable. Furthermore Microsoft never planned to fully support the latest CSS standard in IE 7.0. Instead of using well-established Web standards, IE 7.0 will continue to foist proprietary technologies on Web developers, forcing them to choose between two competing and mutually incompatible ways of creating Web sites. To top it all off, during the beta stage of IE8 Microsoft issued several warnings about compatibility, and urged web developers to "prepare their websites" for IE8. Translation: after having battled to work around the quirks in IE6 and be punished for it when IE7 came along, now web developers are presented with a whole new set of headaches because IE8 breaks the websites that had to be "adapted" for IE7.
In the meantime Microsoft continues to flood the market with products that use proprietary technology rather than support global standards. We've got DNS on all platforms and NIS on Unix -- Microsoft creates WINS. We've got NDS on Novell NetWare, SUN Solaris, (Free)BSD or Linux, supported by major peripheral vendors -- Microsoft comes up with Active Directory, only available on recent versions of Windows. We have printers and modems that will work with any system -- Microsoft comes up with an API specification that enables hardware manufacturers to build slightly cheaper devices but requires a proprietary interface in the form of a Windows driver. And the list goes on and on.
Microsoft doesn't mess with standards for nothing. Microsoft's interests
go way beyond controlling the application market.
A good example is the "Browser War". Microsoft ignored the Internet completely until Netscape made sudden and huge profits, whereupon Microsoft decided they wanted that market share for themselves. Being the biggest fish in the pond, they just took what they wanted, by bundling their own Internet Explorer with Windows. This killed off the innovative Netscape in short order. A takeover by AOL didn't save Netscape, and in 2003 Microsoft bought off the whole conflict for a mere $750 million; big money to most of us but chump change for Microsoft. Less than a week later Microsoft announced the discontinuation of IE for the Mac.
This browser war was not just a battle between two competing application developers (Microsoft vs. Netscape) for the biggest market share. It went much further than that: it was a conflict between two philosophies, between vendor-dependence and vendor-independence. On one side we had Microsoft, pushing a product that was (and is) tightly bound to the Windows platform, and on the other side there was Netscape, promoting a product that was (and is) available for many different environments. Microsoft intended (and largely succeeded) by adding MS-specific features to Internet Explorer, Java, scripting and HTML, to commit the Internet community to the Windows platform. They've also used product bundling and other doubtful and illegal methods, and finally succeeded in forcing Netscape out of the browser market. As a result, more and more Internet services now expect the user to run IE and Windows on their Internet client systems. If you access E-commerce websites based on Microsoft IIS and backend products with anything else but Internet Explorer, you can expect rendering and scripting problems.
This has led to an interesting side effect: intimidated by the many browser dependencies in Microsoft-related web page code, web designers have taken to displaying an error message instead of a web site whenever their products are accessed with anything but Internet Explorer. Competing browser manufacturers soon reacted to that with masquerading: browsers like Opera just tell the server that they're another Internet Explorer. Of course this has boosted the statistics to the point where 95% of the world is said to use IE, which is exactly what Microsoft wants everyone to hear. More advanced browser detection however shows that the real figure is closer to 60%.
It's also interesting to note that the User Interface in Windows XP is based on a mix of XML and proprietary HTML-derivatives, that can be understood only by portions of Microsoft's own Internet Explorer application code. This ensures the need for a fully integrated version of IE that cannot be removed or replaced by a standards-compliant browser without losing important UI functions (such as online help pages). Support for the platform-independent Java programming language on the other hand has been dropped entirely from Windows XP, which leaves only Microsoft's own scripting and language support. Microsoft claimed that this was done in response to legal actions from Sun, but in truth the legal agreements allow them to ship Java with their products for several years to come -- provided they follow the Java standard. Rather than doing this, Redmond's marketeers decided to remove Java from Windows XP entirely. Even Microsoft hasn't been able to explain how this benefits the user community. First they attempted to corrupt Java by creating their own incompatible variety, but Sun filed suit and won. Under the conditions of that legal settlement, Microsoft was forbidden to ship their own incompatible product and call it Java, but they were allowed to support 'pure' Java. In an open letter to their customers, Microsoft claimed that "Sun resorted to litigation to stop Microsoft from shipping a high performance Java virtual machine that took optimal advantage of Windows" and that "Sun's idea of choice is that you can have any language you want, as long as it is Sun's version of Java under Sun's control." So now Microsoft tries to kill of Java (and platform independence) by removing Java support from Windows. After accusing Sun of restrictive policies, they now allow their own customers to use only Microsoft's version of Java under Microsoft's control. Of course the latter is available on Windows only, while Sun's Java may be implemented on any platform by any developer, provided that the Java standard is followed and compatibility issues are respected.
These are all examples of how Microsoft attempts to limit the users' freedom of choice rather than compete by making better software that respects global standards and that can interact and coexist with third-party products in a multivendor environment. While most other major software developers contribute to Open Source Software and thereby create new markets, Microsoft continues to slander OSS. Open Standards are commercially unacceptable for Microsoft. Open Standards and cross-platform technology bring people together. Microsoft on the other hand imposes deliberate barriers between them; artificial walls that only exist to create an artificial need for Gates and Windows.
In November 1998 an internal memo leaked out of Microsoft which clearly stated that Open Source software not only performs and scales much better than Microsoft Products (it discussed especially the quality and availability of Linux), but also proposed that Microsoft attack these superior products by "de-commoditizing protocols". In other words, when faced with a superior competitor, Microsoft's preferred approach is to corrupt global standards and to introduce proprietary protocols that bind the user to the Microsoft environment.
Don't believe me; see for yourself - read the Halloween documents, made available by Eric S. Raymond. Incidentally, Microsoft has acknowledged the authenticity of these documents and actually responded to them. It's interesting reading. Very.
A good example of this policy in action (apart from the HTML and Java deviations described above) is Microsoft's attempt to appropriate the Kerberos protocol. Kerberos is an authentication protocol developed by MIT, distributed as Open Source software. Microsoft added an "innovative improvement" to Kerberos, by misusing a reserved field to specify whether or not an NT machine was allowed to authenticate another Kerberos system, rendering this corrupted version of Kerberos incompatible with Open Source versions in the process. (The misuse of a reserved field, or any field for that matter, is of course a gross violation of protocol standards.) Then Microsoft went on to state that they had "created" an "improved version of Kerberos", called the result their own intellectual property, and threatened to sue anyone who would dare to put it in their software, including Kerberos' inventor MIT. Only the global uproar that followed caused Microsoft to reconsider this nonsense.
With the above and other standards deviations in mind, it's rather ironic to read what Microsoft wrote on a web page that opposed the Open Source initiative: "The next generation Internet can only come into existence if we have standards that everyone adheres to." (From the white paper "Shared Source" by Michel van der Bel, General Manager Microsoft Netherlands.) Apparently we can only have a workable Internet if Microsoft exclusively dictates proprietary standards, and everyone obediently follows them. Is this a developer license agreement which I see before me?
This is where Tolkien and the Rings of Power come to mind. Use any of the above products or technology, and you're automatically committed to Windows. Use Windows, and Microsoft applications and protocols will automatically come with it, and more will follow. Slowly but surely, and often unnoticed, you are bound to Microsoft. Appropriating standards for data exchange is only part of the job. Application developers are bound to Microsoft just as much as the user community is. Only in this case development standards, methods and programming environments play the crucial role.
Microsoft has always taken good care of application software developers. They learned a lot about the care and feeding of developers when they were working on Windows 3.0 and few third party developers were willing to adapt their application code to the new platform. This was not surprising: Microsoft's strategy was rather muddy at the time, IBM was preparing lawsuits against MS because the new Windows code was full of technology that IBM felt MS had stolen, and few third parties felt there was any percentage in partnerships. The initial Windows specifications weren't too clear, and what its future would bring was anyone's guess. So nobody knew what kind of a life cycle a partnership and the products resulting therefrom would have. All that was clear to application developers, in 1989, was that 90% of their existing DOS application code would have to be rewritten entirely. This meant that developing applications for Windows meant a huge investment with doubtful returns. As a result there were almost no native third-party Windows applications when Windows 3.0 was released. Initially all that kept Windows alive was its backward compatibility with DOS.
Microsoft learned from all this, and Gates inspired trust by stating Microsoft's total commitment to Windows (and, it must be said, by putting his money where his mouth was). From then on, application development preceded each new release of Windows instead of following it. Long before the first beta version of Windows '95 became available, developers had been working with freely available SDK's and other development tools in order to have their new application code ready by the time Windows '95 hit the market. Long before Windows '95 had reached beta stage, developers would get all the inside information they needed about the operating system, API's would be readily available, pre-release versions of Windows could be used for testing, and all development tools could be obtained for a song.
Unsurprisingly, the wealth of cheap tools and information attracted many developers to the Windows environment to create new applications. Of course those applications became tightly bound to the Microsoft platform, because of Window's closed architecture and API's; Windows code is even less portable than DOS code was. But by the time that realization took hold, most developers had already made a huge investment in development costs and efforts, which they were reluctant to write off.
In all honesty it must be said that Microsoft development tools are attractive. They do allow you to integrate different components of Microsoft products with relative ease, and they offer a framework that offers many options to develop applications rapidly. Writing, say, a Visual Basic front end for an Access database, or web-enabling that same database (or an MS-SQL database) withouth having to invent the wheel first, is largely a matter of using the tools and following the manuals. But in doing so, you have accept certain limitations. These techniques only work well in a Microsoft environment (which means that you have to take performance and availability issues for granted) and they tie your investments to the Microsoft platform indefinitely. Migrating to other platforms would require you to abandon your investment and start over.
Unfortunately most people don't pay much attention to software development tools. While the world argues, debates and even sues over Microsoft's dominance over applications and operating systems, the software we use every day is created by developers. And Microsoft quietly controls the developers' hearts, minds and digital tool chests. This is a most insidious way to stamp out competition. As time goes by, it becomes more and more difficult for developers to make a competing product or to support competing technology.
Because of the stranglehold that MS has on the IT market, the majority of both users and developers don't even realize that not all the world is a PC. Users rarely see anything but Microsoft applications and documents in some Microsoft format, and yesterday's users have become today's developers.
Lately, MS is trying to ram ADSI down developers' throats for creating new directory service interfaces, and the poor schmucks don't even realize what's going on. All they see is a toolkit that's easy to use and that comes with a user interface like all the other MS development products. They get their project done in half the time, and before they know it they've produced a Microsoft "standard" interface that borders on the proprietary. Then they're stuck with that non-portable code forever, or they'll lose their investment.
As a result, companies are forced to implement technologically challenged operating systems in order to do trivial things like exchanging documents, and to buy frequent updates of application software for the same purpose. But even diligently updating Microsoft applications is a two-edged sword: Service Pack 3 for Office 2003 removed the product's capability to read certain older document formats. It's a nice catch-22: you're stuck if you don't update, and you're stuck if you do.
Microsoft's utter disregard for any standard that they haven't created themselves keeps getting in the way of real technological improvement. This is not surprising, of course. After proprietary standards have gained a solid foothold in the IT market, they'll provide Microsoft with more leverage to push Windows and Windows applications, and the cycle repeats itself. For example, Windows Media Player 7 and up didn't run on Windows NT4, and soon most of the content available on the World Wide Web will require Media Player 8 or later in order to be accessed. Microsoft will make sure of that through "strategic" partnerships and developer tools that crank out only the latest file formats. This effectively forces customers to upgrade to the latest version of Windows (and perhaps buy new and bigger PCs as well) in order to continue their access to multimedia content.
None of this is actually conducive to technological innovation. Applications could run on any platform, and data formats could be documented and freely usable. The Open Source community and much of the Unix application market thrives on such platform independence. (And so does most of the Internet.) And not only Open Source software is platform-independent. A web browser like Netscape Navigator, for example, runs on all flavors of Windows, OS/2, a dozen flavors of UNIX, and MacOS. The Opera browser is available for several OS'es as well. DivX video tools exist on Windows, Unix, Mac and more. And many other serious applications, from database servers and clients to office suites, are available for multiple operating systems. These applications are typically developed on a non-Windows platform (thereby avoiding Windows' inherent portability issues) and then ported to Windows in response to market demands.
I generally use about 20 different applications. At the office I may run them on several systems, varying from desktop Unix workstations to the bigger midrange systems (Solaris, AIX), the occasional Apple Macintosh, and even Windows PCs. When I'm working at home or with customers, I run the same applications on Linux, in DOS boxes or on Windows. None of these applications, needless to say, were developed by Microsoft or Microsoft Partners, and few were originally developed on the Windows platform. And of course most of them can't handle documents in one of the many proprietary and barely documented formats used by Microsoft applications.
Recently some attempts have been made to enable Microsoft applications to run on other operating systems than Windows, with varying degrees of success. However, there is a clause in the Office XP End-User License Agreement, which stipulates that Office XP be used only on top of a Microsoft operating system. Apparently, Microsoft is unwilling to rely on technical impediments to interoperability only, and has decided to throw in legal obstructions as well to limit the users' freedom of choice.
It's a simple strategy: divide and conquer. Prevent information exchange through proprietary protocols and formats. Encourage or force users to use your applications and bind them to your own protocols. Make them use software that will only run on your own platform. Pollute existing global standards as much as possible, and induce service providers to use proprietary protocol extensions. Force your business partners to do the same. Do not provide new opportunities for the user community by offering better technology, but instead sabotage the interoperability of other products and standards, and smother any progress and development of competing technology.
Then make the users believe that they they benefit from "these exciting new innovations" and point out that adherence to existing standards would impede progress. Control the tools used by the developers who create the applications that we use every day, and make it more and more difficult for them to follow a competitor's path. Bind users and developers to the Windows platform, slowly but surely, one step at a time, until it's impossible for them to escape.
That's how it's done... in the Land of Redmond, where the Shadows lie.
Comments? E-mail me!