時(shí)間:2010-04-21 10:24:07來(lái)源:yangliu
前言:自計(jì)算機(jī)問(wèn)世以來(lái)其應(yīng)用領(lǐng)域不斷擴(kuò)大,相關(guān)產(chǎn)業(yè)迅速發(fā)展,軟件市場(chǎng)的蓬勃發(fā)展各種編程語(yǔ)言也孕育而生,到目前為止,編程語(yǔ)言已發(fā)展到第四階段,開(kāi)發(fā)工具更是層出不窮?! 肮ビ破涫卤叵壤淦鳌?,這是眾所周知的道理。一件好的“利器”,就使讓我們的工作事半功倍。現(xiàn)在主流的開(kāi)發(fā)語(yǔ)言和開(kāi)發(fā)工具包羅萬(wàn)象,一時(shí)間很難把握,那么就讓我們從當(dāng)前社會(huì)的主要編程語(yǔ)言,編程工具出發(fā),回顧一下發(fā)展過(guò)程,歷史環(huán)境及他們當(dāng)今所主要涉及的領(lǐng)域等幾個(gè)方面,從中展望未來(lái)的發(fā)展趨勢(shì)。
編程語(yǔ)言及開(kāi)發(fā)工具的發(fā)展史
第一代編程語(yǔ)言:機(jī)器語(yǔ)言。一種很古老的語(yǔ)言。對(duì)象很簡(jiǎn)單就是“0”和“1”。相對(duì)應(yīng)的編程工具是紙帶和打孔器。因?yàn)橛?jì)算機(jī)多為8位,16位,32位和64位,每次處理一個(gè)字節(jié)。原理也很簡(jiǎn)單,1的位就打孔,0的位保留。利用光學(xué)原理,遮光為0,透光為1。根據(jù)定義位置取得指令和操作數(shù)。這種語(yǔ)言比較古老,這里不做表述。
第二代編程語(yǔ)言:匯編語(yǔ)言。和機(jī)器語(yǔ)言一樣,也是面向機(jī)器的語(yǔ)言,利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的語(yǔ)言。優(yōu)點(diǎn)是可以直接操作計(jì)算機(jī)硬件,速度快。缺點(diǎn)則是太難理解,所以除非本人所寫(xiě),且不好維護(hù)。不過(guò)這里寫(xiě)出的程序是半成品,需要手動(dòng)匯編成目標(biāo)文件再連接成中間文件,最后才能生成可執(zhí)行文件。
第三代編程語(yǔ)言:面向過(guò)程的編程語(yǔ)言。剛剛問(wèn)世時(shí)叫高級(jí)語(yǔ)言,意思為比更接近人的語(yǔ)言。Basic,F(xiàn)ortran ,Cobol ,C,Pascal 等等真正叫做高級(jí)語(yǔ)言的原因是它們已有屬于自己的編譯系統(tǒng)、開(kāi)發(fā)包等,要執(zhí)行必須通過(guò)編譯器才行。相比于機(jī)器語(yǔ)言和匯編語(yǔ)言,這次是以人類(lèi)邏輯思維角度出發(fā)設(shè)計(jì)的計(jì)算機(jī)語(yǔ)言,抽象程度大大提高,模塊化思想的引入使得程序更加清晰??伤娜秉c(diǎn)是非常難講述,因?yàn)樗褪腔诿嫦蜻^(guò)程的思想創(chuàng)建,所以自然不具備面向?qū)ο蟮奶攸c(diǎn)。
第四代編程語(yǔ)言:面向?qū)ο蟮木幊陶Z(yǔ)言。這就是當(dāng)前主流的開(kāi)發(fā)語(yǔ)言。如C++、Java等。它的幾個(gè)特點(diǎn)為:(1)封裝性,是基于安全考慮。(2)繼承性,是基于擴(kuò)展處理。(3)多態(tài)性,更多考慮到靈活性和重用性。第四代語(yǔ)言的開(kāi)發(fā)工具種類(lèi)豐富。MicroSoft公司的VS系列有多種VC—C++,VB—Basic,VJ—Java,VF—FoxBase,還有基于DotNet平臺(tái)的C#(最新VS2010還推出F#)等等。如日中天的Java開(kāi)發(fā)工具也很多,下文將根據(jù)軟件開(kāi)發(fā)未來(lái)的發(fā)展趨勢(shì)談到相關(guān)的一部分。
以上是四代的編程語(yǔ)言簡(jiǎn)述,對(duì)于第五代編程語(yǔ)言,有很多人提出想法,不過(guò)到目前為止還沒(méi)有任何一個(gè)方案能脫穎而出,笑傲群雄。
主流編程語(yǔ)言及工具主要涉及的領(lǐng)域
到今天,機(jī)器語(yǔ)言早已絕跡于江湖,成為古老的傳說(shuō)。匯編語(yǔ)言和C語(yǔ)言基本統(tǒng)治操作系統(tǒng)內(nèi)核、工業(yè)控制、實(shí)時(shí)系統(tǒng)等領(lǐng)域。近些年在世面上較火的Linux系統(tǒng)下主要用的就是C語(yǔ)言,C++不僅支持面向?qū)ο蟮木幊?,也支持面向過(guò)程的結(jié)構(gòu)程序設(shè)計(jì)。
目前在通信、網(wǎng)絡(luò)、圖形、圖像、多媒體平臺(tái)等領(lǐng)域優(yōu)勢(shì)比較明顯。在這些領(lǐng)域通常都有很高的性能要求,C++有較高執(zhí)行效率(匯編和C的執(zhí)行效率更高但實(shí)在難以實(shí)現(xiàn)),再加上開(kāi)發(fā)商在開(kāi)發(fā)包方面的重點(diǎn)“照顧”,而使其它語(yǔ)言在算法精度較高的編程方面不能望其項(xiàng)背。
曾經(jīng)有句非常經(jīng)典的老話(huà):“真正的程序員用VC,聰明的程序員用Delphi?!贝致砸豢春孟襁@句話(huà)有問(wèn)題,VC是編程工具,而Delphi是編程語(yǔ)言,其實(shí)不然。在Delphi1到Delphi7是用Object Pascal語(yǔ)言,到Delphi8以后才改叫Delphi語(yǔ)言,這與平時(shí)聽(tīng)到人們講“我會(huì)VC”完全是兩回事。VC是編程工具,斧頭是伐木工具,如果你因?yàn)闀?huì)伐木就說(shuō),“我會(huì)斧頭”就貽笑大方了,正常的說(shuō)法應(yīng)該是“我會(huì)用VC”。delphi當(dāng)初雖是Borland公司研發(fā),但在Windows(上的大多數(shù))編程方面,比VS(包括VC)更容易上手,與WinAPI連接更緊密,(使用者)更容易實(shí)現(xiàn)預(yù)定的目標(biāo),而且更容易做更漂亮的界面。
現(xiàn)在大名鼎鼎的QQ最初就是delphi開(kāi)發(fā),2001年后才逐漸改為VC開(kāi)發(fā),常用的迅雷也有很多是delphi的版本。簡(jiǎn)而言之,05年以前凡是VC做到的,delphi同樣能做得到(甚至更好),隨著B(niǎo)orland公司希望把更多精力投入在新看好的應(yīng)用程序生命周期管理(ALM)業(yè)務(wù)上,
Delphi(目前的編程工具屬于IDE業(yè)務(wù))的傳奇之路也走到盡頭。95年以后互聯(lián)網(wǎng)的大躍進(jìn),B/S結(jié)構(gòu)越來(lái)越受到人們的推寵。APS,PHP,Java……一時(shí)間各路英豪各顯伸手。
未來(lái)編程語(yǔ)言和工具發(fā)展趨勢(shì)
未來(lái)編程語(yǔ)言和工具的發(fā)展趨勢(shì)大至取決于三個(gè)方面,第一,未來(lái)計(jì)算機(jī)網(wǎng)絡(luò)工作框架及工作模式;第二,當(dāng)前開(kāi)發(fā)工具對(duì)開(kāi)發(fā)語(yǔ)言的支持程度與硬件發(fā)展;第三,各種語(yǔ)言的本身的生命力和活力。
20年后的計(jì)算機(jī)網(wǎng)絡(luò),我們都知道將會(huì)進(jìn)入到“云計(jì)算”時(shí)代?!霸朴?jì)算”是大量的網(wǎng)絡(luò)計(jì)算機(jī)為我們提供計(jì)算機(jī)所需的各種服務(wù),而非本地計(jì)算機(jī)。只需一個(gè)瀏覽器,甚至不需要操作系統(tǒng),一切工作都通過(guò)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。現(xiàn)在“云計(jì)算”已經(jīng)開(kāi)始試探性進(jìn)入我們的生活。
做為“云計(jì)算”的先鋒,可以用到一些在線(xiàn)的工具系統(tǒng),比如,在線(xiàn)辦公、在線(xiàn)電視、在線(xiàn)翻譯……,其中很多內(nèi)容都基于“云計(jì)算”模式,盡管還不完善,但也初具規(guī)模。不完善是因?yàn)樵诰€(xiàn)工作的服務(wù)器處理能力不夠,網(wǎng)絡(luò)帶寬不夠或算法不佳導(dǎo)致的流量分配不合理等,在這里扮演最主要角色的還是服務(wù)器的處理能力?,F(xiàn)在的高端和大型服務(wù)器幾乎都被IBM和SUN公司“壟斷”。SUN是Java之父,對(duì)Java呵護(hù)倍至,而IBM更是用一半的力量把其相所有關(guān)代碼用Java重新編寫(xiě),并且用另一半的力量在推廣Java。不要懷疑Java的開(kāi)發(fā)前景,Java在未來(lái)必定是與大型服務(wù)器貼合的最緊密、兼容性、有效性最好的語(yǔ)言,Eclipse也將成最火的編程工具。(其實(shí)現(xiàn)在Java已經(jīng)在各種編程語(yǔ)言使用量中排名第一,最近10年中更是9年排名榜首,僅2005年一次失手屈居第二)。
Java統(tǒng)治互聯(lián)網(wǎng)是必然趨勢(shì),但Python在未來(lái)(桌面程序)扮演重要角色也絕對(duì)不能說(shuō)成是意外。Python具有非常簡(jiǎn)捷而清晰的語(yǔ)法特點(diǎn),適合完成各種高層任務(wù),幾乎可以在所有的操作系統(tǒng)中運(yùn)行。更重要的一點(diǎn)是,Python本身的設(shè)計(jì)理念 “There should be one-- and preferably only one --obvious way to do it”,譯成漢語(yǔ)就是對(duì)于一個(gè)特定的問(wèn)題,只要有一種明顯、最好(完美)的方法來(lái)解決就可以。這個(gè)設(shè)計(jì)理念本身很符合未來(lái)開(kāi)發(fā)團(tuán)隊(duì)的胃口。如果(不用Python來(lái)編寫(xiě))一個(gè)軟件工程只有概設(shè),沒(méi)有詳設(shè),那最后由工程師寫(xiě)出來(lái)的程序很可能是五花八門(mén)個(gè)性化實(shí)足,就算編程人員有很好的開(kāi)發(fā)素養(yǎng),編碼風(fēng)格統(tǒng)一,也不能保證使用的方法相同,這樣程序升級(jí)和維護(hù)就很受人員限制且效率低下。
但如果你使用Python就完全不一樣,Python是一種代表簡(jiǎn)單主義思想的語(yǔ)言。閱讀一個(gè)良好的Python程序就感覺(jué)像是在讀英語(yǔ)一樣,盡管這個(gè)英語(yǔ)的要求非常嚴(yán)格!Python的這種偽代碼本質(zhì)是它最大的優(yōu)點(diǎn)之一,它使你能夠?qū)W⒂诮鉀Q問(wèn)題而不是去搞明白語(yǔ)言本身。Python號(hào)稱(chēng)“膠水語(yǔ)言”他能夠很輕松的把用其他語(yǔ)言制作的各種模塊(尤其是C/C++)輕松地聯(lián)結(jié)在一起。常見(jiàn)的一種應(yīng)用情形是,使用python快速生成程序的原型(有時(shí)甚至是程序的最終界面),然后對(duì)其中有特別要求的部分,用更合適的語(yǔ)言改寫(xiě),比如3D游戲中的圖形渲染模塊速度要求非常高,就可以用C++重寫(xiě)。Python是最早的(基于互聯(lián)網(wǎng)的)在線(xiàn)開(kāi)發(fā)語(yǔ)言,Google在推出在線(xiàn)office之后,就把在線(xiàn)Python推給網(wǎng)友,在Google的背景支持下Python肯定會(huì)很有前景。
一種編語(yǔ)言能不能廣泛的推廣,很大一部分原因取決于它的開(kāi)發(fā)工具好不好用;一種語(yǔ)言開(kāi)發(fā)的軟件能不能大量使用,則取決于它的開(kāi)發(fā)包支持的夠不夠好。
C++曾經(jīng)的狀元,在92年VC1.0問(wèn)世開(kāi)創(chuàng)可視化編程后,98年VC6.0達(dá)到巔峰。除了MicroSoft在02年發(fā)布基于WinXP的SDK以后,就基本沒(méi)有大的動(dòng)作。VC7,VC8,VC9都只是在編程界面上下的功夫,開(kāi)發(fā)包也沒(méi)有太多增加。2006年底Vista上市,可支持相關(guān)的開(kāi)發(fā)包直到08年VS2008的SP1補(bǔ)丁包中才發(fā)布。最近版的VS2010測(cè)試版在09年Win7閃亮登場(chǎng)后,終于千呼萬(wàn)喚始出來(lái)。這次對(duì)VC10在開(kāi)發(fā)工具上確實(shí)有不少改進(jìn),對(duì)C++語(yǔ)法也增加不少支持。VC10增加生成調(diào)用樹(shù)的功能,可以把有層次的調(diào)用關(guān)系樹(shù)型表示出來(lái),使程序人員對(duì)邏輯結(jié)構(gòu)更加清晰。VC10新加一機(jī)多配顯示器的功能,并配合程序內(nèi)部即用即生成的功能,在新增的對(duì)函數(shù)的模糊查找功能,據(jù)說(shuō)還增強(qiáng)智能感知功能,可以高亮引用。
C++的優(yōu)勢(shì)在于效率,歸根到底還是因?yàn)樗蔷幾g型語(yǔ)言,產(chǎn)生的代碼將有很多工作在寄存器中執(zhí)行。而Java的是解釋型語(yǔ)言,大多代碼執(zhí)行都要入棧,因?yàn)榧拇嫫魇窃贑PU中,它的訪(fǎng)問(wèn)速度比內(nèi)存訪(fǎng)問(wèn)速度快好幾個(gè)數(shù)量級(jí)。計(jì)算(PC)機(jī)的芯片大多都是register computer型(如Intel, AMD),所以Java目前的執(zhí)行速度沒(méi)辦法與C++相比。
之所以現(xiàn)在的嵌入式領(lǐng)域Java比C++流行,就是因?yàn)榇蠖鄶?shù)嵌入式芯片都是stack computer型。那你會(huì)問(wèn),為什么不都采用register computer型的芯片呢?原因不言自明,為了跨平臺(tái)(跨CPU),現(xiàn)在我們用是雙核芯片,但在本機(jī)線(xiàn)程都不能跨CPU,何談“云計(jì)算”(云計(jì)算本質(zhì)就是分布式計(jì)算)。既然高端大型服務(wù)器都被IBM和SUN“壟斷”。那CPU的發(fā)展又何去何從呢?當(dāng)C++不再擁有速率優(yōu)勢(shì)的時(shí)候,是不是有人會(huì)說(shuō)“廉頗老矣”呢。
近年來(lái)C++的使用量大大下降,要不是與C語(yǔ)言天然的裙帶關(guān)系,要不是開(kāi)源的程序在支撐門(mén)面,恐怕光靠VC,C++早就江河日下。評(píng)論一個(gè)事物有沒(méi)有生命力,就要看它當(dāng)前的發(fā)展程度和未來(lái)的發(fā)展趨勢(shì)。Java是由C++中的一流高手設(shè)計(jì)出來(lái)的語(yǔ)言,天然性的摒棄一些C++中不妥不安全不穩(wěn)定的機(jī)制,反射機(jī)制又使Java如虎添翼。Java的開(kāi)源框架資料隨處可見(jiàn),WebLogic,TomCat也都開(kāi)源可尋,可C++的框架卻很少。ACE雖然出名但能拿到源碼嗎?只能配置。經(jīng)常會(huì)有人問(wèn)可不可以寫(xiě)個(gè)C++版的Hibernate給C++程序員來(lái)用,連數(shù)據(jù)庫(kù)也不能跨平臺(tái)。每次提到Hibernate,我不僅聯(lián)想到風(fēng)馬牛不相及的詞匯:哈勃定律。哈勃定律是天文學(xué)上的定律,是指所有的星系之間有互相遠(yuǎn)離的趨勢(shì),而且遠(yuǎn)離的速度越來(lái)越大,以此來(lái)證明宇宙不斷膨脹。Java和C++是不是也像軟件行業(yè)中的兩顆行星呢?
活力對(duì)于任何開(kāi)發(fā)語(yǔ)言來(lái)都是永恒的話(huà)題,有沒(méi)有活力就要看是否與世界上最熱門(mén)的技術(shù)的緊密聯(lián)系,以及有多少人在關(guān)心它。Java已經(jīng)在3G、數(shù)字電視等多個(gè)領(lǐng)域都有所建樹(shù)。Java擁有世界上最多的軟件工程師,看看大街小巷各種軟件培訓(xùn)的傳單,就能看出來(lái)人們對(duì)這門(mén)開(kāi)發(fā)語(yǔ)言有多么關(guān)心。
綜上所述,在未來(lái)的20年中匯編和C仍然會(huì)在操作系統(tǒng)內(nèi)核、工業(yè)控制、實(shí)時(shí)系統(tǒng)等領(lǐng)域獨(dú)樹(shù)一職,Java在互聯(lián)網(wǎng)上稱(chēng)王,Python會(huì)成為團(tuán)隊(duì)開(kāi)發(fā)新的尊者,C++則在目前涉及領(lǐng)域繼續(xù)發(fā)揮余熱并與Python成為好伙伴。
篇后語(yǔ):
Java本身是以C++為基礎(chǔ)設(shè)計(jì),包括Eclipse的好多版本也是用VC來(lái)寫(xiě),如果C++真的不能在未來(lái)軟件市場(chǎng)王者歸來(lái),那會(huì)不會(huì)是命運(yùn)的安排?至于Python做為黑客教學(xué)的語(yǔ)言,成為未來(lái)開(kāi)發(fā)團(tuán)隊(duì)標(biāo)準(zhǔn)的開(kāi)發(fā)語(yǔ)言。是不是上天故意開(kāi)下的一個(gè)玩笑?!一切都讓我們拭目以待。
標(biāo)簽:
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>以簡(jiǎn)驅(qū)繁,精準(zhǔn)智控 | 維智S1系列新一代...
2024-11-01
新品發(fā)布:CD300系列總線(xiàn)型伺服驅(qū)動(dòng)器
2024-10-31
2024-10-31
2024-10-31
纖薄之間,化繁為簡(jiǎn)|合信全新simple系...
2024-10-29
推薦專(zhuān)題
更多>