Contents

Ignore rules unless forced to comply
Don't care about technical excellence

Ignore rules unless forced to comply

Microsoft are the pariahs of the computing industry. Microsoft's unethical behaviour is well beyond hard-nosed or cynical. See the examples below.

MSN web site blocks rival browsers

On 29/10/01, the web site of Microsoft's on-line service provider, MSN, simply blocked any attempt to view using Opera or Mozilla. See ZDNet article [link now dead]. Users of such web browsers were told that their browsers weren't XHTML compatible and advised them to download Internet Explorer (IE) or MSN Explorer. Earlier, non-XHTML compliant versions of Internet Explorer and Netscape Communicator were unaffected. Web designers are not expected to support very old standards such as HTML 2.0 but it's too early to abandon HTML 4.0. More importantly, it is counter to the spirit of the World Wide Web to arbitarily block web browsers. This prompted some anger from Tim Berners-Lee, the chairman of the World Wide Web Consortium (W3C).

Microsoft's rudeness and 'more standards compliant than thou' attitude might be forgivable if they weren't lying.

Microsoft only reversed this policy after a huge ruckus. Their current excuse for this behaviour was that it was an error. To block browsers is not a default option that could be forgotten to disable, it requires effort to write and insert code. Perhaps I should try this excuse. I ought to try shoulder-charging people I don't like and claiming my deliberate action was 'an error'.

Don't care about technical excellence

Microsoft simply don't care about technical excellence or good software engineering principles. They are quite prepared to attack them to maintain their monopoly.

Painful birth of Direct3D

Around '96-97, the PC using Windows 95 was well established as a platform for high performance, 2D games. The use of DirectX meant independent game developers only had to write to one standard API (Application Programming Interface) to exploit performance enhancements of 2D video cards, rather than write custom code for each video card and impede game development. With the emergence of video cards supporting 3D graphics, Microsoft needed an 3D API to aid independent game developers and boost the appeal of Windows 95. Microsoft had anticipated this and was already developing the 3D API, OpenGL, on Windows NT with Silicon Graphics.

Video card drivers that implemented OpenGL on high-end PCs running Windows NT were available but drivers for low-cost, high-volume video cards, needed for the PC games market, were evolving slowly. Thus, Microsoft developed a new type of driver called the Mini Client Driver (MCD), which greatly reduced the time to develop such drivers.

Despite their expertise in OpenGL, their active development in it and that they're a member of the Architecture Review Board (ARB) that controls the technical standards of OpenGL, they refused to support it on Windows 95. OpenGL-based applications could not be ported from Windows NT to Windows 95. Microsoft also took the unusual step of retracting its support for MCD drivers for OpenGL, even though it had already released kits to hardware developers. As a consequence, some hardware developers were forced to recall OpenGL drivers that were already in the beta-test phase. For Windows 95, Microsoft were supporting another 3D API, Direct3D. This artificially partitioned Windows 95 from other platforms for no good technical reason.

Direct3D was a reworked API acquired by the purchase of RenderMorphics Ltd and marketed by Mucrosoft for the mainstream market. Microsoft marketed OpenGL as a low-performance API, only suitable for certain CAD applications - a claim that was demonstrably wrong at the time and is now laughable in the face of many, high-performance 3D games usign OpenGL.

Game developers wanted to choose between Direct3D and OpenGL as they saw fit and petitioned Microsoft to support both, not just Direct3D. These can be viewed here and here. Microsoft never replied. John Carmack, head developer of id Software that developed Doom and Quake, publically declared that he refused to use Direct3D. A copy of his statement can be found here. John Carmack's loathing of Direct3D is summarised by this extract.

With OpenGL, you can get something working with simple, straightforward code, then if it is warranted, you can convert to display lists or vertex arrays for max performance (although the difference usually isn't that large). This is the right way of doing things -- like converting your crucial functions to assembly language after doing all your development in C.

With D3D, you have to do everything the painful way from the beginning. Like writing a complete program in assembly language, taking many times longer, missing chances for algorithmic improvements, etc. And then finding out it doesn't even go faster.

The reason for Microsoft's abrasive behaviour is that, firstly, they can control what new features hardware vendors add by controlling what Direct3D will support. More importantly, as Windows is the dominant desktop computer platform and Direct3D only exists on Windows, it is much harder to port PC games to other platforms, making it much harder for other desktop computer platforms to gain consumer appeal.

This subject can further researched at these sites.