亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        開發(fā)工具大比拚之Visual C++ VS Delphi

        2009-05-12 09:47:02宮成剛
        商情 2009年15期
        關(guān)鍵詞:程序員控件代碼

        宮成剛

        [摘要]本文將以一個(gè)程序員的角度,從技術(shù)水平、功能、性能、易用性、穩(wěn)定性、發(fā)展歷程和前景等方面,以isual c++ 6和delphi 5為代表,盡可能客觀地比較介紹isual c++和delphi這兩大主流開發(fā)工具的優(yōu)缺點(diǎn),其中將涉及到語言、應(yīng)用框架、控件、編譯和連接、集成界面、調(diào)試、com、數(shù)據(jù)庫開發(fā)等。本文還將對(duì)如何選擇使用這兩個(gè)開發(fā)工具提出一些建議。

        [關(guān)鍵詞]開發(fā)工具 語言 應(yīng)用框架 控件 編譯和連接 集成界面 調(diào)試 數(shù)據(jù)庫

        一、語言:存在即是合理

        首先聲明常被混淆的一點(diǎn):c和delphi本身不是語言,而是開發(fā)平臺(tái)。它們所用的語言分別是略作擴(kuò)展的c/c++和object pascal。有人認(rèn)為object pascal是“玩具語言”,c++才是“專業(yè)語言”,這是不對(duì)的。單從語言本身看,object pascal與c++屬同一重量級(jí)。它們都是完全支持面向?qū)ο蟮恼Z言,都扎根于“歷史悠久”的面向過程的語言。c++是由c發(fā)展而來的,object pascal由pascal進(jìn)化而來。它們都有很強(qiáng)的靈活性,都有自己的特長(zhǎng)和不足。比如說,object pascal不支持多重繼承、模板、操作符重載、內(nèi)聯(lián)函數(shù)定義等等,而這些都是c++支持的。但同樣地c++也不支持object pascal的虛構(gòu)造函數(shù)、過程嵌套、內(nèi)置集合類型、內(nèi)置字符串類型等等,在rtti方面object pascal也比c++做得好。但這些并不重要,因?yàn)榭梢酝ㄟ^其它方式達(dá)到同樣的目的,比如c++可以通過類擴(kuò)展支持集合、字符串,object pascal可以通過“interface”多重繼承,等等。關(guān)鍵是二者都可以很好地完成你手頭的任務(wù),這就夠了。

        二、編譯和連接:速度的較量

        不同的語言帶來的另一個(gè)不同是,編譯和連接的速度的不同,以及執(zhí)行速度的不同。delphi的編譯和連接速度,毫不夸張地說,比c快幾十倍。即使把c的incremental link選項(xiàng)打開,delphi的編譯和連接速度仍比c快好幾倍。并不是說微軟的編譯器不行,這是由c++的復(fù)雜性決定的。模板的處理、預(yù)處理和宏的展開都是很費(fèi)時(shí)的。前文不是提到object pascal沒有模板、預(yù)處理和宏嗎?這本來是缺點(diǎn),但帶來的一個(gè)好處就是編譯速度極快。至于編譯完的二進(jìn)制代碼,在打開相同的優(yōu)化選項(xiàng)的情況下,delphi和c執(zhí)行速度并沒有太大的差別。

        三、應(yīng)用框架:mfc有kfc流行嗎

        應(yīng)用程序框架(application frame),有時(shí)也稱為對(duì)象框架。isual c++采用的框架是mfc。mfc不僅僅是人們通常理解的一個(gè)類庫。經(jīng)過這些年的不斷補(bǔ)充和完善,mfc已經(jīng)十分成熟。但由于原型出現(xiàn)得比較早,mfc相比于cl落后了一個(gè)時(shí)代。盡管微軟對(duì)mfc的更新沒有停止,但就象inprise的owl框架的淡出一樣,mfc的淡出也是早晚的事。其實(shí)mfc是和owl同一個(gè)時(shí)代的產(chǎn)物。owl已經(jīng)不在了,mfc怎能不“居安思?!蹦?如果mfc青春永駐,微軟的開發(fā)人員也不會(huì)“私自”開發(fā)出基于atl的wtl呀。當(dāng)然,wtl的地位不能和mfc比,它并不是微軟官方支持的框架,封裝的功能也相當(dāng)有限。但至少也反襯出了mfc存在的不足。

        四、穩(wěn)定性與完善程度:c是老大哥

        c要比delphi穩(wěn)定和完善。c的發(fā)展歷史比delphi長(zhǎng),微軟的總體實(shí)力比inprise強(qiáng)。c的框架mfc經(jīng)歷了那么多年的發(fā)展和完善,功能非常全面,而且十分穩(wěn)定,bug很少。不要小看了這一點(diǎn),很多專業(yè)程序員就是為這個(gè)選擇c的。因?yàn)楸M管cl比mfc的抽象程度高,封裝較為高層,但由此帶來的開發(fā)效率的提高對(duì)高手來說畢竟是有限的。而如果你遇到一個(gè)怪問題,調(diào)試了半天,發(fā)現(xiàn)不是你的代碼有錯(cuò),而是cl的bug,你作何感想? delphi的ide太占資源,啟動(dòng)速度太慢,和某些顯卡驅(qū)動(dòng)程序沖突,cl中有bug,調(diào)試器不夠健壯,對(duì)不穩(wěn)定的第三方控件沒有防護(hù)措施……問題多多,在這方面delphi不如c。

        五、可移植性:立足現(xiàn)實(shí),放眼未來

        目前inprise的兼容性工作做得并不好。低版本的delphi不能使用高版本的cl組件,而高版本的delphi竟然不能使用低版本的cl組件。如果windows 98不能運(yùn)行95的程序,windows 95不能運(yùn)行3.x的程序,你還會(huì)用windows嗎?如果windows 95的程序必須經(jīng)過重新編譯才能在98下運(yùn)行,98會(huì)賣得那么好嗎?“同門兄弟”c++builder和delphi也不能互相使用對(duì)方的組件,甚至同一套cl庫的文件名也不一樣。希望inprise能先解決同門兄弟的兼容性問題。而微軟的c就沒有這類問題。mfc1.0的程序也可以毫無障礙地在c6.0下編譯通過。

        六、集成界面:宏觀與微觀

        就大處說,c的集成界面是不如delphi的。delphi僅僅一個(gè)object inspector就可以將c的一堆wizards比下去,何況它還有code explorer、todo list等。但從小處,又可以看出delphi的不成熟。比如“自動(dòng)完成”功能的智能化程度和提示詳細(xì)程度不如c,響應(yīng)速度也沒有c快。

        isual c++所帶的msdn是一部“開發(fā)者的百科全書”,信息龐大,查詢方便,這方面比delphi更加專業(yè)。delphi的opentools是完全面向第三方的開放系統(tǒng),開發(fā)者可以修改很多borland公司自身的功能,從ide的可擴(kuò)充性上說delphi更好。

        七、魚和熊掌:艱難的選擇

        選擇一個(gè)開發(fā)工具依賴于很多不同的因素,每個(gè)人都能因?yàn)槟撤N語言的某個(gè)缺陷而放棄學(xué)習(xí)或使用這種語言。任何程序員都希望自己喜歡的工具能達(dá)到理想的境界,通過上面不完善的比較,我想大家都有自己的看法。我認(rèn)為影響大家選擇開發(fā)語言的因素主要包括:

        1.哪門語言更容易入門

        學(xué)習(xí)一種語言需要投入大量的時(shí)間和精力。開發(fā)程序的開發(fā)成本是值得考慮的現(xiàn)實(shí)。一個(gè)熟練的delphi程序員和一個(gè)熟練的c程序員工作效率是一樣的。但是,成為熟練的程序員必須很快掌握一門語言的技巧。不幸的是,目前熟練的isual c++程序員是十里挑一。相對(duì)而言,delphi更適合初學(xué)者。

        2.哪門語言有更多可繼承的代碼

        語言代碼的可重用性是加快開發(fā)效率明顯方面,從早期的過程、函數(shù)到現(xiàn)在的組件技術(shù)都是朝這個(gè)目標(biāo)在奮斗。這兩種語言對(duì)代碼重用的理解是不一樣的,delphi主要通過cl控件來實(shí)現(xiàn)代碼重用,isual c++實(shí)現(xiàn)起來就比較復(fù)雜。

        3.語言自身的本性

        就技術(shù)(主要指應(yīng)用框架)來說,delphi目前領(lǐng)先于isual c++。但穩(wěn)定性和健壯性的不足又讓我們對(duì)inprise“想說愛你不容易”。而c盡管發(fā)展到今日已十分完善,但mfc框架已是明日黃花了。如果不使用mfc,目前又沒有合適的替代品。

        4.語言的前景和可擴(kuò)充性

        delphi是inprise的旗艦產(chǎn)品之一,前景應(yīng)當(dāng)還是比較樂觀的,而且inprise已經(jīng)在向linux進(jìn)軍了,而微軟還遲遲沒有動(dòng)作。

        微軟的isual c++的前景又怎樣呢?isual studio 7.0就要推出了。這一版本將加強(qiáng)網(wǎng)絡(luò)開發(fā)的特性??磥砦④涬m然被判解體,開發(fā)實(shí)力可是一點(diǎn)沒打折扣。

        根據(jù)你的需要和實(shí)際情況做選擇吧。實(shí)際上c和delphi也不是單單競(jìng)爭(zhēng)關(guān)系。它們?cè)谠S多領(lǐng)域并不重疊,甚至是互補(bǔ)的。到底怎樣取舍,要根據(jù)你的項(xiàng)目特性決定。如果你開發(fā)系統(tǒng)底層的東西,需要極好的兼容性和穩(wěn)定性,選c吧。如果你寫傳統(tǒng)的windows桌面應(yīng)用程序,c的mfc框架是“正統(tǒng)”的選擇;如果界面部分占這個(gè)應(yīng)用程序代碼比例較大的話,或者delphi中有相關(guān)功能的控件的話,delphi是事半功倍的選擇。如果你為企業(yè)開發(fā)數(shù)據(jù)庫、信息管理系統(tǒng)等高層應(yīng)用,而且有比較緊的期限限制,選delphi比較好。傳統(tǒng)的觀點(diǎn)是:delphi適合編寫internet/intranet、表格制圖、數(shù)據(jù)庫操作、高級(jí)用戶界面等等。isual c++適合編寫設(shè)備驅(qū)動(dòng)、com服務(wù)程序、科學(xué)計(jì)算、控制臺(tái)程序、wince的應(yīng)用和一些小的工具等等。

        猜你喜歡
        程序員控件代碼
        為了讓媽媽看懂地圖,一位“野生程序員”做了個(gè)小程序
        怎樣成為一名優(yōu)秀程序員
        幼兒100(2020年29期)2020-10-21 06:17:58
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        程序員之子
        意林(2017年24期)2018-01-02 22:49:14
        加班
        三月三(2016年6期)2016-06-21 10:25:33
        就這樣玩會(huì)VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        日韩AV有码无码一区二区三区| 色一情一乱一伦麻豆| 精品乱码久久久久久久| 国产成人午夜精品免费视频| 亚欧免费无码AⅤ在线观看| 日本熟妇中出高潮视频| 中文字幕亚洲综合久久菠萝蜜| 又黄又爽又色的视频| 欧美日本国产亚洲网站免费一区二区| 亚洲一区二区三区四区精品| 亚洲日韩小电影在线观看| 亚洲av无码一区二区三区四区| 国产欧美日韩不卡一区二区三区 | 女优av一区二区三区| 精品无码日韩一区二区三区不卡| 成人无码h真人在线网站| 亚洲一区二区三区一区| 日本妇人成熟免费2020| 精品少妇人妻av一区二区| 日韩精品成人无码AV片| av资源在线免费观看| 日日摸天天碰中文字幕你懂的| 一本大道东京热无码| 久久无码中文字幕东京热| 狠狠爱婷婷网五月天久久| wwww亚洲熟妇久久久久| 久久精品无码一区二区乱片子| 成人激情视频一区二区三区 | 青青草成人免费播放视频| 豆国产96在线 | 亚洲| 国产色综合天天综合网| 国产在线观看免费一级| 亚洲国产精品区在线观看| 免费无遮挡禁18污污网站| 精品无码AV无码免费专区| av在线资源一区二区| 亚洲理论电影在线观看| 污污污污污污污网站污| 中国少妇和黑人做爰视频| 中国国产不卡视频在线观看| 国产精品久久久久av福利动漫|