技術頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術頻道 > 技術百科 > 華山論劍 — 未來軟件開發(fā)的語言和工具

華山論劍 — 未來軟件開發(fā)的語言和工具

時間:2010-04-21 10:24:07來源:yangliu

導語:?自計算機問世以來其應用領域不斷擴大,相關產(chǎn)業(yè)迅速發(fā)展,軟件市場的蓬勃發(fā)展各種編程語言也孕育而生,到目前為止,編程語言已發(fā)展到第四階段,開發(fā)工具更是層出不窮。

      前言:自計算機問世以來其應用領域不斷擴大,相關產(chǎn)業(yè)迅速發(fā)展,軟件市場的蓬勃發(fā)展各種編程語言也孕育而生,到目前為止,編程語言已發(fā)展到第四階段,開發(fā)工具更是層出不窮?!  肮ビ破涫卤叵壤淦鳌?,這是眾所周知的道理。一件好的“利器”,就使讓我們的工作事半功倍?,F(xiàn)在主流的開發(fā)語言和開發(fā)工具包羅萬象,一時間很難把握,那么就讓我們從當前社會的主要編程語言,編程工具出發(fā),回顧一下發(fā)展過程,歷史環(huán)境及他們當今所主要涉及的領域等幾個方面,從中展望未來的發(fā)展趨勢。

編程語言及開發(fā)工具的發(fā)展史
      第一代編程語言:機器語言。一種很古老的語言。對象很簡單就是“0”和“1”。相對應的編程工具是紙帶和打孔器。因為計算機多為8位,16位,32位和64位,每次處理一個字節(jié)。原理也很簡單,1的位就打孔,0的位保留。利用光學原理,遮光為0,透光為1。根據(jù)定義位置取得指令和操作數(shù)。這種語言比較古老,這里不做表述。
  第二代編程語言:匯編語言。和機器語言一樣,也是面向機器的語言,利用計算機所有硬件特性并能直接控制硬件的語言。優(yōu)點是可以直接操作計算機硬件,速度快。缺點則是太難理解,所以除非本人所寫,且不好維護。不過這里寫出的程序是半成品,需要手動匯編成目標文件再連接成中間文件,最后才能生成可執(zhí)行文件。
  第三代編程語言:面向過程的編程語言。剛剛問世時叫高級語言,意思為比更接近人的語言。Basic,F(xiàn)ortran ,Cobol ,C,Pascal 等等真正叫做高級語言的原因是它們已有屬于自己的編譯系統(tǒng)、開發(fā)包等,要執(zhí)行必須通過編譯器才行。相比于機器語言和匯編語言,這次是以人類邏輯思維角度出發(fā)設計的計算機語言,抽象程度大大提高,模塊化思想的引入使得程序更加清晰。可它的缺點是非常難講述,因為它就是基于面向過程的思想創(chuàng)建,所以自然不具備面向對象的特點。
  第四代編程語言:面向對象的編程語言。這就是當前主流的開發(fā)語言。如C++、Java等。它的幾個特點為:(1)封裝性,是基于安全考慮。(2)繼承性,是基于擴展處理。(3)多態(tài)性,更多考慮到靈活性和重用性。第四代語言的開發(fā)工具種類豐富。MicroSoft公司的VS系列有多種VC—C++,VB—Basic,VJ—Java,VF—FoxBase,還有基于DotNet平臺的C#(最新VS2010還推出F#)等等。如日中天的Java開發(fā)工具也很多,下文將根據(jù)軟件開發(fā)未來的發(fā)展趨勢談到相關的一部分。
  以上是四代的編程語言簡述,對于第五代編程語言,有很多人提出想法,不過到目前為止還沒有任何一個方案能脫穎而出,笑傲群雄。

主流編程語言及工具主要涉及的領域
  到今天,機器語言早已絕跡于江湖,成為古老的傳說。匯編語言和C語言基本統(tǒng)治操作系統(tǒng)內(nèi)核、工業(yè)控制、實時系統(tǒng)等領域。近些年在世面上較火的Linux系統(tǒng)下主要用的就是C語言,C++不僅支持面向對象的編程,也支持面向過程的結構程序設計。
  目前在通信、網(wǎng)絡、圖形、圖像、多媒體平臺等領域優(yōu)勢比較明顯。在這些領域通常都有很高的性能要求,C++有較高執(zhí)行效率(匯編和C的執(zhí)行效率更高但實在難以實現(xiàn)),再加上開發(fā)商在開發(fā)包方面的重點“照顧”,而使其它語言在算法精度較高的編程方面不能望其項背。
  曾經(jīng)有句非常經(jīng)典的老話:“真正的程序員用VC,聰明的程序員用Delphi?!贝致砸豢春孟襁@句話有問題,VC是編程工具,而Delphi是編程語言,其實不然。在Delphi1到Delphi7是用Object Pascal語言,到Delphi8以后才改叫Delphi語言,這與平時聽到人們講“我會VC”完全是兩回事。VC是編程工具,斧頭是伐木工具,如果你因為會伐木就說,“我會斧頭”就貽笑大方了,正常的說法應該是“我會用VC”。delphi當初雖是Borland公司研發(fā),但在Windows(上的大多數(shù))編程方面,比VS(包括VC)更容易上手,與WinAPI連接更緊密,(使用者)更容易實現(xiàn)預定的目標,而且更容易做更漂亮的界面。
  現(xiàn)在大名鼎鼎的QQ最初就是delphi開發(fā),2001年后才逐漸改為VC開發(fā),常用的迅雷也有很多是delphi的版本。簡而言之,05年以前凡是VC做到的,delphi同樣能做得到(甚至更好),隨著Borland公司希望把更多精力投入在新看好的應用程序生命周期管理(ALM)業(yè)務上,
Delphi(目前的編程工具屬于IDE業(yè)務)的傳奇之路也走到盡頭。95年以后互聯(lián)網(wǎng)的大躍進,B/S結構越來越受到人們的推寵。APS,PHP,Java……一時間各路英豪各顯伸手。

未來編程語言和工具發(fā)展趨勢
  未來編程語言和工具的發(fā)展趨勢大至取決于三個方面,第一,未來計算機網(wǎng)絡工作框架及工作模式;第二,當前開發(fā)工具對開發(fā)語言的支持程度與硬件發(fā)展;第三,各種語言的本身的生命力和活力。
  20年后的計算機網(wǎng)絡,我們都知道將會進入到“云計算”時代?!霸朴嬎恪笔谴罅康木W(wǎng)絡計算機為我們提供計算機所需的各種服務,而非本地計算機。只需一個瀏覽器,甚至不需要操作系統(tǒng),一切工作都通過網(wǎng)絡來實現(xiàn)?,F(xiàn)在“云計算”已經(jīng)開始試探性進入我們的生活。
  做為“云計算”的先鋒,可以用到一些在線的工具系統(tǒng),比如,在線辦公、在線電視、在線翻譯……,其中很多內(nèi)容都基于“云計算”模式,盡管還不完善,但也初具規(guī)模。不完善是因為在線工作的服務器處理能力不夠,網(wǎng)絡帶寬不夠或算法不佳導致的流量分配不合理等,在這里扮演最主要角色的還是服務器的處理能力?,F(xiàn)在的高端和大型服務器幾乎都被IBM和SUN公司“壟斷”。SUN是Java之父,對Java呵護倍至,而IBM更是用一半的力量把其相所有關代碼用Java重新編寫,并且用另一半的力量在推廣Java。不要懷疑Java的開發(fā)前景,Java在未來必定是與大型服務器貼合的最緊密、兼容性、有效性最好的語言,Eclipse也將成最火的編程工具。(其實現(xiàn)在Java已經(jīng)在各種編程語言使用量中排名第一,最近10年中更是9年排名榜首,僅2005年一次失手屈居第二)。
  Java統(tǒng)治互聯(lián)網(wǎng)是必然趨勢,但Python在未來(桌面程序)扮演重要角色也絕對不能說成是意外。Python具有非常簡捷而清晰的語法特點,適合完成各種高層任務,幾乎可以在所有的操作系統(tǒng)中運行。更重要的一點是,Python本身的設計理念 “There should be one-- and preferably only one --obvious way to do it”,譯成漢語就是對于一個特定的問題,只要有一種明顯、最好(完美)的方法來解決就可以。這個設計理念本身很符合未來開發(fā)團隊的胃口。如果(不用Python來編寫)一個軟件工程只有概設,沒有詳設,那最后由工程師寫出來的程序很可能是五花八門個性化實足,就算編程人員有很好的開發(fā)素養(yǎng),編碼風格統(tǒng)一,也不能保證使用的方法相同,這樣程序升級和維護就很受人員限制且效率低下。
  但如果你使用Python就完全不一樣,Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴格!Python的這種偽代碼本質(zhì)是它最大的優(yōu)點之一,它使你能夠專注于解決問題而不是去搞明白語言本身。Python號稱“膠水語言”他能夠很輕松的把用其他語言制作的各種模塊(尤其是C/C++)輕松地聯(lián)結在一起。常見的一種應用情形是,使用python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊速度要求非常高,就可以用C++重寫。Python是最早的(基于互聯(lián)網(wǎng)的)在線開發(fā)語言,Google在推出在線office之后,就把在線Python推給網(wǎng)友,在Google的背景支持下Python肯定會很有前景。
  一種編語言能不能廣泛的推廣,很大一部分原因取決于它的開發(fā)工具好不好用;一種語言開發(fā)的軟件能不能大量使用,則取決于它的開發(fā)包支持的夠不夠好。
  C++曾經(jīng)的狀元,在92年VC1.0問世開創(chuàng)可視化編程后,98年VC6.0達到巔峰。除了MicroSoft在02年發(fā)布基于WinXP的SDK以后,就基本沒有大的動作。VC7,VC8,VC9都只是在編程界面上下的功夫,開發(fā)包也沒有太多增加。2006年底Vista上市,可支持相關的開發(fā)包直到08年VS2008的SP1補丁包中才發(fā)布。最近版的VS2010測試版在09年Win7閃亮登場后,終于千呼萬喚始出來。這次對VC10在開發(fā)工具上確實有不少改進,對C++語法也增加不少支持。VC10增加生成調(diào)用樹的功能,可以把有層次的調(diào)用關系樹型表示出來,使程序人員對邏輯結構更加清晰。VC10新加一機多配顯示器的功能,并配合程序內(nèi)部即用即生成的功能,在新增的對函數(shù)的模糊查找功能,據(jù)說還增強智能感知功能,可以高亮引用。
  C++的優(yōu)勢在于效率,歸根到底還是因為它是編譯型語言,產(chǎn)生的代碼將有很多工作在寄存器中執(zhí)行。而Java的是解釋型語言,大多代碼執(zhí)行都要入棧,因為寄存器是在CPU中,它的訪問速度比內(nèi)存訪問速度快好幾個數(shù)量級。計算(PC)機的芯片大多都是register computer型(如Intel, AMD),所以Java目前的執(zhí)行速度沒辦法與C++相比。
  之所以現(xiàn)在的嵌入式領域Java比C++流行,就是因為大多數(shù)嵌入式芯片都是stack computer型。那你會問,為什么不都采用register computer型的芯片呢?原因不言自明,為了跨平臺(跨CPU),現(xiàn)在我們用是雙核芯片,但在本機線程都不能跨CPU,何談“云計算”(云計算本質(zhì)就是分布式計算)。既然高端大型服務器都被IBM和SUN“壟斷”。那CPU的發(fā)展又何去何從呢?當C++不再擁有速率優(yōu)勢的時候,是不是有人會說“廉頗老矣”呢。
  近年來C++的使用量大大下降,要不是與C語言天然的裙帶關系,要不是開源的程序在支撐門面,恐怕光靠VC,C++早就江河日下。評論一個事物有沒有生命力,就要看它當前的發(fā)展程度和未來的發(fā)展趨勢。Java是由C++中的一流高手設計出來的語言,天然性的摒棄一些C++中不妥不安全不穩(wěn)定的機制,反射機制又使Java如虎添翼。Java的開源框架資料隨處可見,WebLogic,TomCat也都開源可尋,可C++的框架卻很少。ACE雖然出名但能拿到源碼嗎?只能配置。經(jīng)常會有人問可不可以寫個C++版的Hibernate給C++程序員來用,連數(shù)據(jù)庫也不能跨平臺。每次提到Hibernate,我不僅聯(lián)想到風馬牛不相及的詞匯:哈勃定律。哈勃定律是天文學上的定律,是指所有的星系之間有互相遠離的趨勢,而且遠離的速度越來越大,以此來證明宇宙不斷膨脹。Java和C++是不是也像軟件行業(yè)中的兩顆行星呢?
  活力對于任何開發(fā)語言來都是永恒的話題,有沒有活力就要看是否與世界上最熱門的技術的緊密聯(lián)系,以及有多少人在關心它。Java已經(jīng)在3G、數(shù)字電視等多個領域都有所建樹。Java擁有世界上最多的軟件工程師,看看大街小巷各種軟件培訓的傳單,就能看出來人們對這門開發(fā)語言有多么關心。
  綜上所述,在未來的20年中匯編和C仍然會在操作系統(tǒng)內(nèi)核、工業(yè)控制、實時系統(tǒng)等領域獨樹一職,Java在互聯(lián)網(wǎng)上稱王,Python會成為團隊開發(fā)新的尊者,C++則在目前涉及領域繼續(xù)發(fā)揮余熱并與Python成為好伙伴。

篇后語:
  Java本身是以C++為基礎設計,包括Eclipse的好多版本也是用VC來寫,如果C++真的不能在未來軟件市場王者歸來,那會不會是命運的安排?至于Python做為黑客教學的語言,成為未來開發(fā)團隊標準的開發(fā)語言。是不是上天故意開下的一個玩笑?!一切都讓我們拭目以待。

標簽:

點贊

分享到:

上一篇:VBA的妙用:串口通訊程序與EX...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網(wǎng)站簡介|會員服務|聯(lián)系方式|幫助信息|版權信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務平臺

網(wǎng)站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號