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