在看yoda's Protector源代碼的時候,發(fā)現(xiàn)
const DWORD ALIGN_CORRECTION =0x1000;// this big value is e.g. needed for WATCOM compiled files
上網(wǎng)一查,發(fā)現(xiàn)WATCOM竟然有這樣一段傳奇:
一、Watcom的發(fā)展史
在編譯器混戰(zhàn)的時代,一家加拿大的小公司出品了Watcom C/C++編譯器,但是以在DOS下能夠產(chǎn)生最佳化程序代碼聞名于世的,許多寫游戲和DOS Extender的廠商都指名要使用Watcom C/C++,因為不論是Borland C/C++還是Visual C/C++,它們產(chǎn)生的最佳化程序代碼都比Watcom C/C++的最佳化程序代碼差上一截。再加上當(dāng)時最有名的DOS Extender廠商PharLap公司也是使用Watcom C/C++,因此Watcom C/C++在當(dāng)時專業(yè)的C/C++程序員以及系統(tǒng)程序員心中是第一品牌的C/C++開發(fā)工具。
Watcom C/C++在DOS市場站穩(wěn)了腳跟之后,由于Windows已經(jīng)逐漸成為市場的主流,DOS勢必將被逐漸淘汰出局,因此,Watcom C/C++如果要繼續(xù)生存下去,也就一定要推出Windows平臺的C/C++開發(fā)工具。大約是在1993、1994年左右,Watcom終于推出第一個Windows下的C/C++開發(fā)工具。
不過,當(dāng)時Watcom C/C++在Windows推出的C/C++開發(fā)工具實在是平淡無奇。其集成開發(fā)環(huán)境和另外三個對手比較起來簡直像是遠(yuǎn)古的產(chǎn)品,一點特色都沒有。不過Watcom C/C++仍然是以它的最佳化編譯器作為號召。因此當(dāng)時發(fā)生了一個非常有趣的現(xiàn)象,那就是許多軟件公司會同時買Borland C/C++,或是Visual C/C++,Symantec C/C++之一,再搭配一套Watcom C/C++。在開發(fā)應(yīng)用系統(tǒng)時使用其他三套開發(fā)工具之一,最后要出貨時再使用Watcom C/C++來編譯以產(chǎn)生最佳的程序代碼。
在Watcom C/C++推出了Windows平臺的開發(fā)工具之后,也吸引了一群使用者。雖然Watcom C/C++的市場比起其他的三家來說是最小的,但是總算撐起了一片天,成為四大C/C++開發(fā)工具之一。稍后Watcom C/C++被Sybase并購,成為Sybase的Optima++的前身。
二、石破天驚還是巨星隕落
1996年左右,Sybase并購了Watcom之后終于推出了石破天驚的C/C++開發(fā)工具:Optima++。Optima++是當(dāng)初結(jié)合了Watcom的最佳化編譯器以及類似Delphi的組件拖曳開發(fā)環(huán)境的第一個RAD C/C++開發(fā)工具。更棒的是Optima++的組件架構(gòu)(類似Delphi的VCL)完全是以純正的C/C++程序代碼撰寫的。這可不得了,因為這代表Optima++是一個融合了Visual C/C++和Delphi兩大王者開發(fā)工具為一身的超級賽亞人工具。
在我(《Borland傳奇》作者李維,下同)知道這個工具、并且嘗試實際使用之后,極為震驚。因為對于我這個使用了C/C++ 五六年的人來說,它比Delphi更具有吸引力。因此我立刻在《RUN!PC》上介紹了這個不可置信的工具。果然,Optima++很快開始風(fēng)靡市場,雖然沒有立刻占據(jù)很大的市場份額,但是已經(jīng)造成了一股氣勢,開始為Visual C/C++和Delphi帶來壓力。
我記得當(dāng)時臺灣Sybase辦的產(chǎn)品發(fā)表會也吸引了數(shù)百人與會,不可一世。我的文章在《RUN!PC》6上發(fā)表之后,臺灣的Sybase立刻和我聯(lián)絡(luò),由當(dāng)時的余協(xié)理和我見面,也是希望我繼續(xù)為Optima++寫文章,臺灣Sybase也提供額外一字加2元稿費(fèi)的待遇。但是我告訴余協(xié)理,Optima++ 1.0雖然很棒,但是仍然有一些臭蟲,而且和中文環(huán)境相沖突,無法處理中文,需要立刻解決這個問題才能夠在臺灣的市場成功。她答應(yīng)我立刻向總公司反映。我也老實地告訴她,在問題沒有解決之前,我無法寫一些不確實的東西。后來臺灣Borland的總經(jīng)理方先生也找我去詢問有關(guān)Optima++的事情,我告訴他Optima++是好東西,但是中文有問題。如果中文問題能夠解決,那么將對Borland和Microsoft的產(chǎn)品有很大的影響,當(dāng)時我還不知道Borland由于Optima++的影響,已經(jīng)開始準(zhǔn)備開發(fā)C++ Builder。
在1996年底左右吧,Optima++ 1.5終于進(jìn)入Beta的階段。但是在我拿到Beta版時非常失望,因為中文的問題仍然沒有解決。后來臺灣Sybase又找我去,這次和我見面的是臺灣Sybase總經(jīng)理郭俊男先生,以及Sybase的新加坡技術(shù)總裁,不過我忘記這位先生的名字了。見了面之后,我立刻把Optima++ 1.5中文的問題以及許多的臭蟲告訴他們,希望他們能夠解決,如此Optima++ 1.5才能夠在中文市場成功。可是出乎我意料之外的是,他們似乎并不著急這些問題,反而詢問我是否有意愿為Sybase工作,做PowerBuilder的產(chǎn)品經(jīng)理。
也許是因為我為Delphi寫了太多的東西,讓PowerBuilder在臺灣受了很大的影響,因此他們希望我到Sybase工作,以打擊Delphi并且Promote PowerBuilder。當(dāng)時他們提出的待遇條件實在是非常、非常的誘人,比我當(dāng)時的薪水高出一倍左右(我當(dāng)時在資策會工作)。不過由于我對PowerBuilder實在沒有什么興趣,因此我告訴他們,如果是做Optima++的產(chǎn)品經(jīng)理,那么我將會考慮并且接受。
沒有想到,Sybase的新加坡技術(shù)總裁告訴我Optima++在1.5推出之后就可能會停止,因為Sybase要把資源移去為當(dāng)時愈來愈紅的Java研發(fā)一個新的Java RAD開發(fā)工具,那就是后來的PowerJ。于是他詢問我如果不愿意做PowerBuilder的產(chǎn)品經(jīng)理,那么是不是愿意做PowerJ的產(chǎn)品經(jīng)理?由于當(dāng)時我已經(jīng)知道Borland開始了Open JBuilder的研發(fā),而我對Open JBuilder的興趣遠(yuǎn)大于PowerJ,因此沒有答應(yīng)Sybase。果然,在Optima++ 1.5推出之后,不但中文的問題沒有解決,Sybase之后也沒有繼續(xù)對Optima++研發(fā)下去。
Optima++一個如此有潛力的產(chǎn)品就這樣消失了,真是令人遺憾。Optima++應(yīng)該有很好的機(jī)會可以成功。我相信,如果當(dāng)時Sybase知道C++ Builder后來的成果,可能就不會放棄Optima++了,而C/C++的RAD工具一直要到后來的C++ Builder來完成這個夢。
至此,和Visual C/C++競爭的只有Borland的編譯器了,然而雖然后來Borland繼續(xù)推出了Borland C/C++ 5.0,但是品質(zhì)仍然不夠好,市場反應(yīng)也不佳。后來終于在Borland C/C++ 5.02之后宣布停止此條產(chǎn)品線的開發(fā),Borland C/C++的光榮歷史也就從此打住,真是令人不勝感嘆,而Visual C/C++從此在C/C++開發(fā)工具市場中再也沒有對手。不過沒有競爭的市場的確會讓人松懈,后來的Visual C/C++進(jìn)步的幅度愈來愈小,MFC也數(shù)年沒有什么大進(jìn)步,不像當(dāng)時和Borland C/C++競爭時每一個版本都有大幅的改善。看來寡占的市場的確是不好的,這也讓人回想起Visual C/C++、Borland C/C++、Symantec C/C++、Watcom C/C++四雄逐鹿的輝煌時代了。
三、開源潮流
Watcom C/C++產(chǎn)生目標(biāo)程序的質(zhì)量還是非常讓人難忘的,這也是不少程序員(尤其是游戲程序員)青睞于這個編譯器的原因,這也促成了OpenWatcom C/C++的誕生,免費(fèi)、開源,也希望很多的人使用,最新版支持C/C++/Fortran的編譯。
posted on 2008-07-26 11:52
幽幽 閱讀(2156)
評論(0) 編輯 收藏 引用 所屬分類:
雜集