??
字號:
其實不管是什么程序語言,在面對競爭日益激烈的情勢中,程序語言的開發廠商和愛
好者莫不卯足全力地捍衛和鼓吹其支持的程序語言,對于C/C++的發展廠商和愛好者
來說也是一樣的情形。更有趣的是,雖然使用C/C++語言最大的平臺是UNIX/Linux,
但是Windows上的C/C++開發工具反而是競爭得最為激烈、進步幅度也是最大的平臺。
對于Borland來說,在Windows平臺上是市場排名第2的C/C++開發工具廠商,而且C++
Builder這條產品線對于Borland來說,占據了開發工具第3位的收入來源,對于Borland
有著重要的貢獻,Borland不但不可能放棄,反而更要想辦法增加市場規模。在C++
Builder推出并且從Microsoft搶回了部分的市場份額之后,Borland計劃推出更新、
更強勁的C/C++開發工具。Borland也在BorCon 2002中透露了一些有關未來C/C++開發
工具的計劃。不過在我們討論C/C++開發工具的未來之前,先讓我們看看目前在C/C++
技術方面重要的發展。
首先在C/C++編譯器方面Windows平臺上廠商的表現實在是差強人意,不管是Borland
或是Microsoft都沒有完全實現出符合ANSI C/C++標準的C/C++編譯器,這和數年前四
大C/C++編譯器廠商彼此競爭激烈、快速進步的情況來說實在是令人不滿意,這也可
見失去競爭的市場其進步緩慢的現狀。不過Borland已經宣稱在發展下一代最佳化的
C/C++編譯器,不但能夠產生更好的最佳化C/C++編譯機器碼,而且也將符合ANSI C/
C++標準。相對于Borland在C/C++方面的大動作,Microsoft反而顯得比較沉寂,除了
把VC++移植到.NET上的VC.NET之外似乎沒有什么大的改善。當然,Borland是不是能
夠真地推出宣稱的C/C++編譯技術還要看在2003年的表現。另外,在C/C++連接器(Linker)
方面Borland也宣稱將要搭配新一代的C/C++編譯器推出新一代的C/C++連接器,提供
更聰明、更緊密的最終機器碼。
除了編譯器、連接器和C/C++開發工具之外,另外一股發展快速的C/C++勢力便是各種
C/C++的開放函數庫和Framework了。許多的C/C++函數庫和Framework由于品質良好而
且采用開放源碼的設計,因此也快速被許多的C/C++程序員使用而盛行于C/C++程序員
的領域中,除了早為大多數C/C++程序員廣泛使用而享大名的STL之外,其中最著名的
當屬ACE、Boost和Loki這三個C/C++函數庫和Framework了。
C/C++的王牌Framework--ACE
ACE是一個使用面向對象方式設計的C/C++Framework,主要是提供開發通訊應用軟件
使用的核心同步處理(concurrency)和分布式設計模式(design patterns)的功能。ACE
提供了C++的封裝類別(wrapper)和組件,讓程序員在許多UNIX操作系統、Win32平臺
和實時操作系統(Realtime Operation System)平臺開發高效率的系統服務和應用程
序。ACE Framework提供了將近150000行的程序代碼以及450個左右的類。
ACE為了分隔Framework的復雜度,采用了層次的架構來設計,下圖就是ACE Framework
的設計架構圖。在ACE Framework的低階層次中封裝了OS的Adapter以及C++的封裝類
別,以增加ACE Framework在不同平臺之間的移植性。而在ACE Framework的高階層次
中,則提供了延伸低階C++封裝類別的能力,以提供可重復使用的分布式組件以及分
布式計算中間件。由此可知,ACEFramework的目的是提供一個跨平臺的中間件
Framework,以便讓C/C++的程序員在各種平臺中開發高效率的分布式計算應用系統。
由于ACE Framework的流行以及廣泛被使用,因此已經被許多C/C++程序員視為主流的
C/C++Framework。目前也有許多的應用程序使用ACE Framework成功的開發出高品質
的分布式軟件。例如下圖的ACE ORB便是使用ACE Framework實現重要的CORBA規格的
實時ORB引擎:TAO。TAO由于使用了ACE Framework,因此也屬于一個免費的ORB引擎,
從遵照OMG規格的CORBA都能夠使用ACE Framework來實現這一點,就可以了解ACE
Framework的實用性。讀者可以在www.cs.wustl.edu/~schmidt/TAO.html找到TAO的數
據。
另外一個使用ACE Framework實現的著名軟件就是JAWS了。JAWS是一個高效率的
Adaptive Web Server,下圖是JAWS提供的復雜,強大的功能。讀者也可以在
www.cs.wustl.edu/~jxh/research/找到JAWS的數據。
由于目前ACE Framework被使用得愈來愈廣泛,所以許多C/C++編譯器也開始支持ACE
Framework。因此新一代的C/C++開發工具必須能夠支持ACE Framework,最好還能夠
提供整合ACE Framework的功能,直接在C/C++開發工具內部支持ACE Framework。
Template和Design Pattern的極美結合:Loki
Loki是一個愈來愈流行的C/C++類函數庫,它是由Andrei Alexandrescu先生開發的,
而Andrei也是"Modern C++ Design"一書的作者。事實上,Loki就是因為"Modern C++
Design"一書的介紹才逐漸被許多C/C++程序員使用。
Loki是結合了Design Pattern、Generic Programming和C++語言集成的C++函數庫,
充分展示了C++語言的優美和威力,并且提供了C++語言使用新的應用。由于Loki的優
美和盛行,因此現在許多C/C++編譯器和開發工具都以支持Loki為重要的功能之一。
最新的C/C++標準函數庫Boost
Boost是除了ACE和Loki外另一個快速崛起的C/C++標準函數庫。目前Boost已經被C/C++
Standard's Committee提議成為C/C++標準的核心函數庫,由此可見Boost的重要性。
目前Boost同樣被許多C/C++編譯器支持。未來的C/C++開發工具應該在核心部分就會
支持Boost。未來的C/C++開發工具最應該采用的開放架構應該是在核心部分支持Boost
和Loki,并且以開放的Adapter來整合ACE Framework。
著名的C/C++函數庫和Framework的開發廠商Rogue Wave
數年前使用C/C++開發工具的程序員可能都知道Rogue Wave這家軟件廠商,因為Rogue
Wave就是以提供各種專業的C/C++函數庫和Framework著名的。在數年前Borland和許
多的C/C++開發工具廠商也都向Rogue Wave授權使用Rogue Wave的C/C++函數庫。我記
得,數年前在使用C/C++語言時最喜歡使用的函數庫也是Rogue Wave出品的產品。當
年在C/C++User's Journal、C/C++Report等著名的雜志中,Rogue Wave的產品也是經
常可見的。不過隨著C/C++的盛況不再,Rogue Wave的聲勢似乎也不如前了,許多當
時Rogue Wave著名的C/C++函數庫也隨著消失,在前一陣子甚至傳出Borland可能并購
Rogue Wave的傳言。
但是隨著C/C++語言最近的重振聲威,Rogue Wave似乎也開始有了比較積極的動作,
也推出了許多新的C/C++函數庫和Framework,有興趣的讀者可到Rogue Wave的網站上
看看。
不過,Rogue Wave的發展史也見證了C/C+4-語言使用的演變。以前Rogue Wave是以提
供高品質的C/C++函數庫著名,例如Rogue Wave曾推出過封裝各種數據類型運算方法
的C/C++函數庫,但是在STL等開放C/C++函數庫流行之后,Rogue Wave的產品自然走
入了歷史。另外,Rogue Wave也曾推出過封裝ODBC的C/C++類函數庫,以提供C/C++程
序員在各種平臺使用ODBC存取關系數據庫的能力,但是隨著0DBC成為歷史,Rogue Wave
這樣的產品自然也開始消失了。
因此,如何為一個已經流行超過10年的語言不斷注入新的創意、技術和應用,是每一
個C/C++開發廠商都必須面對的事情。
C/C++開發工具的未來
那么C/C++開發工具的未來是什么?難道在四大C/C++編譯器廠商大戰之后C/C++開發
工具的市場便沒有創新了嗎?除了Microsoft的VC.NET和Borland的C++Builder之外,
Windows C/C++開發工具市場就此沉寂了嗎?
當然不,在前面我們看到了C/C++函數庫和Framework的蓬勃發展,相較于目前C/C++
開發工具廠商來說是有活力得多了。因此,未來的C/C++開發工具必須能夠跟上最新
的C/C++標準以及各種頗具威力的C/C++ Framework。未來的C/C++開發工具除了本身
提供的編譯器、集成開發環境和Framework之外,必須采用新的架構設計以提供C/C++
程序員整合Third-Party或是Open Source的C/C++ Framework,而無需C/C++程序員辛
苦地自己修改這些C/C++ Framework才能夠使用。另外,未來的C/C++開發工具必須提
供類似Java的高移植性,讓C/C++程序員能夠在各種平臺開發各種C/C++應用系統。除
了一般的應用程序之外,在移動設備、低階系統程序等都必須能夠勝任,而不像現在
的Windows C/C++開發工具一樣,各在不同的應用中占有優勢。
目前,Microsoft的VC++在窗口平臺上的C/C++開發工具發展方向已經非常明顯,那就
是維持原生窗口C/C++開發工具的現狀并且往VC.NET發展。Borland呢?除了Borland
C++Builder 6.0之外,未來Borland的C/C++開發工具將提供什么新的發展呢?
在前一陣子Borland已經宣布了未來仍將投入大量的資源研發新一代的C/C++開發工具,
將采用下圖的架構提供給程序員最具整合威力的C/C++開發工具。
從上圖中的架構,我們已經可以預知未來的Borland C/C++開發工具將允許程序員高
度整合最流行的C/C++ Framework,例如前面討論的ACE、Boost和Loki等。這是非常
重要的,因為未來的Borland C/C++開發工具將提供跨平臺/移動設備的能力,而這些
C/C++ Framework也大都提供跨平臺的功能。如果Borland能夠提供完整的整合能力,
那么這代表未來的Borland C/C++開發工具不管在什么平臺,都能夠提供最完整和強
勁的功能。
如果Borland真能推出這種新一代的C/C++開發工具,那么這將是Borland從當初Borland
C/C++3.0以來最具創意的產品,也是最值得程序員期待的C/C++工具。Borland是不
是能夠遵照承諾推出呢?也許答案在2003年便會揭曉了。
--
[1;36m昨天[0;37m是[1;32m今天[0;37m的[1;33m歷史[0;37m,[1;32m今天
[0;37m將成為[1;34m明天[0;37m的[1;33m歷史[0;37m。 [m
每當我們回顧[1;33m歷史[0;37m的時候,總會發現兩樣東西 [m
[4m[1;31m嫣紅的血[0;37m,和[4m[1m晶瑩的淚[m
[m[1;34m※ 來源:·飄渺水云間 freecity.cnzju.net·[FROM: pcq][m
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -