欧美自拍小视频_国产片在线免费观看_中文字幕啪啪_成人av高清在线_欧美一区二区视频免费观看_亚洲国产激情


曙海教育集團(tuán)論壇開(kāi)發(fā)語(yǔ)言培訓(xùn)專區(qū)C++語(yǔ)言開(kāi)發(fā) → 目前主流開(kāi)發(fā)技術(shù)的分析和總結(jié)


  共有7998人關(guān)注過(guò)本帖樹(shù)形打印

主題:目前主流開(kāi)發(fā)技術(shù)的分析和總結(jié)

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


加好友 發(fā)短信
等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
目前主流開(kāi)發(fā)技術(shù)的分析和總結(jié)  發(fā)帖心情 Post By:2010-12-10 15:09:35

主流的程序設(shè)計(jì)語(yǔ)言:C++、Delphi(ObjectPascal)、Java、C#

  桌面應(yīng)用程序框架:MFC、VCL、QT、JavaAWTSWING、.Net

  企業(yè)應(yīng)用程序框架:WindowsDNA(ASP、COM、COM+)、J2EE、.NetFramework

  開(kāi)發(fā)工具:VisualBasic、Delphi、VisualC++、C++Builder、VisualC#

  *程序設(shè)計(jì)語(yǔ)言:C++Delphi(本來(lái)應(yīng)該是ObjectPascal,但為了簡(jiǎn)單,我就語(yǔ)言和工具混為一談吧)JavaC#(雖然他剛剛推出,但因?yàn)槲④洖橹畠A注了大量心血,一定會(huì)成為一種重要的開(kāi)發(fā)語(yǔ)言)

  *桌面應(yīng)用程序框架:MFCVCL

  *企業(yè)應(yīng)用程序框架:WindowsDNAJ2EE.Net

  *COM技術(shù):我單獨(dú)提出這項(xiàng)技術(shù),是因?yàn)樗鼰o(wú)法簡(jiǎn)單的被視為語(yǔ)言、桌面應(yīng)用程序框架或企業(yè)應(yīng)用程序框架,它與這些都有關(guān)系。

  2.1 程序設(shè)計(jì)語(yǔ)言

  2.1.1 C++語(yǔ)言的演進(jìn)

  最初要從二進(jìn)制代碼和匯編說(shuō)起,但那太遙遠(yuǎn)了。我們就從面向過(guò)程的語(yǔ)言說(shuō)起吧(包括BasicCFortranPascal)。這種面向過(guò)程的高級(jí)語(yǔ)言終于把計(jì)算機(jī)帶入了尋常的應(yīng)用領(lǐng)域。其中的C語(yǔ)言因?yàn)樗暮?jiǎn)單和靈活造就了Unix和Windows這樣的偉大的軟件。

  面向?qū)ο蟮恼Z(yǔ)言是計(jì)算機(jī)語(yǔ)言的一個(gè)合乎邏輯的進(jìn)化,因?yàn)樵跊](méi)有過(guò)多的影響效率、簡(jiǎn)單性的前提下提供了一種更好的組織數(shù)據(jù)的方法,可使程序更容易理解,更容易管理——這一點(diǎn)可能會(huì)引出不同意見(jiàn),但事實(shí)勝于雄辯,C++終于讓C語(yǔ)言的領(lǐng)地越來(lái)越小,當(dāng)今還活著的計(jì)算機(jī)語(yǔ)言或多或少的都具備面向?qū)ο蟮奶卣鳎赃@一點(diǎn)并不會(huì)引起太多困惑。C++的成功很大程度要?dú)w因于C,C++成為它今天的樣子是合乎邏輯的產(chǎn)物。因?yàn)樵诿嫦蜻^(guò)程的時(shí)代,C幾乎已經(jīng)統(tǒng)一天下了。今天著名的語(yǔ)言象JavaC#都從C借鑒了很多東西,C#本來(lái)的意思就是C++++。其實(shí)C++曾經(jīng)很有理由統(tǒng)一面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的天下來(lái)著,但可惜的是,C++太復(fù)雜了。即使是一個(gè)熟練的程序員,要你很清楚的解釋一些問(wèn)題你也會(huì)很頭痛。舉幾個(gè)還不是那么復(fù)雜的例子來(lái)說(shuō):

  對(duì)=的重載成員轉(zhuǎn)換函數(shù)拷貝構(gòu)造函數(shù)轉(zhuǎn)化構(gòu)造函數(shù)之間有什么區(qū)別和聯(lián)系呢?

  定義一個(gè)類成員函數(shù)private:virtualvoidMemFun()=0;是什么意義呢?

  int(*(*x(int))[4])(double);是什么意思?

  還有其他的特征,比如說(shuō)可以用來(lái)制造一種新語(yǔ)言的typedef和宏(雖然宏不是C++的一部分,但它與C++的關(guān)系實(shí)在太密切了),讓你一不小心就摔跤的內(nèi)存問(wèn)題(只要new和delete就可以了嗎?有沒(méi)有考慮一個(gè)對(duì)象存放在容器中的情況?)……諸如此類,C++是如此的復(fù)雜以至于要學(xué)會(huì)它就需要很長(zhǎng)的時(shí)間,而且你會(huì)發(fā)現(xiàn)即使你用C++已經(jīng)好幾年了,你還會(huì)發(fā)現(xiàn)經(jīng)常有新東西可學(xué)。你想解決一個(gè)應(yīng)用領(lǐng)域的問(wèn)題——比如說(shuō)從數(shù)據(jù)庫(kù)里面查詢數(shù)據(jù)、更改數(shù)據(jù)那樣的問(wèn)題,可是你卻需要首先為C++頭痛一陣子才可以,是的,你精通C++,你可以很容易的回答我的問(wèn)題,可是你有沒(méi)有想過(guò)你付出了多大的代價(jià)呢?我不是想過(guò)分的譴責(zé)C++,我本人喜歡C++,我甚至建議一個(gè)認(rèn)真的開(kāi)發(fā)普通的應(yīng)用系統(tǒng)的程序員也去學(xué)習(xí)一下C++,C++中的一些特性,比如說(shuō)指針運(yùn)算模板STL幾乎讓人愛(ài)不釋手,宏可以用幾個(gè)字符代替很多代碼,對(duì)系統(tǒng)級(jí)的程序員來(lái)說(shuō),C++的地位是不可替代的,Java的虛擬機(jī)就是C++寫(xiě)的。C++還將繼續(xù)存在而且有旺盛的生命力。

  2.1.2 Java和C#

  Java和C#相對(duì)于C++的不同最大的有兩點(diǎn):第一點(diǎn)是他們運(yùn)行在一個(gè)虛擬環(huán)境之中,第二點(diǎn)是語(yǔ)法簡(jiǎn)單。對(duì)于開(kāi)發(fā)人員而言,在語(yǔ)法和語(yǔ)言機(jī)制的角度可以把Java和C#視為同一種語(yǔ)言。C#更多的是個(gè)政治的產(chǎn)物而不是技術(shù)產(chǎn)物。如果不是Sun為難微軟的話,我想微軟不會(huì)費(fèi)盡心力推出一個(gè)和Java差不多的C++++,記得Visual J++嗎,記得WFC嗎?看看那些東西就會(huì)知道微軟為Java曾經(jīng)傾注了多少心血。而且從更廣泛的角度來(lái)說(shuō),兩者也是非常相似的——C#和Java面對(duì)的是同樣的問(wèn)題,面向應(yīng)用領(lǐng)域的問(wèn)題:事務(wù)處理、遠(yuǎn)程訪問(wèn)、Webservice、Web頁(yè)面發(fā)布、圖形界面。那么在這一段中,我暫且用Java這個(gè)名字指代Java和C#兩種語(yǔ)言——盡管兩者在細(xì)節(jié)上確實(shí)有區(qū)別。Java是適合解決應(yīng)用領(lǐng)域的問(wèn)題的語(yǔ)言。最大的原因Java對(duì)于使用者來(lái)說(shuō)非常簡(jiǎn)單。想想你學(xué)會(huì)并且能夠使用Java需要多長(zhǎng)時(shí)間,學(xué)會(huì)并且能夠使用C++要多長(zhǎng)時(shí)間。由于Java很大程度上屏蔽了內(nèi)存管理問(wèn)題,而且沒(méi)有那么多為了微小的性能提升定義的特殊的內(nèi)容(比如說(shuō),在Java里面沒(méi)有virtual這個(gè)關(guān)鍵字,Java也不允許你直接在棧上創(chuàng)建對(duì)象,Java明確的區(qū)分bool和整型變量),他讓你盡量一致的方式操作所有的東西,除了基本數(shù)據(jù)類型,所有的東西都是對(duì)象,你必須通過(guò)引用來(lái)操 作他們;除了這些之外,Java還提供了豐富的類庫(kù)幫助你解決應(yīng)用問(wèn)題——因?yàn)樗敲嫦驊?yīng)用的語(yǔ)言,它為你提供了多線程標(biāo)準(zhǔn)、JDBC標(biāo)準(zhǔn)、GUI標(biāo)準(zhǔn),而這些標(biāo)準(zhǔn)在C++中是不存在的,因?yàn)镃++并不是直接面向解決應(yīng)用問(wèn)題的用戶,有人試圖在C++中加入這些內(nèi)容,但并不成功,因?yàn)镃++本身太復(fù)雜了,用這種復(fù)雜的語(yǔ)言來(lái)實(shí)現(xiàn)這種復(fù)雜的應(yīng)用程序框架本身就是一件艱難的事情,稍后我們會(huì)提到這種嘗試——COM技術(shù)。漸漸的,人們不會(huì)再用C++開(kāi)發(fā)應(yīng)用領(lǐng)域的軟件,象MFCQTCOM這一類的東西最終也將退出歷史舞臺(tái)。

  2.1.3 Delphi

  Delphi是從用C++開(kāi)發(fā)應(yīng)用系統(tǒng)轉(zhuǎn)向用Java開(kāi)發(fā)應(yīng)用系統(tǒng)的一個(gè)中間產(chǎn)物。它比C++簡(jiǎn)單,簡(jiǎn)單的幾乎象Java一樣,因?yàn)樗暮?jiǎn)單,定義和使用豐富的類庫(kù)成為可能,而且Delphi也這么做了,結(jié)果就是VCL和其他的組件庫(kù)。而另一方面,它又比運(yùn)行于虛擬環(huán)境的Java效率要高一些,這樣在簡(jiǎn)單性和效率的平衡之中,Delphi找到了自己的生存空間。而且預(yù)計(jì)在未來(lái)的一段時(shí)間之內(nèi),這個(gè)生存空間將仍然是存在的。可以明顯的看出,微軟放棄了這個(gè)領(lǐng)域,他專注于兩方面:系統(tǒng)語(yǔ)言C++和未來(lái)的Java(其實(shí)是.Net)。也許這對(duì)于Borland來(lái)說(shuō),是一件很幸運(yùn)的事情。如果我能夠給Borland提一些建議的話,那就是不要把Delphi弄得越來(lái)越復(fù)雜,如果那樣,就是把自己的用戶趕到了C++或Java的領(lǐng)地。在虛擬機(jī)沒(méi)有最終占領(lǐng)所有的應(yīng)用程序開(kāi)發(fā)領(lǐng)域之前,Delphi和Delphi的用戶仍然會(huì)生存得很好。

  2.2桌面應(yīng)用程序框架

  目前真正成功的桌面應(yīng)用程序框架只有兩個(gè),一個(gè)是MFC,一個(gè)是VCL,還有一些其他的,但事實(shí)上并未進(jìn)入應(yīng)用領(lǐng)域。遺憾的是我對(duì)兩個(gè)桌面應(yīng)用程序框架都不精通。但這不妨礙我對(duì)他做出正確的評(píng)價(jià)。

  2.2.1MFC

  MFC(還有曾經(jīng)的OWL)是SDK編程的正常演化的結(jié)果,就象是C++是C的演化結(jié)果一樣。MFC本身是一件了不起但不那么成功的作品,而且它過(guò)時(shí)了。這就是我的結(jié)論。MFC凝聚了很多天才的智慧——當(dāng)然,OWL和VCL也一樣,侯捷的《深入淺出MFC》把這些智慧擺在了我們的面前。但是這件東西用起來(lái)估計(jì)不會(huì)有人覺(jué)得很舒服,如果你一直在用Java、VB或者Delphi,再回過(guò)頭來(lái)用MFC,不舒服的感覺(jué)會(huì)更加強(qiáng)烈。我不能夠解釋MFC為什么沒(méi)有能夠最終發(fā)展成和VCL一樣簡(jiǎn)單好用的桌面程序框架,也許是微軟沒(méi)精力或者沒(méi)動(dòng)力,總之MFC就是那個(gè)樣子了,而且也不會(huì)再有發(fā)展,它已經(jīng)被拋棄了。我有時(shí)候想,也許基于C++這種復(fù)雜的語(yǔ)言開(kāi)發(fā)MFC這樣的東西本身就是錯(cuò)誤的——可以開(kāi)發(fā)這樣的一個(gè)框架,但不應(yīng)當(dāng)要求使用它的人熟悉了整個(gè)框架之后才能夠使用這個(gè)系統(tǒng),但很顯然,如果你不了解MFC的內(nèi)部機(jī)制,是不太可能把它用好的,我不能解釋清楚為什么會(huì)出現(xiàn)這種現(xiàn)象。

  2.2.2VCL

  相比之下VCL要成功的得多。我相信很多使用VCL的人可能沒(méi)有像MFC的用戶研究MFC那樣費(fèi)勁的研究過(guò)VCL的內(nèi)部機(jī)制。但這不妨礙他們開(kāi)發(fā)出好用好看的應(yīng)用程序,這就足夠了,還有什么好說(shuō)的呢?VCL給你提供了一種簡(jiǎn)單一致的機(jī)制,讓你可以寫(xiě)出復(fù)雜的應(yīng)用程序。在李維的Borland故事那篇文章中曾經(jīng)說(shuō)過(guò),在Borland C++ 3.1推出之后Borland就有人提出開(kāi)發(fā)類似C++ Builder一類的軟件,后來(lái)竟未成行。是啊,如果C++ Builder是在那個(gè)時(shí)候出現(xiàn)的,今天的軟件開(kāi)發(fā)領(lǐng)域?qū)?huì)是怎么樣的世界呢?真的不能想象。也許再過(guò)一段時(shí)間,這些都將不再重要。因?yàn)樾律恼Z(yǔ)言如Java和C#都提供了類似于VCL的桌面應(yīng)用程序框架。那個(gè)時(shí)候,加上Java和C#本身的簡(jiǎn)單性,如果他們的速度有足夠塊,連Delphi這種語(yǔ)言也要消失了,還有什么好爭(zhēng)論的呢?只是對(duì)于今天的桌面程序開(kāi)發(fā)人員來(lái)說(shuō),VCL確實(shí)是最好的選擇

支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

目前主流開(kāi)發(fā)技術(shù)的分析和總結(jié)








簽名
主站蜘蛛池模板: 久久久精品免费热线观看 | 亚洲aav | 美女一级毛片毛片在线播放 | 嫩草影院永久在线 | 久久天堂网 | 福利视频一区二区微拍堂 | 99久久久无码国产aaa精品 | 永久视频网站 | 欧美成人毛片免费视频 | 亚洲成av人片一区二区三区 | 亚洲 小说区 图片区 都市 | 99久久国产综合精品女不卡 | 亚洲va无码va在线va天堂 | 又爽又黄又无遮挡的激情视频 | 亚洲国产成人最新精品资源 | 日韩欧美一区二区三区免费观看 | 精品人妻少妇一区二区 | 欧美成人精品久久精品 | 久久久免费视频播放 | 久草老司机 | 久久久久久a亚洲欧洲aⅴ | 伊人青青视频 | 一区二区三区免费在线观看 | 亚洲中文字幕无码专区 | 国产乱码精品一区二区三区卡 | 色窝窝亚洲av网在线观看 | 好屌爽在线视频 | 一 级 黄 色蝶 片 | 国产真实乱对白精彩久久老熟妇女 | 欧美色香蕉| 亚洲午夜久久久久久91 | 欧洲乱码伦视频免费 | 一二三四在线播放视频国语观看 | 亚洲欧美日韩高清中文在线 | 亚洲av中文无码乱人伦在线r▽ | 日本精品一区二区三区在线观看 | 精品人妻午夜一区二区三区四区 | 久久综合九色综合97伊人麻豆 | 亚洲av无码成h在线观看 | 黄色毛片免费在线观看 | 不卡一区二区在线观看 |