打印〗〖选项
编程工具的回忆
  在当时,不论是Borland还是Microsoft对这个问题都没有提供很好的解决方案,而Watcom C++的出现无疑是久旱逢干雨,被折磨得痛苦不堪的DOS程序员终于看到了一线曙光。Watcom C++的办法是让程序在所谓的“保护模式”下运行(其实Windows操作系统也是这么做的),在这种模式下无论存取多少内存都没有问题,并且方法也非常的简单。有一位老程序员在第一次用Watcom C++成功分配了整整1M内存的时候,这样形容他此刻的心情:“我感动得想哭!”这句话深深印在了我的脑海中,也让我联想起另外一位著名程序员的话:程序员的生活就是在痛苦的地狱和快乐的巅峰之间反复震荡,只有在这种生活中才能体会到人生的真义。闲云谭影日悠悠,物换星移几度秋。我们今天的程序员是否仍然能够体会到这种心情呢?

  正是因为有了这么吸引人的功能,所以即使是在Borland虎视于前,Microsoft狼顾于后的C++开发工具市场上,Watcom C++仍然取得了辉煌的成功。特别是对于开发DOS下面的游戏来说,Watcom C++在相当长的时期内几乎是不二的选择。可惜的是Watcom缺乏一位有眼光的领导者,没有能够巩固和发扬Watcom C++的优势,在Windows兴盛以后逐渐失去了往日的光彩,最后在激烈的市场竞争中黯然出局,让许多曾经是Watcom忠实Fans的程序员空为之魂断神伤。

  让我们把目光再次聚焦到Borland和Microsoft两大巨头的较量。Microsoft最初用来和Turbo C较量的是一个称为QuickC的产品,有趣的是这个产品在编译速度上确实是非常的Quick,但是产生的代码却过于庞大,而且执行效率也不尽如人意。Microsoft后来放弃了QuickC而开始Microsoft C/C++的开发,不过QuickC中有一个相当不错的编辑器却被Microsoft保留了下来,这个编辑器就是后来Microsoft的开发环境(包括初期的PWB——Programmer’s WorkBench以及后来的Developer Studio)的基础。在这个时期Microsoft C的编译器技术仍然远远落后于Turbo C的水平,不过失之东隅,收之桑榆,Microsoft QuickBasic却在这个时候战胜了一些对手而赢得了相当的市场份额。作为开发工具市场老大的Borland对此自然不能熟视无睹,不久Borland就推出了自己的Turbo Basic来与QuickBasic抗衡。Turbo Basic有着和Turbo Pascal与Turbo C非常相似的工作环境,而且编译和执行效率也都相当不俗,再加上Borland的品牌作后盾,所以Turbo Basic诞生后很快也争取到了相当多的客户。而Microsoft在这个时候非常出人意料的公布了Microsoft Pascal的开发计划,当时很多人对Microsoft的计划都不抱乐观态度,因为Borland就是靠Pascal起家的,Microsoft要在自己的软肋上和Borland竞争,希望实在太渺茫了。过了一段时期,还未成熟的Microsoft Pascal突然胎死腹中,而Borland在Turbo Basic 1.0版本之后不久也停止了进一步的开发和推广。于是业界盛传Microsoft和Borland私下签订了一个协议,彼此不进入对方的市场,这个消息是否属实则不得而知。

  在操作系统进入Windows时代以后,Borland和Microsoft都迫切需要新一代的开发环境。Microsoft在这个时候推出的Microsoft C/C++ 7.0多少有些出人意料,因为作为Windows生产厂家,Microsoft自己推出的开发工具竟然还是一个基于DOS的环境,这意味着它虽然可以在Windows下运行,但是将无法利用Windows系统的许多优秀特性,包括易于操作的图形界面和存取扩展内存的功能等等。而Borland同期推出的Borland C++ 3.0已经是一个真正的Windows图形界面开发环境了。不过对于Microsoft来说,这一时期真正值得纪念的最重大事件是Visual Basic for Windows的问世,Visual Basic中的Form-Based Programming Modal在当时看来的确是非常具有革命性的功能,也让许多在繁复的SDK中挣扎的程序员从此解脱出来,因此Visual Basic很快取得了喜人的市场佳绩。

  我想,Microsoft之所以多年来一直独钟于Visual Basic,并不单单因为Microsoft是以Basic起家的,恐怕更重要的原因是Visual Basic代表了MS的光荣与梦想,因为在开发工具市场当了多年的老二之后,Visual Basic的成功第一次让MS从Borland手中抢得了一些风头,也标志着Microsoft在这一市场上开始吹响了反攻的号角。

  那么这时候Borland在干些什么呢?一方面Borland加紧将Borland C++从3.0升级到3.1版本,大幅度改进编译器功能并且加入Borland的得意之作OWL;另外一方面,Borland也没有忘记自己的老本行Pascal,下一步自然就是将Turbo Pascal编译器移植到Windows平台上面来。但是将Pascal移植到Windows平台上的工作面临着一个很大的问题,就是Microsoft公布的Windows开发权威资料Windows SDK,包括各种头文件、库文件、资料、文档和示例程序等等在内,全部都是以C语言为基础的,Borland有没有能力把它们完全转化成Pascal语言的形式?虽然没有人怀疑Borland的实力,但是这项工作看起来还是相当的艰巨,因此在Borland公布Turbo Pascal for Windows的开发计划后,很多业内人士都不相信Borland能够按时推出这个产品,还有人断言Borland的这个计划肯定会失败。这些人中甚至还包括鼎鼎大名的Windows编程大师Charles Petzold在内。

  但是后来的事实表明他们都错了。Borland不仅按时发布了Turbo Pascal for Windows,而且这个产品问世后再次引起了巨大的轰动。我还记得Turbo Pascal for Windows的安装界面是这样的:画面中心是一辆轿车在高速公路上飞驰,一旁的路标上写着几个大字:“Speed Limit:∞”。Borland的目的自然在于强调TPW带来的极速快感,而TPW的速度也确实给人留下了深刻的印象,它比同时期任何其他编译器,包括自己的同族兄弟Borland C++都要快得多。更令人惊讶的是TPW生成的代码无论是在大小还是执行效率都堪称是最优的。用TPW 1.5编写的一个最基本的“hello, Windows”程序在最大优化后的大小居然可以达到不可思议的1.75k!而且这个程序除了Windows三大基本模块(kernel,user,gdi)以外不需要其他任何DLL支持,这么小的尺寸是任何C/C++编译器都无法做到的。(用Borland C++ 3.1产生的同等功能的程序,最小的尺寸也有6.5k左右。C/C++程序比较大的主要原因在于程序必须连接C Startup Code,而由于C/C++语言的复杂性,这些代码的大小是相当可观的。)实际的评测表明TPW产生的程序在执行效率上面也要略微优于Borland C++产生的程序。



【本文分页】[1][2][3]

文章作者:未知