微软的门槛 歪歪 1999年 第5期 52版 在近两期的First Looks中我们试用了国产的办公软件WPS2000与Cell表,如果这两个软件不与办公软件领域的世界霸主Office比较是不合情理的。因此,我们做了大量的对比,我们不得不承认Office的强大和国产软件的不足。但Office也有缺陷,首先它是一个世界性的软件,并不完全适合一个民族的习惯(因此,日本的字处理软件一太郎占据了大部分日本市场),其次我们一般用户只需要它10%的功能,但我们不得不为其他的90%付费。WPS2000与Cell表在这场与微软的冲突中处境是艰难的,但它们也独具一些特色。下面我们试图从技术上探讨一下微软Office长期处于垄断地位的原因和WPS2000与Cell表加入办公软件竞争采取的一些措施,希望对国产软件的发展有一定参考作用。 #1 一、兼容性是市场准入的门票 当年,微软为了从Lotus 1-2-3中抢走电子表格市场第一的位置和让Word进入中国市场,都曾对Lotus 1-2-3和WPS文件格式下了很大的功夫来兼容。可以理解,有良好的兼容性可以让其他软件的用户顺利过渡到自己的系统,这是获得市场份额的第一步。微软的Word和Excel都没有公开自己极其复杂的文件格式,以达到遏止竞争对手的目的。但即使这样,WPS2000对Word的兼容性也是相当出色,它对主要的字处理软件Word的各个版本的兼容性都达到了95%以上。鉴于通过逆向工程分析Word格式的难度太大,我们有理由相信能达到如此好的兼容性,金山公司有可能从微软或第三方获得了Word文件格式的技术资料。Cell表则用的是一些公开的方法来实现兼容性,Cell表需要兼容两部分内容,一是各通用的数据库系统。在安装中我们可以看到Cell表安装了VB5附带的ODBC(开放数据库连接),Cell表通过ODBC能打开包括Microsoft SQL server,Sybase以及Oracle大型数据库在内的大部分ODBC数据源。在发稿之前,我们得到Cell软件开发小组的最新报告,Cell表能打开IBM DB2数据库。另一方面,Cell表能打开常用的表格系统和DOS下的表格文件,具体请情况参见试用手记。比较值得提出的是,也许是Excel 97的格式复杂,Cell表如果要打开Excel 97文件,则必须要求用户安装Excel 97。据我们分析,Cell表是通过VBA调用Microsoft Excel 8.0对象库来实现的,由于VBA是解释执行,所以速度很慢,看来这只是一个权宜之计。不过,在利用公开资料的情况下,Cell表能做到这一步已经相当出色了,值得一提的是在文件导出中,Cell表能把文件的内容存为Excel 7.0的格式(但不包括公式和其他字体信息)。 #1 二、宏和VBA是微软垄断市场的一大利器,WPS2000与Cell表试图弃高走低,走中下层路线,取得市场份额。 如果你熟悉宏和VBA,那你可能会发现WPS2000与Cell表的特色功能中的一部分可以用VBA实现。的确,强大的宏和VBA是微软垄断市场的一大利器,对微软而言,VBA使他的Office套件连成一个整体,而对第三方来讲,要和Office全面竞争必须兼容VBA。因而在与Office的较量上,Cell表与WPS2000面临了很大的劣势。从技术上说,宏功能、VBA从技术上讲都属于编程语言,涉及到语法分析、编译原理等许多技术细节问题。微软的Office的VBA环境,是从VB精简出来的。而VB的开发队伍与Office的开发队伍是互相独立的,一个属开发工具,一个属应用软件。由VB的开发队伍实现了VBA,再由Office开发队伍将其集成到Office中去。WPS2000与Cell表的强项都是在做应用软件上。而在开发环境上则没有任何的技术贮备。在这样的技术基础上,WPS2000与Cell表是根本无法与之竞争的。从市场上来看,尽管Office借助宏和VBA可以更彻底地进入更多的应用领域,更细致地满足用户的特殊需求,从而吸引更多的用户。但必须需要一个高素质的用户群和更多的第三方软件厂商在这基础上进行二次开发。而这一切在中国现阶段是并不具备的。且让我们来看看WPS2000与Cell表是怎样看待二次开发这个问题的。WPS2000没有提供宏功能,它不在宏功能上去与Word比高下,而是把资源全部投到基本功能的开发上去,在贴近中国用户的使用习惯这方面上下更多的功夫,并融入了一些实用的PowerPoint和表格功能。这一点请参见WPS2000试用手记。在整体无法抗衡的情况下,放弃一些无法取胜的局部,在其它方面做更多的工作来取得部分优势,这无疑是WPS2000开发的方针。因此我们可以说WPS2000决不是中国人的Word,而是一个优秀的中国办公软件集成系统。Cell表没有提供宏,但提出了两种Cell表今后扩展的解决方案:1.通过Cell表的plug-in支持函数扩展。扩展函数是一个动态链接库(DLL),它可以为Cell表增加函数(Cell表本身带有两个示范函数,存于“\exe\ellsamp.dll”中,在其站点上Cell的开发人员提供了VC源代码的示范程序∶http://www.flink.cn.net/trustsoft/funcsamp.exe,大小为74K。我们下载了该程序,分析了源代码,发现该方法并不适用于普通用户。2.通过发布第三方的ActiveX控件Cell组件来兼容Cell表所生成的文件,Cell组件是一种表格应用开发控件,可以在多种语言(VB,VC,Delphi,VFP,PowerBuilder,Notes,VBScript等)中使用,用Cell组件开发的程序与Cell表共享*.cll的格式,使*.cll成为一个通用格式。目前,该组件已被用友软件、大连王特、北京科利华、清华同方等公司用于其软件的开发之中。有一定的通用性。由此我们可以看出Cell表的战略是通过组件让第三方开发商进行开发和资源共享,使其表格格式成为规范之一。因此,尽管Cell表在中国人的使用习惯上下足了功夫,但它的上述两种扩展方案都没有给中国普通用户更多的二次开发空间。我们由上可以看出WPS2000与Cell表都没有和Office进行全面竞争,而只是提出了更适应中国的中、低用户的解决方案。