成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當前位置:首頁>>軟件教程>>新聞內容  
C++ BuilderX的問題與展望
作者:猛禽 發布時間:2004-1-16 15:25:22 | 【字體:

  問題篇

  寫這篇文章的初衷源自2003年12月11日在玉笛書生兄所建C++Builder的QQ群中,與書生、令狐蟲、ccrun等幾位BCB版的老朋友的一次聊天(聊天記錄見《一次關于C++BuilderX的討論》)。主要就是聊了一下BCB/BCBX的現狀以未來可能的發展方向,因為覺得對各位用BCB的朋友也許有幫助,故在令狐兄的支持下,整理成文。本文的內容如題目所言,先說說BCBX現在的問題(包括Borland在此次產品轉型中的一些不太合適的做法),然后就我們幾個的個人觀點來談談對它的展望雖然說是BCBX的展望,當然這些都是我們的一些一孔之見,Borland未來會怎么做,那是由不得我們的。

  兩年多以前我曾經設想Borland會推出一個高度集成的開發工具,我當時稱之為Borland Studio(參見拙作《Borland Studio?》),后來又聽李維說,Borland正在研發的代號為Galileo的開發工具將是一個比我設想的Borland Studio更為強大的東東。然而很不幸,所謂計劃沒有變化快。時至今日,這些東東終成泡影,不知道什么時候Borland才能給我們這樣的驚喜。(補充:現在看來似乎又有一點希望,C#Builder是BDS1,Delphi8是BDS2,這個BDS據說便是Borland Develop Studio,也許BDS3會給我們一個驚喜吧)

  就現在的情況來看,Microsoft已經是鐵了心要把Windows操作系統向.net上轉移,未來的Windows操作系統將不再提供新的Win32API,而會以.net的方式提供。原來的Win32API也只是為了兼容性而保留。這很像當年從MS SQL 6.5向MS SQL 7.0遷移的情況,在MS SQL 7.0中的DBLIB只提供與6.5兼容的部分,新增功能都是以OLE-DB方式提供,而到了MS SQL 2000時,DBLIB幾乎已經不能用了。MS SQL的這次轉移成功地實現了一次飛躍,并完全擺脫了Sybase的陰影,所以Microsoft在.net中應該還是會故伎重演的。

  在這種情況下, Windows平臺下的原生開發工具日漸式微,這對于Borland來說,無疑是要作出重大的抉擇。所以Borland在今年(2003年)先后推出了四個主要產品:C#Builder(Sidewinder),C++BuilderX(Tomahawk),JBuilderX(Reveille)以及剛剛在BorCon2003上發布的Delphi8(Octane)。從表面上看,除了C#Builder是全新推出的與Microsoft的Visual Studio.net 2003競爭的產品以外,其它的似乎都是原有產品的延續,特別是Delphi 8延用了Delphi的產品名稱,而繼JBuilder9之后推出的JBuilderX的那個X也很容易被理解為羅馬數字的“10”,那么C++BuilderX是否會是C++Builder 7呢?為什么不叫C++Builder 7或C++BuilderVII而要叫C++BuilderX?會不會是傳說中的Borland Studio甚至是Galileo的原型呢?

  所謂希望越大,失望也越大。當C++BuilderX還在測試版階段時,許多C++Builder用戶都迫不及待地下載了Tomahawk來先睹為快,我也一樣,但結果卻令人大失所望。這在BCB用戶群中造成了極大的反響,其中比較有名的就有如CSDN BCB版的Aweay兄的文章《Borland聽我對你說》等。

  雖然Borland中國的左輕侯很快就撰文為BCBX作了一番辯解,但還是難以令人接受。BTW:按左兄的說法,Galileo已經成了Borland在.net平臺下的開發工具(C#Builder和Delphi8)所用的統一的IDE的名稱,看來是不用對Borland Studio抱什么希望了。

  不可否認Borland在C++開發工具中的這次轉型從未來發展的角度上說是必要的,也是正確的做法,具體請參見左兄的文章(《關于Borland C++BuilderX的一些問題的回答》或《程序員》2003年第十二期)。但還是要指出Borland在此次轉型中的錯誤做法及可以改進的方面。我們幾個雖然不能說代表Borland的用戶,但至少也算是Borland的鐵桿用戶,我們的意見應該來說還是比較有代表性的,可以毫不夸張地說:如果Borland不能在未來作相應的改進,恐怕是難有機會在C++領域里再翻身了。

  首先說說BCBX推出的方式是非常不合適的。最主要的就是沒有提供一個從BCB到BCBX的平滑過渡。Borland一向標榜自己的特色是:為客戶帶來新技術,創造新價值,同時保護客戶已有投資。過去她也一向是這么做的,然而這一次卻沒有做到。這是一個非常嚴重的錯誤。

  從歷史上說(參見李維的《Borland傳奇》一書),這種錯誤Borland曾經犯過多次,每一次都是造成用戶的大量流失。以C++開發工具為例,第一次發生在BC4的OWL2與BC31的OWL1不兼容,加之BC4本身品質不佳,造成Borland用戶的第一次大規模流失,這次事件最終使Borland從一流的軟件公司墮落成為二流的軟件公司。雖然后來推出了相當不錯的BC451,然而已經為時太晚,回天乏力。直到BCB的出現,作為第一個RAD C++工具搶回了一部分用戶,然而由于種種原因(其中一個當然是因為BCB使用的VCL讓它始終籠罩在DELPHI的陰影之下),已經無法重現當年BC31的輝煌了。

  讓人無法想象的是Borland在花了這么大的代價買來的教訓,卻還不知吸取,才過了不到十年,再次犯同樣的錯誤。當我第一次看到BCBX時的感覺就像若干年前第一次看到BC4或BCB1一樣:起初是新鮮,大喜,接著就是失望(完全是中看不中用),然后開始盼望下個版本能解決(當然這兩次都盼到了,一個是BC451—可惜來得太晚了,另一個是BCB3—這個比較好玩的就是,當時我們都在盼望的是BCB2,結果卻盼到了BCB3,大概是Borland為了和Delphi的版本號一致,跳過了BCB2)。

  其實Borland要避免這種窘境并不困難。有兩個方法:一個是在BCBX中暫時嵌入一個BCB的IDE的簡化版,讓它能繼續支持VCL的RAD開發,因為對C++開發工具來說,即使在開始時犧牲少量的跨平臺特性(BCB是不能跨平臺的),問題并不大,因為這部分特性本來就是為了繼承Windows平臺下的東西,更何況像Jbuilder這樣對跨平臺要求很高的產品,在早期版本里一樣不是純JAVA的;另一個方法就是像DELPHI那樣,提供一個BCB7作為過渡。因為從某種角度上說,Delphi7對Delphi6的改進,實在是非常之少,所以有人戲稱Delphi7其實是Delphi6.5。就現在的情況來看,Delphi的轉型無疑要比BCB成功得多,Delphi8提供了.net開發和兼容VCL開發(通過VCL.net)。而從BCB的情況來看,唯一的解釋就是Borland對BCB不夠重視。其實在這兩個方法中,個人認為后面一個方法更好一些。因為雖然現在.net大行其道,但可以肯定是的Windows下的原生開發還要持續幾年,在這段時間里讓BCB7和BCBX并行(因為在大多數情況下,二者的沖突不是很大)對Borland占領C++開發工具領域非常有利,而且有一個BCB7這樣一個填補這個空白的產品(因為那時大多數開發工具都到.net下了)還能帶來一定的收益。

  雖然說Borland作為一個不能算太大的公司,沒有足夠的資源維持一條過長的產品線,如果要在BCBX中加入BCB或同時開發BCBX和BCB7,會有困難。但作為一個全新領域的產品(在平臺中立的C++開發工具中,暫時還沒有像BCBX這樣的產品,即使是傳說中的Eclipse+CDT,也暫時不能成什么氣候),略為延后一些發表并不會造成太大的影響,反而是推出不夠成熟的產品會造成嚴重的反面后果,在這點是Borland也是吃過大苦頭的,最典型的莫過于Delphi4。而且如果有BCB7作為緩沖的話,BCBX的延后發表,對市場來說也不會有太大的影響。

  但是現在Borland已經這么做了,要想挽回的話,只有在產品上作文章了,這樣反而把Borland自己逼上了一條無法回頭的路了—必須盡快推出一個“可用”的BCBX。而這個“可用”的要求就要比通過BCB7緩沖后要高得多了。

  然后來具體說一下BCBX這個產品。

  它不能說沒有優點,先從IDE說起吧。BCBX采用了一個全新的IDE—PrimeTime,這個IDE來自于JBuilder,而且后來的JBuilderX也是采用這個IDE(只是在JBuilderX中用的新版本PrimeTime具有更多的優點,如代碼折疊等)。這個JAVA寫的IDE可以跨平臺,看上去也很美,使用上雖然與BCB/DELPHI不太一樣,但至少還是保持了Borland的一貫風格,特別是對JBuilder用戶來說會很自然。

  這個IDE除了具有BCB原有的一些特性,如Code Template等功能以外,特別值得一提的是,它還具有原來在BCB上沒有的版本控制功能(見Editor的History頁面),這個功能我前兩年就在JBuilder上看到了,眼饞的不行,現在終于也可以在C++中享受到了。此外它還可以像JBuilder一樣集成多種源碼版本控制工具(CVS,ClearCase,VSS)。

  對于編輯器,BCBX還有一個很好用的功能就是Sync Edit,通過選擇一段文本,可以方便地修改其中相同的標識符等,在進行代碼重構時非常有用。

  還有就是提供了一個類似Class Explorer的Structure View功能,可以在這里立即跳轉到各個類/函數的定義或實現處。另外它的Editor支持嵌入源碼的ToDo Item功能,并且能在Structure View中立即顯示出來,而且也可以從Structure View中跳轉,比BCB中的ToDo List功能要強大。

  另外,對Project的管理功能也略有加強,可以定義和調整Project Group中的編譯順序(相當于一種Project依賴關系)。這一點也是BCB曾經被人垢病的一個方面。

  BCBX還有一個特性是與BCB一樣的:支持基于VisiBroker的CORBA應用開發。特別是它比BCB有一個很大的改進,在BCB中用CORBA向導默認生成的CORBA應用是使用BOA的,而這是早在五年前就被CORBA2.2規范制定的POA所代替了(當然BOA也可以用,但基于移植性考慮,OMG建議使用POA),在BCBX中終于用POA代替了(而且好像不能再用BOA了)。

  至于很多人認為BCBX這個用JAVA寫的IDE速度太慢,我倒不覺得,只是啟動速度略有些慢,不過BCB的啟動也不能算很快,比起VS.net來說慢太多了。也許是因為我的機器內存比較大的緣故,雖然是PIII-733的CPU,但有512M內存。看來要跑BCBX要先準備好內存了。

  BCBX除了這些IDE方面的好處外,還有一個好處就是帶有dbExpress這個跨平臺的通用數據庫訪問技術,所以用BCBX做跨平臺數據庫應用會比較方便,并且目前dbExpress支持的數據庫種類還是比較多的。

  雖然BCBX有上述的優點,但也不能改變它是一件“粗糙”的產品的本質,簡直就和當年的BCB1如出一轍。

  首先最大的敗筆莫過于不支持VCL了。據說不支持VCL還有理由了:因為它的目標用戶不是BCB用戶,而是更為廣大的非VCL的C++用戶,如其它平臺的C++用戶及VC的用戶等,VCL是BCBX2的目標。而且不支持VCL就算,也沒有提供一個別的GUI開發的Framework,比如傳說中的wxWindows(據說要在BCBX2里提供)。

  其次來說這個IDE,作為IDE技術的發明者,Borland應該很了解開發人員要的是一個什么樣的IDE,它應該能夠在其中很方便地完成大部分的開發工作,但BCBX明顯達不到要求。雖然它帶有很多BCB不支持的功能,但同樣的,有很BCB中具備的功能,在BCBX中還沒有提供。特別是非常重要的Code Insight功能居然都沒有,而且它的Structure View,雖然在某些方面比Class Explorer強大(如ToDo),但它的功能還是太弱,比如不能在Structure View里創建類成員等。還有BCBX的Editor中不支持跳轉到定義的功能,不支持Open file at cursor等。而且個人認為BCB6中將只將單元放在Editor上面的Tab中,而將CPP文件和H文件放在下面的Tab中是一個好辦法,但BCBX卻還是像BCB5一樣都放在上面,這樣文件一多就要卷來卷去。

  還有一個足以說明它“粗糙”的理由是:BUG。我曾經試過在一個很簡單的應用里只是更換了一下編譯器,正要保存設置時,IDE無響應,CPU占用100%。

  其實Borland提出BCBX這個策略是沒有錯的,只是策略的實施上有些問題。

  BCBX的產品定位是定位于非VCL的C++用戶。在這點上,就會讓Borland目前的C++產品用戶,基于VCL的BCB用戶非常不滿,特別是沒有提供像BCB7這樣的過渡產品,可能導致用戶流失。其次,對于非VCL的C++用戶來說,也未必吸引人。這部分C++用戶主要有兩派:一派是用VC的用戶,一派是用GNU C++的用戶。對VC用戶來說,跨平臺特性對他們完全沒有吸引力,而在Windows平臺下,VS.net還是非常好用的,并且他們可以很方便地進行.net應用開發,BCBX提供的多編譯器支持對他們來說也是沒用的功能,所以在這里BCBX基本上沒有什么市場。

  估計BCBX更主要的目標市場在GNU C++。用GNU C++的用戶中,很大一部分是開源社團,而對他們來說,根本不屑于使用像BCBX這樣的東東,特別是自從Danny.Thorpe當年因為開發Kylix,與Linux社團有一次大的沖突,Borland在開源社團的影響并不好。而且就BCBX本身來說,它雖然說支持ACE、Boost、Loki這些庫,但是事實上這些庫本來就是通用庫,支持很多的編譯器,其中也包括BCB,所以這根本不能算什么特性。而且雖然BCBX對Project管理功能有所增強,但比VS.net還有差距,更別提跟開源社團習慣使用的Make文件相比了(雖然Make文件用起來比較復雜,但對于大項目來說,它是最好的解決方案,即使是項目管理功能好如VS.net,跟Make文件相比還是差得太多了)。

  縱觀整個BCBX,其中提供的有價值的東西非常有限:一個是還不能算是很完善的IDE,另一個可能就算是dbExpress了。至于像CORBA向導之類的并不算很特別,用命令行編譯IDL一樣可以實現它的功能,雖然沒有向導那么方便,但更加自由,不用受制于VisiBroker,可以選擇各種ORB產品。版本控制也可以用CVS等專門的軟件,只是要多一些手工操作,沒有集成起來這么方便而已。其它像編譯器一類的更沒什么好說的,BCBX還是用的BCB6的編譯器:BCC5.6。BCBX集成了Together(據說,我用的Enterprise版是沒有的)卻沒有提供相應的企業應用開發的Framework,,如C#Builder/DELPHI8中的ECO,或是像BCB/DELPHI那樣的MIDAS/DataSnap。

  當年Kylix 1.0甫一堆出,就有人評論它是一個“玩具”,直到Kylix 3才基本有了一個產品的樣子(可惜看樣子它注定是要夭折的了)。然而今天的BCBX卻連當年的Kylix 1都不如。

  按Borland在中國一向的產品定價,一般開發工具的企業版都是定在29950元人民幣的天價(相對于MS來說完全可以說是天價,因為三萬多元定一年的MSDN宇宙版,可以得到MS的所有產品),BCBX應該也不會例外,說句不客氣的話,這樣乏善可陳的產品定這樣一個價格真是與搶錢無異。


  展望篇


  說了BCBX這么多的問題,該來談談我們的展望了。

  首先從產品定位說起。大家都知道,每種語言都有其適用的領域,沒有什么語言能通吃所有的開發工作,C++也一樣,雖然從某種程度上說,C++可算是目前開發領域最廣的語言,幾乎可以用于絕大多數的應用或系統的開發,但在不少情況下,它僅僅是“可以”而已。比如在企業應用開發領域,C++并不是一個很好的選擇(雖然借助于VCL,BCB基本上做到了),但通常選擇Java或.net可以更快更好地解決問題。

  就目前情況來說,C++最常用的開發領域有兩個大的方面,一個是系統級應用開發,如操作系統,驅動程序(這兩種應用更主要的是用C和匯編,但也有部分可以用C++),編譯器,虛擬機,工業數據采集,通信,系統服務等;另一個是一般應用開發,主要是指非企業應用或者說是非數據庫應用方面,如一般GUI應用程序,工具軟件,圖像處理,多媒體等(雖然這些應用有些也可以用.net等虛擬機技術開發,但是在一些關鍵性部分基于性能上的要求,還是需要C++等原生開發語言的)。

  基于這些原因,作為定位于通用C++開發工具的BCBX要想在C++開發工具領域占有一席之地(暫且先不說它是不是有希望重振當年BC31的聲威),就應該結合C++語言的實際情況,這兩方面的應用開發上有獨到之處。。

  首先說系統級應用開發。對于系統級應用開發來說,GUI通常不是很重要的方面,它對開發工具的要求更側重于性能和調試等方面。即要求編譯器能生成高度優化的代碼,并且目標程序要很穩定,要提供方便的底層調試功能。而且一般這樣的軟件都相對比較龐大,對項目管理的要求比較高。

  對應這些要求,未來的BCBX應該加強在編譯器,調試器及項目管理方面的功能。比如在編譯器方面,現在BCBX用的BCC5.6是肯定不能滿足要求的,雖然BCBX支持使用其它的編譯器,但作為一個完整的開發工具而不僅僅是一個IDE,BCBX中不能沒有Borland自己的編譯器。不過據說Borland正在開發一個全新的跨平臺C++編譯器—BCCX,讓人拭目以待;在調試器方面,這曾經是Borland的強項之一,現在已經沒落了,不過也可以考慮跟別的公司合作或通過集成第三方產品來實現;至于項目管理一直是Borland的弱項之一,而且對這樣的復雜項目來說,即使實現了像VS.net那樣的管理還是不夠的,這個可以考慮提供一個MakeFile管理工具來實現,畢竟這方面的應用還是MakeFile最好,但它的編寫維護都是比較麻煩的,如果能提供一個能生成MakeFile的向導及一個能方便地管理MakeFile的工具,也是相當不錯的。

  再來看一般應用開發。對于這方面的應用開發來說,一個好的GUI開發工具是非常重要的,此外對編譯器,調試器,項目管理同樣也有一定的要求。因為這類應用的最終用戶通常都是一般電腦用戶,不同于系統應用面對的都是專業用戶,所以對界面要求通常都很高,不但要通做出標準的GUI界面,常常還需要能實現一些花哨的界面功能。這就對GUI Framework提出了較高的要求:它不但要好用,簡單,還要能很方便地擴充。VCL就是一個很好地實現了這個要求的GUI Framework,但是很遺憾的是,它不是跨平臺的,雖然后來Borland又推出了跨平臺的CLX,但是它用基于QT庫的,而QT庫的License對商業應用不是免費的,這又限制了CLX的應用,特別是現在Borland已經暫停(也許是停止)了Kylix這條產品線,對CLX來說無異于雪上加霜。

  既然VCL和CLX兩條路都走不通,BCBX未來唯一的出路就是采用一個新的GUI Framework,目前看來Borland是會選擇wxWindows。但這帶來了一個問題:因為BCB的產品線已經停掉了,BCBX未來必須接下BCB的用戶,而如何從VCL向wxWindows過渡是未來BCBX面臨的一大問題。不過有消息說Borland已經提供了解決方案,在新的BCBX中將采用一個開放的GUI Desgner,支持多種GUI Framework,已知的就有wxWindows和JavaBean,而對于非跨平臺的VCL,在新的BCBX中將通過一個被稱為“VCL Bridge”的東西實現。這樣看來,在未來的BCBX中將能比較完美地實現這一功能。

  再來看企業應用開發。雖然就目前的情況看,基于虛擬機平臺的開發技術(JAVA或.net)已經成為企業應用開發的主流,而C++不是一種適用于虛擬機的語言(雖然MS將所謂的Managed C++加入.net,但情況不并好,不過C++適用于開發虛擬機倒是真的),無論在開發效率和產品品質方面,用C++做這方面的應用都是不合算的,即使是在產品性能方面,C++所能取得的優勢也日趨減少。

  但是這個市場仍然存在。首先,在一些情況下,企業應用系統還是需要和一些底層應用(如硬件驅動或其它原生代碼程序等)進行交互,這時用基于虛擬機的技術并不方便(.net相對做得較好);另一方面,則是在一些對性能有較苛刻要求的應用中,用基于虛擬機的技術可能不能滿足要求。這也就是為什么像BEA的TUXEDO這樣的原生代碼應用中間件仍然有相當大的市場的原因所在。

  在較好的實現了滿足前面兩種應用的開發要求后,BCBX也完全可以進軍這一領域。對于BCBX這樣一個跨平臺開發工具來說,所用的中間件技術當然也必須是跨平臺的,MIDAS/DataSnap所支持的COM技術是肯定不行的,而只能用JAVA開發的EJB當然也不行,唯一剩下的就是CORBA。雖然現在BCBX提供了VisiBroker的CORBA應用向導,但相對于MIDAS/DataSnap來說,功能還是太弱。即使加上Together,BCBX距離一個像樣的企業應用開發工具還是比較遠的。還有一個問題是:雖然Borland的VisiBroker(現在已經改名叫Borland Enterprise Server—BES之VisiBroker版了)曾經是全球市場占有率排名第一的CORBA產品,即使現在它也是數一數二的,然而畢竟還有很多其它的CORBA產品可以選擇,比如現在占有率第一的IONA的Orbix以及Open Source的ACE/TAO和MICO等(只考慮支持C++的)。如果BCBX不能以一種開放的姿態來接受它們,依然很難在CORBA領域取得大的成就。

  在這一點上,Borland應該是有經驗的,當年JBuilder正是因為能與BEA的WebLogic很好地結合起來,才得以取得如今的勝利。逼得IBM不得不放棄Visual Age for JAVA(就是后來成為Open Source的Eclipse),雖然在一些方面,VAJ還是比JBuilder有優勢的,并且IBM的WebSphere在各方面的表現也不比WebLogic差,然而Borland和BEA的強強聯手實在太強大了。如果當年JBuilder只抱著IAS(Inprise Application Server即現在BES的前身)不放的話,實在很難能在JAVA開發工具領域有什么大的作為,因為在WebLogic和WebSphere面前,IAS還差得太遠了。所以現在JBuilder支持的EJB Container是越來越多了,除了前面說的這些商用產品外,Open Source的JBoss也同樣在支持之列。

  BCBX完全可以借鑒JBuilder的這一經驗,支持集成包括IONA Orbix,ACE/TAO等多種CORBA產品開發,相對來說,這一點比集成不同的GUI Framework要容易很多,因為CORBA規范是由OMG定義的標準,不同產品之間的差異相對較小。所以問題的關鍵就在于Borland是否愿意這么做了,畢竟這可能影響到BES這條產品線的市場。老實說,Borland在企業中間件市場中一直是很失敗的,從早年通過收購OEC取得Entera,卻很快因為COM和CORBA的崛起而被迫放棄;通過收購VisiGenic取得了VisiBroker后,雖然在跟Netscape的合作中曾取得一定的成功,但隨著NetScape的沒落,VisiBroker的領先地位也很快被IONA的Orbix所取代;后來從IAS開始做JAVA中間件,也一直是只能在沒有WebLogic和WebSphere的市場角落里分一點殘羹而已。與其讓BCBX的企業開發與BES一起沒落,還不如像JBuiler一樣犧牲BES換來BCBX的成功,畢竟對Borland來說,開發工具才是真正的主營業務。

  當然,光有對CORBA的支持還是不夠的,畢竟企業應用開發是一個大問題,需要的支持還是很多的。雖然現在BCBX有DBX這個方便的數據庫訪問技術,但是還缺乏一個系統的Framework,一個類似于MIDAS/DataSnap的東西。另外要結合Together的MDA開發,還必須有一個類似于ECO的數據持久化技術。

  還有對SOAP/WebService的支持是不能少的。雖然它并不是一個像MS所吹噓的那樣,是一個萬能的技術,但還是有很多地方需要它的。特別是當需要與其它應用溝通時,雖然與JAVA應用溝通可以通過RMI over IIOP,但要與.net應用或其它的應用溝通,SOAP還是一個比較好的解決方案。

  有了這樣一個強大的企業開發環境,就像我前一段向朋友“太可怕”(CSDNID:comanche)推薦ACE/TAO時說的:“這個世界沒有MS,沒有SUN,一樣可以很美好。”

  正如我前面所說,現在的BCBX是乏善可陳的,然而如果未來的BCBX真的可以加入我前面所說的這些Feature,包括一個完善的IDE,一個優秀的編譯器,一個方便高效的GUI開發環境,以及一個功能強大的企業開發Framework等,那么BCBX才真正像一個Powerful的C++開發工具(讓我想起Borland當年拍的BC31廣告片^_^),重拾BC31當年的風光也不是不可能的。

  本來寫到這里就差不多完了,不過Borland大概是為了安撫用戶對BCBX的不滿情緒,最近推出了一個BCBX Preview包(在Borland網站有提供下載),通過將這個包安裝到BCBX中,可以大致了解一下未來版本的BCBX會是什么樣子。我簡單地試用了一下,所以在最后要補充一些對這個Preview的看法。

  這個Preview包括兩個部分:一個是集成了wxWindow的GUI開發環境,另一個是全新的C++編譯器BCCX的預覽版。下面分別作一個說明:

  首先來看這個GUI Designer。在IDE的New wizard里增加了兩頁,其中一頁就是wx framework(另一頁是preview),里面有兩項:New wx framework project和New wx framework form。用前者創建一個新的wx應用,可以看到它生成的代碼中包括一個XRC文件,這是一個XML風格的界面資源文件,類似于DFM/XFM。在頁面下部有一個Design的Tab,點擊即可打開GUI Designer。

  這個GUI Designer和以前的BCB的GUI Designer還是很相似的,包括控件欄,設計區和Object Inspector三個部分。其中控件欄也是在頁面上方,只是控件少得多了,只有三頁共18個控件。設計區和BCB不同,不再是獨立的Form Design,而是像Visual Studio/Galileo那樣嵌在頁面里,而且控件的定位也不是用以前的八點框,而是一個藍色的粗框,也沒有Grid定位。Object Inspector也有不同,首先是位置改在頁面右邊,跟JBuilder一貫的風格相同,當然內容就更不同了,畢竟現在的Framework是wxWindow而不是VCL了。

  再來看BCCX編譯器。同樣是在IDE的New wizard里有一頁Preivew,其中包括三個項目,其實這里生成的代碼與Project頁中的相應項目并無太大不同,只是所用的Include目錄(Preview帶有一套新的Include文件和啟動代碼)和編譯器設置略有不同而已。另外,在IDE的編譯選項中也增加了一項:“Borland® C++ Compiler Preview for Windows (IA-32) Tools”。看BCCX命令行提示可以看到,它的版本信息為:Borland C++ Compiler 6.0 Preview。可見這是Borland的一個全新版本的C++編譯器,同樣還有與之配套的Incremental Link,也是6.0版的。

  不知道是不是因為新的編譯器配置有所不同,我只在IDE中編譯通過很簡單的程序,還未能成功編譯過wxWindow應用,看來還需要再研究研究。

  當然這個畢竟只是Preview,問題還是有的。除了上面說的編譯器的問題外,GUI Designer也是有問題的,最大的問題就是速度慢。在我的512M的機器上,BCBX跑起來也只占到300多M的內存,還未將物理內存用盡,但做GUI Design時的速度卻比用JBuilder做GUI還要慢上許多,這實在讓人難以忍受。其次一個問題是它不支持中文,在控件的屬性中輸入中文會變成亂碼,估計跟XRC文件使用UTF-8編碼時對中文(應該其它DBCS也有同樣的問題)沒有能夠正確處理有關。

  這篇文章斷斷續續寫了一個多月,終于可以告一個段落了。最后還是要給Borland提點意見:Borland在2003年里出的幾個產品,完成度都不算高,其中除了JBuilderX我不是太了解以外,C#Builder、C++BuilderX和Delphi8我都試用過,基本上都未達到可用的程度。希望今年Borland能夠吸取教訓,推出一個令人比較滿意的BCBX新版本。


文章來源:Mental Studio
 放生
 愚愛
 夠愛
 觸電
 白狐
 葬愛
 光榮
 畫心
 火花
 稻香
 小酒窩
 下雨天
 右手邊
 安靜了
 魔杰座
 你不像她
 邊做邊愛
 擦肩而過
 我的答鈴
 懷念過去
 等一分鐘
 放手去愛
 冰河時代
 你的承諾
 自由飛翔
 原諒我一次
 吻的太逼真
 左眼皮跳跳
 做你的愛人
 一定要愛你
 飛向別人的床
 愛上別人的人
 感動天感動地
 心在跳情在燒
 玫瑰花的葬禮
 有沒有人告訴你
 即使知道要見面
 愛上你是一個錯
 最后一次的溫柔
 愛上你是我的錯
 怎么會狠心傷害我
 不是因為寂寞才想
 親愛的那不是愛情
 難道愛一個人有錯
 寂寞的時候說愛我
主站蜘蛛池模板: 冀州市| 胶州市| 武隆县| 永州市| 仪陇县| 怀仁县| 中方县| 开原市| 金门县| 大名县| 商城县| 赤水市| 陆良县| 龙川县| 依兰县| 凉城县| 绥阳县| 安乡县| 福贡县| 光山县| 嘉黎县| 贵南县| 台中县| 龙井市| 河源市| 水富县| 巴中市| 武胜县| 延吉市| 屏东市| 衡山县| 瑞安市| 灵武市| 宿松县| 巴马| 松滋市| 淮安市| 永安市| 都江堰市| 漳浦县| 东宁县|