TIOBE近日公布了2012年4月份的編程語言排行榜,終于不出小編所料,在上個(gè)月的編程語言排行榜中說過的“編程語言的王者之爭不久很可能會(huì)發(fā)生改變”實(shí)現(xiàn)了,一方面是Java在上幾個(gè)月中一直屬于下滑狀態(tài),另一方面是C這具有30多年歷史的編程語言依然是歷久彌新,一些優(yōu)秀特性至今一直都被廣泛應(yīng)用。C語言從2010年6月份丟失了寶座后一直都是在Java后面窮追不舍,終于在本月榮歸了寶座。
當(dāng)然了,C和Java這兩們語言所占的份額相差不大,也會(huì)經(jīng)常來回波動(dòng),相信Android平臺(tái)的普及,Java份額的下降也不會(huì)維持多久,不過未來的幾個(gè)月內(nèi)C還是會(huì)保持領(lǐng)先的位置。
值得我們關(guān)注的還有Objective-C,隨著The New PAD的發(fā)布也一路的飆升,超越了C#,占據(jù)了第4的位置,而C++也重新回來了第3的位置。浮動(dòng)最大的就是T-SQL了,從原來的14位置滑到了18,份額也從原來的0.925%下降到了0.760%。
下面是本期編程語言排行榜的其他排名數(shù)據(jù)和趨勢走向
下面是前20名的編程語言排行
C語言簡介
C語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言。它既具有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它由美國貝爾研究所的D.M.Ritchie于1972年推出。 1978后,C語言已先后被移植到大、中、小及微型機(jī)上。它可以作為工作系統(tǒng)設(shè)計(jì)語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī) 硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統(tǒng)軟件,三維,二維圖形和 動(dòng)畫。具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。
C語言的發(fā)展歷史
C語言的祖先是BCPL語言。
1967年,劍橋大學(xué)的 Martin Richards 對CPL語言進(jìn)行了簡化,于是產(chǎn)生了BCPL(Basic Combined Programming Language)語言。
1970年,美國貝爾實(shí)驗(yàn)室的 Ken Thompson。以BCPL語言為基礎(chǔ),設(shè)計(jì)出很簡單且很接近硬件的B語言(取BCPL的首字母)。并且他用B語言寫了第一個(gè)UNIX操作系統(tǒng)。
在1972年,美國貝爾實(shí)驗(yàn)室的 D.M.Ritchie 在B語言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語言,他取了BCPL的第二個(gè)字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統(tǒng)推廣,1977年Dennis M.Ritchie發(fā)表了不依賴于具體機(jī)器系統(tǒng)的C語言編譯文本《可移植的C語言編譯程序》。
1978年由美國電話電報(bào)公司(AT&T)貝爾實(shí)驗(yàn)室正式發(fā)表了C語言。同時(shí)由B.W.Kernighan和D.M.Ritchie合著了 著名的《The C Programming Language》一書。通常簡稱為《K&R》,也有人稱之為《K&R》標(biāo)準(zhǔn)。但是,在《K&R》中并沒有定義一個(gè)完整的標(biāo)準(zhǔn)C 語言,后來由美國國家標(biāo)準(zhǔn)化協(xié)會(huì)(American National Standards Institute)在此基礎(chǔ)上制定了一個(gè)C語言標(biāo)準(zhǔn),于一九八三年發(fā)表。通常稱之為ANSI C。
1990年,國際標(biāo)準(zhǔn)化組織ISO(International Organization for Standards)接受了89 ANSI C 為I SO C 的標(biāo)準(zhǔn)(ISO9899-1990)。1994年,ISO修訂了C語言的標(biāo)準(zhǔn)。
1995年,ISO對C90做了一些修訂,即“1995基準(zhǔn)增補(bǔ)1(ISO/IEC/9899/AMD1:1995)”。1999年,ISO又對C 語言標(biāo)準(zhǔn)進(jìn)行修訂,在基本保留原來C語言特征的基礎(chǔ)上,針對應(yīng)該的需要,增加了一些功能,尤其是對C++中的一些功能,命名為 ISO/IEC9899:1999。
2001年和2004年先后進(jìn)行了兩次技術(shù)修正。
目前流行的C語言編譯系統(tǒng)大多是以ANSI C為基礎(chǔ)進(jìn)行開發(fā)的,但不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語言功能和語法規(guī)則又略有差別。
2011年12月8日,ISO正式公布C語言新的國際標(biāo)準(zhǔn)草案:ISO/IEC 9899:2011,即C11。
C語言編寫程序的優(yōu)點(diǎn)
(1)程序結(jié)構(gòu)簡潔、緊湊、規(guī)整,表達(dá)式簡練、使用靈活。
(2)編寫的程序可讀性強(qiáng),編譯效率高。
(3)具有豐富的運(yùn)算符,多達(dá)34種。
(4)數(shù)據(jù)類型種類繁多。
(5)是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,特別適合大型程序的模塊化設(shè)計(jì)。
(6)語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。
(7)允許直接訪問物理地址,能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語言的大部分功能,可以直接對硬件進(jìn)行操作。
(8)生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。它一般只比匯編程序生成的目標(biāo)代碼率低10%~20%。
(9)具有較高的可移植性。它的語句基本上無須修改就能用于各種型號的計(jì)算機(jī)和各種操作系統(tǒng)。
C語言的應(yīng)用領(lǐng)域
(1)應(yīng)用軟件。Linux操作系統(tǒng)中的應(yīng)用軟件都是使用C語言編寫的,因此這樣的應(yīng)用軟件安全性非常高。
(2)對性能要求嚴(yán)格的領(lǐng)域。一般對性能有嚴(yán)格要求的地方都是用C語言編寫的,比如網(wǎng)絡(luò)程序的底層和網(wǎng)絡(luò)服務(wù)器端底層、地圖查詢等。
(3)系統(tǒng)軟件和圖形處理。C語言具有很強(qiáng)的繪圖能力和可移植性,并且具備很強(qiáng)的數(shù)據(jù)處理能力,可以用來編寫系統(tǒng)軟件、制作動(dòng)畫、繪制二維圖形和三維圖形等。
(4)數(shù)字計(jì)算。相對于其他編程語言,C語言是數(shù)字計(jì)算能力超強(qiáng)的高級語言。
(5)嵌入式設(shè)備開發(fā)。手機(jī)、PDA等時(shí)尚消費(fèi)類電子產(chǎn)品相信大家都不陌生,其內(nèi)部的應(yīng)用軟件、游戲等很多都是采用C語言進(jìn)行嵌入式開發(fā)的。
(6)游戲軟件開發(fā)。游戲大家更不陌生,很多人就是由玩游戲而熟悉了計(jì)算機(jī)。利用C語言可以開發(fā)很多游戲,比如推箱子、貪吃蛇等。
前10名編程語言走勢圖
20到50名語言排行
下面是第50到100的編程語言排名
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 |
下面給出了編程語言類別的一年變化趨勢