在看yoda's Protector源代码的时候,发现
const DWORD ALIGN_CORRECTION =0x1000;// this big value is e.g. needed for WATCOM compiled files
上网一查,发现WATCOM竟然有这样一段传奇:
一、Watcom的发展史
在编译器混战的时代,一家加拿大的小公司出品了Watcom C/C++编译器,但是以在DOS下能够产生最佳化程序代码闻名于世的,许多写游戏和DOS Extender的厂商都指名要使用Watcom C/C++,因为不论是Borland C/C++还是Visual C/C++,它们产生的最佳化程序代码都比Watcom C/C++的最佳化程序代码差上一截。再加上当时最有名的DOS Extender厂商PharLap公司也是使用Watcom C/C++,因此Watcom C/C++在当时专业的C/C++程序员以及系统程序员心中是第一品牌的C/C++开发工具。
Watcom C/C++在DOS市场站稳了脚跟之后,由于Windows已经逐渐成为市场的主流,DOS势必将被逐渐淘汰出局,因此,Watcom C/C++如果要继续生存下去,也就一定要推出Windows平台的C/C++开发工具。大约是在1993、1994年左右,Watcom终于推出第一个Windows下的C/C++开发工具。
不过,当时Watcom C/C++在Windows推出的C/C++开发工具实在是平淡无奇。其集成开发环境和另外三个对手比较起来简直像是远古的产品,一点特色都没有。不过Watcom C/C++仍然是以它的最佳化编译器作为号召。因此当时发生了一个非常有趣的现象,那就是许多软件公司会同时买Borland C/C++,或是Visual C/C++,Symantec C/C++之一,再搭配一套Watcom C/C++。在开发应用系统时使用其他三套开发工具之一,最后要出货时再使用Watcom C/C++来编译以产生最佳的程序代码。
在Watcom C/C++推出了Windows平台的开发工具之后,也吸引了一群使用者。虽然Watcom C/C++的市场比起其他的三家来说是最小的,但是总算撑起了一片天,成为四大C/C++开发工具之一。稍后Watcom C/C++被Sybase并购,成为Sybase的Optima++的前身。
二、石破天惊还是巨星陨落
1996年左右,Sybase并购了Watcom之后终于推出了石破天惊的C/C++开发工具:Optima++。Optima++是当初结合了Watcom的最佳化编译器以及类似Delphi的组件拖曳开发环境的第一个RAD C/C++开发工具。更棒的是Optima++的组件架构(类似Delphi的VCL)完全是以纯正的C/C++程序代码撰写的。这可不得了,因为这代表Optima++是一个融合了Visual C/C++和Delphi两大王者开发工具为一身的超级赛亚人工具。
在我(《Borland传奇》作者李维,下同)知道这个工具、并且尝试实际使用之后,极为震惊。因为对于我这个使用了C/C++ 五六年的人来说,它比Delphi更具有吸引力。因此我立刻在《RUN!PC》上介绍了这个不可置信的工具。果然,Optima++很快开始风靡市场,虽然没有立刻占据很大的市场份额,但是已经造成了一股气势,开始为Visual C/C++和Delphi带来压力。
我记得当时台湾Sybase办的产品发表会也吸引了数百人与会,不可一世。我的文章在《RUN!PC》6上发表之后,台湾的Sybase立刻和我联络,由当时的余协理和我见面,也是希望我继续为Optima++写文章,台湾Sybase也提供额外一字加2元稿费的待遇。但是我告诉余协理,Optima++ 1.0虽然很棒,但是仍然有一些臭虫,而且和中文环境相冲突,无法处理中文,需要立刻解决这个问题才能够在台湾的市场成功。她答应我立刻向总公司反映。我也老实地告诉她,在问题没有解决之前,我无法写一些不确实的东西。后来台湾Borland的总经理方先生也找我去询问有关Optima++的事情,我告诉他Optima++是好东西,但是中文有问题。如果中文问题能够解决,那么将对Borland和Microsoft的产品有很大的影响,当时我还不知道Borland由于Optima++的影响,已经开始准备开发C++ Builder。
在1996年底左右吧,Optima++ 1.5终于进入Beta的阶段。但是在我拿到Beta版时非常失望,因为中文的问题仍然没有解决。后来台湾Sybase又找我去,这次和我见面的是台湾Sybase总经理郭俊男先生,以及Sybase的新加坡技术总裁,不过我忘记这位先生的名字了。见了面之后,我立刻把Optima++ 1.5中文的问题以及许多的臭虫告诉他们,希望他们能够解决,如此Optima++ 1.5才能够在中文市场成功。可是出乎我意料之外的是,他们似乎并不着急这些问题,反而询问我是否有意愿为Sybase工作,做PowerBuilder的产品经理。
也许是因为我为Delphi写了太多的东西,让PowerBuilder在台湾受了很大的影响,因此他们希望我到Sybase工作,以打击Delphi并且Promote PowerBuilder。当时他们提出的待遇条件实在是非常、非常的诱人,比我当时的薪水高出一倍左右(我当时在资策会工作)。不过由于我对PowerBuilder实在没有什么兴趣,因此我告诉他们,如果是做Optima++的产品经理,那么我将会考虑并且接受。
没有想到,Sybase的新加坡技术总裁告诉我Optima++在1.5推出之后就可能会停止,因为Sybase要把资源移去为当时愈来愈红的Java研发一个新的Java RAD开发工具,那就是后来的PowerJ。于是他询问我如果不愿意做PowerBuilder的产品经理,那么是不是愿意做PowerJ的产品经理?由于当时我已经知道Borland开始了Open JBuilder的研发,而我对Open JBuilder的兴趣远大于PowerJ,因此没有答应Sybase。果然,在Optima++ 1.5推出之后,不但中文的问题没有解决,Sybase之后也没有继续对Optima++研发下去。
Optima++一个如此有潜力的产品就这样消失了,真是令人遗憾。Optima++应该有很好的机会可以成功。我相信,如果当时Sybase知道C++ Builder后来的成果,可能就不会放弃Optima++了,而C/C++的RAD工具一直要到后来的C++ Builder来完成这个梦。
至此,和Visual C/C++竞争的只有Borland的编译器了,然而虽然后来Borland继续推出了Borland C/C++ 5.0,但是品质仍然不够好,市场反应也不佳。后来终于在Borland C/C++ 5.02之后宣布停止此条产品线的开发,Borland C/C++的光荣历史也就从此打住,真是令人不胜感叹,而Visual C/C++从此在C/C++开发工具市场中再也没有对手。不过没有竞争的市场的确会让人松懈,后来的Visual C/C++进步的幅度愈来愈小,MFC也数年没有什么大进步,不像当时和Borland C/C++竞争时每一个版本都有大幅的改善。看来寡占的市场的确是不好的,这也让人回想起Visual C/C++、Borland C/C++、Symantec C/C++、Watcom C/C++四雄逐鹿的辉煌时代了。
三、开源潮流
Watcom C/C++产生目标程序的质量还是非常让人难忘的,这也是不少程序员(尤其是游戏程序员)青睐于这个编译器的原因,这也促成了OpenWatcom C/C++的诞生,免费、开源,也希望很多的人使用,最新版支持C/C++/Fortran的编译。
posted on 2008-07-26 11:52
幽幽 阅读(2097)
评论(0) 编辑 收藏 引用 所属分类:
杂集