生存还是毁灭──VB7.0前瞻 高翔 2001年 27期 #1引 子   一向是软件业老大的微软这段时间的日子可不好过,尽管扭转了被司法部强制分割的命运,但越来越多的公司进入了反微软垄断的阵营。另一方面,它寄予厚望的Windows 2000的表现不佳,Windows Me则是旧瓶装新酒,功能没有多少突破。在编程工具领域,屡败屡战的Inprise以其不断更新换代的Delphi、C++ Builder对微软的Visual BASIC(以下简称VB)、Visual C(以下简称VC)发起了一次次的猛烈冲击。VB本来是微软软件发展战略的重要组成部分,岂能让被称为“VB杀手”的Delphi一步步抢去市场?于是,微软于近期发布了VB 7.0测试版,意欲争回失去的市场。   #1VB 7.0的新突破   就编程语言来说,除了BASIC以外,微软做得都不如Inprise(其前身为Borland)。自从微软发布VB以来,VB很快成为编程初学者的首要选择,但是,由于BASIC语言本身的缺陷,它在速度、底层操作和支持对象等方面不能与Pascal(Delphi所采用的核心语言)相提并论,而这正是Delphi用来战胜VB的突破口,VB 7.0在这方面当然不能无动于衷。   首先,它实现了完全面向对象和自由线程,而在此之前,VB只是部分支持对象,而且单线程更是使程序员束手束脚;由于BASIC的容错性极强,所以速度不尽如人意,并且限制了程序的规模和应用范围。VB 7.0则完善地解决了这一问题,让VB脱胎换骨,初步具有了和Delphi一决雌雄的能力。   其次,VB 7.0作为微软.net战略的重要组成,其网络功能大大加强,用户可以直接编辑ASP网页,相当于集成了Visual InterDev的功能。由于VB与VB Script天生的“血缘关系”,VB 7.0的这一扩充很容易就实现了,而这一扩充不但可以成为与Delphi竞争过程中的重要筹码,而且为微软向网络过渡提供了极大的帮助。   再者,VB 7.0在数据库操作方面有较大变化,它提供了ADO的增强版本:ADO.net,可以方便地在不同平台之间进行数据交换。学编程的都知道,数据库操作是编程语言的重要组成部分,VB 6.0的数据库功能本来就已经非常强大,但Delphi 5在这方面也有其独到之处,为VB 6.0所不及,而PHP对网络数据库的操作更是让微软头疼。VB 7.0如果不在这方面有所突破,后果不堪设想。而现在,微软可以松一口气了,VB 7.0使用XML作为数据传输格式,与其它程序的兼容性极强。   最后,VB 7.0在编程上有很大的变化,并且编译速度有很大提高。VB 7.0完全摆脱了GOTO的阴影(这是BASIC最有名的缺点),可以轻松处理错误,同时并不破坏程序的结构。增加了严格类型检查,提供了参数构造器,所有这一切,都向C语言靠近,虽然失去了BASIC容错的强项,但增强了功能,加快了速度,编译速度较VB 6.0有很大提升。   #1美中不足   虽然VB 7.0有这么多的优点,但它最大的缺点是与VB 6.0的兼容性太差,程序员们很难把VB 6.0的源代码升级编译。谁都知道,兼容性是软件的生命,而保持软件向下兼容一向是微软的传统,以致Windows一直离不开DOS。因此,VB 7.0的测试版一出,就“引起哗声一片”,VB程序员一片恐慌,对微软意见极大,很多人有了放弃VB的想法。VB 7.0虽然功能强大,但很可能因为兼容性的问题而失去支持,失去支持意味着什么,相信微软比谁都清楚。想当年,BASIC语言的创始人推出的True BASIC,它在编译速度及音乐、三维动画等多媒体功能上让微软的Quick BASIC和Borland公司的Turbo BASIC等黯然失色,而且还有反编译功能,在当时简直可称之为完美了。可惜的是它与被大众普遍接受的BASIC语言无法兼容,以至于不得不在竞争中淡出。一直以兼容为武器的微软,对这段历史不可能不记忆犹新。前车之鉴,微软怎么会重复历史的错误?怎么会把“翻身”的机会变成一条不归之路?   虽然反微软阵营的斗士们都为微软的这一失策而欢欣鼓舞,但有一个基本的事实是大家都知道的,那就是微软不是傻瓜,正如一句中国的成语:困兽犹斗。微软在竞争搏击中一直是所向披靡的,难道会在新世纪伊始就折戟沉沙?VB 7.0会不会使VB从此退出江湖?答案无疑是否定的。离开了VB,微软拿什么与Inprise公司在编程低端市场一决高低?如果说VC是Visual Studio系列的主力军,那么VB就是其中的急先锋。损失这样一员“大将”,对微软经济收入上的打击还是小事,对微软从里到外全面控制整个计算机世界(从操作系统到常用软件、游戏)的图谋也会是个重挫。微软对此事决不会等闲视之。   #1胜负难断   说来有趣,微软在编程领域的遭遇与Intel在CPU领域的遭遇极其相似。Inprise的Delphi就好像是AMD的毒龙战胜赛扬一样轻而易举地占据了原本属于VB的大片市场,并赢得了“VB杀手”的美称。微软也像英特尔推出奔腾4一样推出了Visual Studio.net以挽回败局。为了这一战役的胜利,微软投入了大量的人力、物力、财力,可见其重视程度。相信微软会考虑周到,到VB 7.0正式版推出之时,兼容问题一定会得到较合适的解决。   其实,想想BASIC的发展史,从最早的行编辑的GW BASIC,到全屏幕编辑的Quick BASIC、Turbo BASIC、True BASIC,再到现在的VB,从解释执行,到编译成P代码执行,再到本机代码执行,BASIC已经发生了巨大的变化。可以说,BASIC是变化最大的高级语言。既然有变化,就难免会出现兼容问题,正如会用Quick BASIC的人学VB仍然要花不少时间一样。虽然如此,VB仍然逐渐深入人心,普及程度远远超过了当年的Quick BASIC。由此看来,只要变化能适应市场的需要,就会被市场所接受。这样看来,VB 7.0不但不会使VB灭亡,还有可能占据Delphi、C++ Builder的部分市场,从而使VB更加普及。   分析终究是分析,VB 7.0到底会把VB发扬光大还是让它走向灭亡,我们还是让事实说话吧。今年,微软的VB 7.0和Inprise的Delphi 6将会展开激战,到底鹿死谁手,我们拭目以待。   