不过,Windows取代或否定DOS的方式,完全不同于Macintosh、UNIX和OS/2那种把DOS完全撇开的方式,而是采取了与DOS兼容的方式。微软起初就是在DOS的平台上开发Windows的。早在1988年,微软就推出了支持鼠标以及“图形用户界面”的DOS4、0,虽然那只是一个“外壳”,没能吸引多少买主。1991年,微软继续努力向这个“外壳”注入内容,推出了MS-DOS5、0,这个升级版能够为应用软件的存取提供更多的内存,提高了原本有限的多任务能力,使装入一个以上的软件(但不能同时运行)成为可能。这个升级版,销售量达几千万套,被证明是一个推出Windows的优秀平台。在1985年到1995年大约10年的时间里,微软对DOS的升级和对Windows的开发,采取了两者相互渗透并同时进行的方针。一方面,微软不断推出尽可能向图形用户界面靠拢的独立的DOS新版本,直至1994年推出最后一个独立存在的MS-DOS版本6、22。另一方面,微软也不断推出和DOS兼容的独立的Windows版,即1987年推出1、0版、2、0版(这两个版本在商业上都失败了),1990年推出取得初步成功的3、0版,1992年推出取得辉煌成果的3、1版,直至1995年推出实际上是以DOS7、0为底层引导程序的Windows95。这意味着,微软在开发功能全面的图形界面操作系统时,成功地做到了“将MS-DOS嵌入其中”,“从而使MS-DOS免遭淘汰”。
Windows95是微软取得自我否定DOS最后胜利的标志。这时,微软才公开宣布不再对DOS的版本进行升级。
总之,Windows作为新一代操作系统,是通过利用、兼容DOS这个老一代操作系统,来实现新老交替、取而代之的。形象地说,Windows比DOS“跳”得更高,但这却是以DOS为“跳板”来实现的。从根本上说,新标准兼容老标准,逐步而不是突然取代老标准,这种平稳过渡有利于维护广大用户的基本利益。
2、Windows尽可能与各种应用软件兼容
一个操作系统的兼容性,可以从它和各种应用软件的关系来考虑。一个操作系统,允许在它上面正常运行的应用软件越多,这个操作系统的兼容性就越好。
图形用户界面操作系统出现得很早。但它在很长一段时间里,无法取代字符界面操作系统的行业标准地位,原因就是它对应用软件的兼容性太差。固然,为图形用户界面操作系统编写应用软件,比较复杂和困难,但也没有难到无法办成的程度,关键是许多专业的软件公司不能迎难而上,踌躇不前。他们之所以犹犹豫豫,是因为拿不准图形用户界面操作系统能不能变成行业标准,以及什么时候变为市场认可的行业标准。于是在这里出现了一个恶性循环:图形用户界面操作系统越是没有多少应用软件可以运行,它就越不能成为市场认可的行业标准;越没有人愿意克服困难为它编写应用软件,它也就越没有应用软件可以运行。
苹果公司不能打破这个恶性循环,所以它的Macintosh操作系统没有成为个人计算机行业的标准,它的Mac机没有成为主流机。IBM公司也不能打破这个恶性循环,所以它的OS/2操作系统也没有成为行业标准,它的“OS/2机”也没有成为主流机。
微软迎难而上,敢于向这个恶性循环挑战。早在20世纪80年代上半期,微软就兴趣盎然地为Macintosh图形用户界面操作系统开发过应用软件。虽然,有些编写得并不怎么样,使用起来问题很多,如1984年1月推出的表格处理软件Macintosh·多元计划、文字处理软件Macintosh·Word1、0,就属于这一类。但是,微软1985年9月推出的表格处理软件Macintosh·超越,受到了市场的欢迎。微软继续努力,为了降低编写图形界面应用软件的难度不惜花几年的时间,引入了VisualBasic这样的编程工具。所以,当微软自己编写图形用户界面操作系统Windows的时候,它不仅自己积极地编写应用软件,而且呼吁独立的软件公司为Windows编写应用软件。
作为一种战略,微软不是开发“一个”,而是开发“一套”应用软件来和Windows配合。微软把各种应用软件,如表格处理软件Excel、文字处理软件Word、文稿演示软件PowerPoint、数据库软件Access和通信软件Mail等,都集成套装起来,称之为办公自动化应用软件Office,并使之能在Windows的平台上成功地运行。
1990年,办公自动化应用软件Office1、0,配合图形用户界面操作系统Windows3、0同时推出。在Office1、0这个套装应用软件中,Excel作为图形用户界面软件其历史最为悠久,质量也最好。也正是这个图形用户界面应用软件Excel,为Windows3、0的初步成功奠定了坚实的基础,一个良性循环开始了:“微软通过编写专门配合新Windows程序的Excel而一路领先。Excel促进了Windows的销售……1990年5月份推出的Windows3、0在5周之内就卖出近40万套。”Windows3、0销售得越多、使用的人越多,就越容易暴露它的漏洞(bug),从而有利于改进。
Windows3、0推出后不到一年,微软在1992年4月就推出了排除漏洞(bug)的、质量更好的Windows3、1。Windows的质量越好,用户就越愿意购买,离开取代DOS成为行业标准的目标就越近。事实上,Windows3、1上市后不到一年,每10台售出的个人计算机中就有9台是与这一版本配套售出的。这就是说,微软用Windows3、1操作系统取代了MS-DOS曾拥有的支配地位。Windows3、1成了市场认可的行业标准。Windows越是取得支配地位,成为市场认可的行业标准,就越有利于推广和改进办公自动化套装软件Office,也越能吸引其他软件公司来为Windows编写应用软件。
在1992年,微软的高级管理层,还进行了一次有利于促进操作软件和应用软件相互兼容的组织变动,即操作系统部门和应用软件部门正式合二为一进行统一管理。这是一个很有意义的事情。可以毫不夸张地说,由于操作系统软件和应用软件之间在战略上越来越相互依赖,越来越不可分离,所以一方面只有深入了解新的操作系统如Windows如何运行,才能写好各种应用软件;另一方面,如果写不出各种好的应用软件,新的操作系统也绝对不可能在市场上占据一席之地。
3、Windows尽可能与各种计算机硬件兼容
一个操作系统的兼容性,也可以从它和各种计算机硬件的关系来考虑。计算机最主要的硬件是中央处理器。一个操作系统,越是能够在多种不同的中央处理器芯片上正常运行,那么这个操作系统对硬件的兼容性就越好。
微软成立研究机构,是梅尔沃德建议的。而梅尔沃德之所以提出这个建议,是因为他组织的一个小组,通过研究所选定的操作系统类型,不仅能够在英特尔公司生产的中央处理器芯片上正常运行,而且也能够在非英特尔处理器芯片上正常运行,从而使微软的操作系统具有更大的兼容性。
微软作为一家专门生产软件而不生产硬件的公司,从思想感情上来说,比较容易做到对所有硬件都一视同仁,不会偏爱某一种硬件;但从技术上来说,要使一个操作系统能够在各种硬件上很好地运行,却是一件比较困难的事。
1992年,是IBM公司和微软终止合作的第一年,也是Windows和OS/2公开竞争操作系统行业标准地位的第一年。就在这一年的4月,微软推出了Windows3、1。这个版本,是微软在自我否定DOS、继续提供下一代操作系统行业标准的过程中,取得的一个重大胜利。
但是,Windows3、1所取得的胜利,是不稳固的。
首先,Windows3、1本身有不少缺陷。Windows3、1虽能执行多种工作或应用程序,但只能在一条线程上进行;如果一个应用程序运行失败,整个操作系统就可能需要关闭。单线程应用程序还必须占用处理器的时间,一个高强度应用程序(如一个多媒体程序)会导致同时分享处理器的其他程序运行得特别缓慢。这些不足之处(主要是单线程MS-DOS的人为缺陷)使Windows3、1的用户在操作时经常遭到失败,这使微软很难将Windows3、1销售给公司用户。所谓“很难销售给公司用户”,实质上就是指Windows3、1不能用做网络操作系统,不能应付来自四面八方的多种任务,不能和已经连接成为网络的各种计算机硬件兼容。
其次,竞争形势在变。IBM公司已经从过去的失利中醒悟过来,在继续独立开发OS/2的过程中,已经认真考虑了和各种应用软件的兼容性。结果,凡是能够在Windows3、1上运行的应用软件,在OS/2新的版本上也都能正常运行。这就是说,在和各种应用软件兼容方面Windows3、1相对于新的OS/2而言并无优势。虽然,Windows3、1运行个人计算机应用软件的速度,比OS/2要快,但是OS/2也还有其他方面的优势。除了OS/2是32位操作系统之外,一个非常明显的优势就是OS/2适用于计算机网络,而Windows3、1不适用于计算机网络。
一种操作系统是否适合于网络,既是对它兼容性大小的一个考验,也是它竞争行业标准潜力大小的一个标志。显然,微软在这方面落后了,因为“这些网络一般都使用以UNIX为基础的操作系统,如网威(Novell)公司的NetWare”。事实上,早在20世纪80年代,网威公司的网络操作系统(NetWare),就已经是网络操作系统的行业标准了。
对于微软这样一个“面向未来型”的计算机公司来说,Windows3、1不适用于网络,可不是一件小事。如果说20世纪70年代的“未来”,是个人计算机时代;那么,20世纪90年代初的“未来”,就是计算机网络时代。因此,Windows如果要有一个光明的“未来”,就决不应该满足于Windows3、1,而应该继续向前推进。
比尔·盖茨清楚地认识到这点。他说:“Internet正逐渐变得如此重要,以至于只有Windows在清楚地被证明是连接人们与Internet之间的最佳途径之后,它才可能兴旺发达起来。所有的操作系统公司都在十万火急地寻找种种能令自己在支持Internet方面略占上风、具有竞争力的方法。”微软当然更是自我加鞭,紧追未来,勇往直前。
注重兼容性,微软更有一个自我加鞭、紧追未来的一个重要方法——创新开发工具。“工欲善其事,必先利其器。”这一中国古代的名言,也完全适用于软件的编写工作。要想写好软件,必须使编写工具“锋利”起来。微软在两个工具软件上下的工夫很深,一个是图形用户界面程序语言软件VisualBasic,另一个是对象链接与嵌入软件OLE。有人对微软在研制这两个工具软件上所下的工夫,给予了很高的评价:“公正地说,人们也可以把OLE和VisualBasic,看成是微软贡献给软件产业的极为有用的标准和技术。除了微软,成千上万的应用软件开发者正在有效地使用这些工具来创造商业软件产品和定制应用软件。”
VisualBasic是降低编写图形用户界面应用软件难度的工具。为了引入这个编程工具,微软不惜花上几年的时间。有人说:“比尔·盖茨在5年时间内,推进Excel与其他组件采用VisualBasic为通用的‘宏语言’(宏是一组特殊的命令,由用户自行处理,使许多复杂的操作仅需一两个快捷键就能激活。标准宏语言,能使用户用同一种方式来定制各种各样的微软产品)。”
OLE是在应用软件之间传送数据和信息,从而实现通用组件共享的“锋利”工具。软件的生产或制造,起初是采用“各种软件各自独立、各成一体”的编写方法。每写一个软件,必须写出它的全部代码。随着软件越编越多,编写经验越来越丰富,人们发现:一个应用软件,实际上可以区分为若干个特性组件;而一个系统软件,实际上也可以区分为若干个子系统。许多特性组件,是经常出现在各种不同的应用软件之中的。例如,“打印”特性组件,就出现在“表格处理软件”中,也出现在“文字处理软件”和“文稿演示软件”中。“打印”特性组件,可以而且也应该成为通用组件,从而可以共享。但过去编写这些软件时,是各自独立、互不相干地进行的,无论哪个软件的编写者都必须写出全部所有的代码却没有实现共享。1993年,微软鉴定出在所有产品中,大约有85种主要特性是常用的,却还没能实现共享。于是微软新创了一种办法,那就是用OLE来建构某个特性并加以简化,使相应的特性组件成为OLE对象,成为可以相对独立处理的一个单元。如果在编写其他软件时也采用OLE界面,那么就能够把这个特性作为一个“标准的”、作为一个单元并入其他程序,而用不着重新编写有关的原始代码。OLE作为一种工具软件,其带来的结果就是:开发人员越来越多地运用共享或通用组件来构造软件,原本互不相关的应用软件,变得越来越组合化与通用化。这一方面大大增加了不同软件之间的重复利用的代码数量,另一方面则大大减少了开发人员的重复劳动。例如,Excel4、0在Windows和Macintosh平台间共享了69、4%的代码,另有15、4%用的是Macintosh的专有代码,15、1%用了Windows的专有代码。这就是说,假定已经有了软件Macintosh·超越4、0,如果再要编写Windows·超越4、0,那么只要编写很小一部分代码就行了。