按:本文发表于2007年11月《程序员》杂志。一些读者要求将此文发表于网上,现经征得原作者同意,在本人博客上将此文予以转载。
随着OOXML与ODF的竞争为世人所知,微软又一次与开放扯上了关系。9月初OOXML在ISO的投票失败之后,就免不了有一批微软的粉丝们忿忿不平,他们很无辜地质问道,不是要一个开放文档标准吗?OOXML不是开放文档标准吗?为什么要反对呢?难道微软提出的开放标准就不是开放标准吗?当然对面阵营的人士也不含糊,他们凭直觉抗拒把微软与开放并列,并且质疑OOXML厚达数千页的说明规范是一种阴谋,或者至少会反对在ODF之外另立一个开放文档标准。不过不能否认,仅从法理上看,OOXML的开放性并不存在什么问题。其唯一的问题就是OOXML背后的名字——微软。在越来越开放的软件产业里,微软几乎是传统封闭势力的最后一块保留地。尽管做出了一些小的、无足轻重的姿态,但是在整体上讲,它仍然强硬地抗拒开放的趋势,禁止在自己的几乎任何产品和项目中使用和参与开放软件,并且在各种场合散布反对开源的观点,试图使人们的思想重新回到十数年前的状态。这些都不假,但是具体到OOXML这件事情上,微软的“开放性”似乎又确实无可指责。这就给我们讨论这一话题带来了困难:总不能仅凭臆测就妄断是非曲直吧。
在这种时候,讲一点实证主义是有好处的,认真地了解一点历史故事,看看历史上微软在开放标准领域的所作所为,有助于我们更好地理解现在正在发生的事情。
很遗憾的,在微软不长的历史中,每次与开放扯上关系,几乎都是充当反面教员的角色。人们记忆犹新的,如微软分化和吞噬Java的企图,在Web标准方面与W 3C 唱对台戏的故事。然而有一段几乎被人遗忘的精彩故事,其实却能更全面、更深入地揭示微软对于开放标准的策略和手段。现在就让我们来回顾一下这个充满了权谋、利诱、屈膝投降和最终悲剧收场的真实往事。
1. 和平年代
这段往事发生在实时3D计算机图形API领域。