TIOBE今日公布了2009年4月的編程語言排行榜,本期前十的榜單與上期相比沒明顯變化,Java、C、C++依然以絕對優(yōu)勢占據(jù)前三甲的位置;排名第四到十位的分別是:PHP、VB、Python、C#、JavaScript、Perl和Ruby。Ruby經(jīng)過數(shù)月的艱難爬升后終于進(jìn)入前十,上期第十名Delphi下滑一位,排在第十一位。 仔細(xì)分析本期榜單可以看出,前十名中的PHP、Python、 JavaScript、Perl、Ruby均為腳本級語言(榜單中的Visual Baisc未列入腳本級語言,但在ASP和ASP.NET中,如果選擇VB作為開發(fā)語言,則是以VB Script這種腳本進(jìn)行編程的);撇開應(yīng)用場景和項目規(guī)模不說,至少在使用率上,腳本語言已經(jīng)占據(jù)了編程語言的半壁江山。 2009年4月TIOBE編程語言排行榜前20名 腳本語言(Script language,或scripting programming language)是為了縮短傳統(tǒng)的編寫-編譯-鏈接-運(yùn)行(edit-compile-link-run)過程而創(chuàng)建的計算機(jī)編程語言。腳本語言的命名起源于一個腳本“screenplay”,每次運(yùn)行都會使對話框逐字重復(fù)。早期的腳本語言經(jīng)常被稱為批次處理語言或工作控制語言。一個腳本通常是解釋運(yùn)行而非編譯。腳本語言通常都有簡單、易學(xué)、易用的特性,目的就是希望能讓程序設(shè)計師快速完成程序的編寫工作。大多腳本語言共性是:良好的快速開發(fā),高效率的執(zhí)行,解釋而非編譯執(zhí)行,和其它語言編寫的程序組件之間通信功能很強(qiáng)大。 就腳本語言的應(yīng)用場景而言可以大致分為:工作控制(shell)、GUI 腳本、 應(yīng)用程序定制腳本、Web編程、文本處理;就語言特性而言,大致可以分為: 文本處理語言、動態(tài)語言和可嵌入語言。 處理基于文本的記錄是腳本語言最早的用處之一。如Unix's awk最早是設(shè)計來幫助系統(tǒng)管理員處理調(diào)用UNIX基于文本的配置和LOG文件。PERL最早是用來產(chǎn)生報告的,現(xiàn)在它已經(jīng)成了全面成熟的語言。許多腳本語言用來執(zhí)行一次性任務(wù),尤其是系統(tǒng)管理方面。它可以把服務(wù)組件粘合起來,因此被廣泛用于GUI創(chuàng)建或者命令行。操作系統(tǒng)通常提供一些默認(rèn)的腳本語言,交互式的解釋和執(zhí)行用戶輸入的命令或者自動地解釋和執(zhí)行預(yù)先設(shè)定好的一連串的命令,即通常所謂shell腳本語言。 目前主要的腳本語言有:JavaScript、PHP、Python、Perl、Ruby、Groovy、Action Script、VBScript、PowerShell、Smalltalk等。 腳本語言與編譯語言 腳本語言與傳統(tǒng)編程語言(C、C++)有很多相似地方,比如腳本語言的函數(shù)與編譯語言比較相象,也會涉及到變量、參數(shù);腳本語言也具有面向?qū)ο蟮确矫娴奶匦缘鹊取5谡Z言核心和本質(zhì)上,腳本語言與傳統(tǒng)語言有著明顯的區(qū)別。 腳本語言一般都有相應(yīng)的腳本引擎來解釋執(zhí)行,一般需要解釋器才能運(yùn)行;而C、C++、Java等則需要編譯、鏈接后,形成獨(dú)立執(zhí)行的exe文件。腳本語言是一種解釋性的語言,它不象Java等可以編譯成二進(jìn)制代碼,以可執(zhí)行文件的形式存在,腳本語言不需要編譯,可以直接用,由解釋器來負(fù)責(zé)解釋。 腳本語言與動態(tài)語言 動態(tài)語言是指程序在運(yùn)行時可以改變其結(jié)構(gòu),比如,在程序運(yùn)行過程中可以引入新的函數(shù),已有的函數(shù)可以被刪除等在結(jié)構(gòu)上的變化。動態(tài)語言的類型檢查是在運(yùn)行時做的。它的優(yōu)點是方便閱讀,不需要寫非常多的類型相關(guān)的代碼。事實上,大多數(shù)的動態(tài)語言都是解釋執(zhí)行的,他們具有腳本語言的一般特點和結(jié)構(gòu),只是在運(yùn)行時上更具動態(tài)性,狀態(tài)上更為靈活。 一般地,腳本語言都是動態(tài)語言,而動態(tài)語言都是解釋型語言。 其他編程語言 下面是排名21到50的編程語言。
ABC, AD, Alpha, APL, Applescript, bc, Beta, Boo, C shell, cg, Clean, Clojure, Cobra, cT, Curl, Dylan, Eiffel, Factor, Icon, IDL, Inform, Io, Lingo, MAD, Magic, Maple, Mathematica, MAX/MSP, MOO, MUMPS, Natural, Occam, Oz, PILOT, PL/I, Postscript, PowerBuilder, Progress, Q, R, Revolution, REXX, S-lang, SIGNAL, SPSS, SuperCollider, VBScript, Verilog, VHDL, XSLT 編程語言類別 下面給出了編程語言類別的一年變化趨勢,相比2008年,動態(tài)語言了近1%的增幅,占整個編程語言類型份額的42.8%。
靜態(tài)類型和動態(tài)類型的語言走勢 |