omniture

2012年4月編程語(yǔ)言排行榜:C語(yǔ)言榮歸寶座

2012-04-10 10:16

TIOBE近日公布了2012年4月份的編程語(yǔ)言排行榜,終于不出小編所料,在上個(gè)月的編程語(yǔ)言排行榜中說(shuō)過(guò)的“編程語(yǔ)言的王者之爭(zhēng)不久很可能會(huì)發(fā)生改變”實(shí)現(xiàn)了,一方面是Java在上幾個(gè)月中一直屬于下滑狀態(tài),另一方面是C這具有30多年歷史的編程語(yǔ)言依然是歷久彌新,一些優(yōu)秀特性至今一直都被廣泛應(yīng)用。C語(yǔ)言從2010年6月份丟失了寶座后一直都是在Java后面窮追不舍,終于在本月榮歸了寶座。

 

當(dāng)然了,C和Java這兩們語(yǔ)言所占的份額相差不大,也會(huì)經(jīng)常來(lái)回波動(dòng),相信Android平臺(tái)的普及,Java份額的下降也不會(huì)維持多久,不過(guò)未來(lái)的幾個(gè)月內(nèi)C還是會(huì)保持領(lǐng)先的位置。

 

值得我們關(guān)注的還有Objective-C,隨著The New PAD的發(fā)布也一路的飆升,超越了C#,占據(jù)了第4的位置,而C++也重新回來(lái)了第3的位置。浮動(dòng)最大的就是T-SQL了,從原來(lái)的14位置滑到了18,份額也從原來(lái)的0.925%下降到了0.760%。

 

下面是本期編程語(yǔ)言排行榜的其他排名數(shù)據(jù)和趨勢(shì)走向

 

下面是前20名的編程語(yǔ)言排行

 

 

 

C語(yǔ)言簡(jiǎn)介

 

C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它由美國(guó)貝爾研究所的D.M.Ritchie于1972年推出。 1978后,C語(yǔ)言已先后被移植到大、中、小及微型機(jī)上。它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫不依賴計(jì)算機(jī) 硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語(yǔ)言,適于編寫系統(tǒng)軟件,三維,二維圖形和 動(dòng)畫。具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。

 

C語(yǔ)言的發(fā)展歷史

 

C語(yǔ)言的祖先是BCPL語(yǔ)言。

 

1967年,劍橋大學(xué)的 Martin Richards 對(duì)CPL語(yǔ)言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL(Basic Combined Programming Language)語(yǔ)言。

 

1970年,美國(guó)貝爾實(shí)驗(yàn)室的 Ken Thompson。以BCPL語(yǔ)言為基礎(chǔ),設(shè)計(jì)出很簡(jiǎn)單且很接近硬件的B語(yǔ)言(取BCPL的首字母)。并且他用B語(yǔ)言寫了第一個(gè)UNIX操作系統(tǒng)。

 

在1972年,美國(guó)貝爾實(shí)驗(yàn)室的 D.M.Ritchie 在B語(yǔ)言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語(yǔ)言,他取了BCPL的第二個(gè)字母作為這種語(yǔ)言的名字,這就是C語(yǔ)言。

 

為了使UNIX操作系統(tǒng)推廣,1977年Dennis M.Ritchie發(fā)表了不依賴于具體機(jī)器系統(tǒng)的C語(yǔ)言編譯文本《可移植的C語(yǔ)言編譯程序》。

 

1978年由美國(guó)電話電報(bào)公司(AT&T)貝爾實(shí)驗(yàn)室正式發(fā)表了C語(yǔ)言。同時(shí)由B.W.Kernighan和D.M.Ritchie合著了 著名的《The C Programming Language》一書。通常簡(jiǎn)稱為《K&R》,也有人稱之為《K&R》標(biāo)準(zhǔn)。但是,在《K&R》中并沒(méi)有定義一個(gè)完整的標(biāo)準(zhǔn)C 語(yǔ)言,后來(lái)由美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(American National Standards Institute)在此基礎(chǔ)上制定了一個(gè)C語(yǔ)言標(biāo)準(zhǔn),于一九八三年發(fā)表。通常稱之為ANSI C。

 

1990年,國(guó)際標(biāo)準(zhǔn)化組織ISO(International Organization for Standards)接受了89 ANSI C 為I SO C 的標(biāo)準(zhǔn)(ISO9899-1990)。1994年,ISO修訂了C語(yǔ)言的標(biāo)準(zhǔn)。

 

1995年,ISO對(duì)C90做了一些修訂,即“1995基準(zhǔn)增補(bǔ)1(ISO/IEC/9899/AMD1:1995)”。1999年,ISO又對(duì)C 語(yǔ)言標(biāo)準(zhǔn)進(jìn)行修訂,在基本保留原來(lái)C語(yǔ)言特征的基礎(chǔ)上,針對(duì)應(yīng)該的需要,增加了一些功能,尤其是對(duì)C++中的一些功能,命名為 ISO/IEC9899:1999。

 

2001年和2004年先后進(jìn)行了兩次技術(shù)修正。

 

目前流行的C語(yǔ)言編譯系統(tǒng)大多是以ANSI C為基礎(chǔ)進(jìn)行開發(fā)的,但不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語(yǔ)言功能和語(yǔ)法規(guī)則又略有差別。

 

2011年12月8日,ISO正式公布C語(yǔ)言新的國(guó)際標(biāo)準(zhǔn)草案:ISO/IEC 9899:2011,即C11。

 

C語(yǔ)言編寫程序的優(yōu)點(diǎn)

 

(1)程序結(jié)構(gòu)簡(jiǎn)潔、緊湊、規(guī)整,表達(dá)式簡(jiǎn)練、使用靈活。

 

(2)編寫的程序可讀性強(qiáng),編譯效率高。

 

(3)具有豐富的運(yùn)算符,多達(dá)34種。

 

(4)數(shù)據(jù)類型種類繁多。

 

(5)是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,特別適合大型程序的模塊化設(shè)計(jì)。

 

(6)語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。

 

(7)允許直接訪問(wèn)物理地址,能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。

 

(8)生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。它一般只比匯編程序生成的目標(biāo)代碼率低10%~20%。

 

(9)具有較高的可移植性。它的語(yǔ)句基本上無(wú)須修改就能用于各種型號(hào)的計(jì)算機(jī)和各種操作系統(tǒng)。

 

C語(yǔ)言的應(yīng)用領(lǐng)域

 

(1)應(yīng)用軟件。Linux操作系統(tǒng)中的應(yīng)用軟件都是使用C語(yǔ)言編寫的,因此這樣的應(yīng)用軟件安全性非常高。

 

(2)對(duì)性能要求嚴(yán)格的領(lǐng)域。一般對(duì)性能有嚴(yán)格要求的地方都是用C語(yǔ)言編寫的,比如網(wǎng)絡(luò)程序的底層和網(wǎng)絡(luò)服務(wù)器端底層、地圖查詢等。

 

(3)系統(tǒng)軟件和圖形處理。C語(yǔ)言具有很強(qiáng)的繪圖能力和可移植性,并且具備很強(qiáng)的數(shù)據(jù)處理能力,可以用來(lái)編寫系統(tǒng)軟件、制作動(dòng)畫、繪制二維圖形和三維圖形等。

 

(4)數(shù)字計(jì)算。相對(duì)于其他編程語(yǔ)言,C語(yǔ)言是數(shù)字計(jì)算能力超強(qiáng)的高級(jí)語(yǔ)言。

 

(5)嵌入式設(shè)備開發(fā)。手機(jī)、PDA等時(shí)尚消費(fèi)類電子產(chǎn)品相信大家都不陌生,其內(nèi)部的應(yīng)用軟件、游戲等很多都是采用C語(yǔ)言進(jìn)行嵌入式開發(fā)的。

 

(6)游戲軟件開發(fā)。游戲大家更不陌生,很多人就是由玩游戲而熟悉了計(jì)算機(jī)。利用C語(yǔ)言可以開發(fā)很多游戲,比如推箱子、貪吃蛇等。

前10名編程語(yǔ)言走勢(shì)圖

 

 

 

20到50名語(yǔ)言排行

 

 

 

下面是第50到100的編程語(yǔ)言排名

 

ABC, Algol, bc, BETA, Boo, C shell, CL (OS/400), Clean, Clojure, Dart, Dylan, Eiffel, Factor, Gambas, Go, Icon, Informix-4GL, Io, J, JavaFX Script, JScript.NET, LabVIEW, LabWindows/CVI, Ladder Logic, Lingo, LPC, Maple, Max/MSP, MEL, MUMPS, NATURAL, Oberon, OCaml, Occam, OpenCL, OpenEdge ABL, PL/I, PowerShell, Processing, Q, REALbasic, Revolution, S, S-PLUS, SPARK, SuperCollider, Tcl, VHDL, X10, xBase

 

下面給出了編程語(yǔ)言類別的一年變化趨勢(shì)

消息來(lái)源:51CTO