TIOBE今日公布了2009年4月的編程語言排行榜,本期前十的榜單與上期相比沒明顯變化,Java、C、C++依然以絕對優勢占據前三甲的位置;排名第四到十位的分別是:PHP、VB、Python、C#、JavaScript、Perl和Ruby。Ruby經過數月的艱難爬升后終于進入前十,上期第十名Delphi下滑一位,排在第十一位。 仔細分析本期榜單可以看出,前十名中的PHP、Python、 JavaScript、Perl、Ruby均為腳本級語言(榜單中的Visual Baisc未列入腳本級語言,但在ASP和ASP.NET中,如果選擇VB作為開發語言,則是以VB Script這種腳本進行編程的);撇開應用場景和項目規模不說,至少在使用率上,腳本語言已經占據了編程語言的半壁江山。 2009年4月TIOBE編程語言排行榜前20名 腳本語言(Script language,或scripting programming language)是為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。腳本語言的命名起源于一個腳本“screenplay”,每次運行都會使對話框逐字重復。早期的腳本語言經常被稱為批次處理語言或工作控制語言。一個腳本通常是解釋運行而非編譯。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序設計師快速完成程序的編寫工作。大多腳本語言共性是:良好的快速開發,高效率的執行,解釋而非編譯執行,和其它語言編寫的程序組件之間通信功能很強大。 就腳本語言的應用場景而言可以大致分為:工作控制(shell)、GUI 腳本、 應用程序定制腳本、Web編程、文本處理;就語言特性而言,大致可以分為: 文本處理語言、動態語言和可嵌入語言。 處理基于文本的記錄是腳本語言最早的用處之一。如Unix's awk最早是設計來幫助系統管理員處理調用UNIX基于文本的配置和LOG文件。PERL最早是用來產生報告的,現在它已經成了全面成熟的語言。許多腳本語言用來執行一次性任務,尤其是系統管理方面。它可以把服務組件粘合起來,因此被廣泛用于GUI創建或者命令行。操作系統通常提供一些默認的腳本語言,交互式的解釋和執行用戶輸入的命令或者自動地解釋和執行預先設定好的一連串的命令,即通常所謂shell腳本語言。 目前主要的腳本語言有:JavaScript、PHP、Python、Perl、Ruby、Groovy、Action Script、VBScript、PowerShell、Smalltalk等。 腳本語言與編譯語言 腳本語言與傳統編程語言(C、C++)有很多相似地方,比如腳本語言的函數與編譯語言比較相象,也會涉及到變量、參數;腳本語言也具有面向對象等方面的特性等等。但在語言核心和本質上,腳本語言與傳統語言有著明顯的區別。 腳本語言一般都有相應的腳本引擎來解釋執行,一般需要解釋器才能運行;而C、C++、Java等則需要編譯、鏈接后,形成獨立執行的exe文件。腳本語言是一種解釋性的語言,它不象Java等可以編譯成二進制代碼,以可執行文件的形式存在,腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。 腳本語言與動態語言 動態語言是指程序在運行時可以改變其結構,比如,在程序運行過程中可以引入新的函數,已有的函數可以被刪除等在結構上的變化。動態語言的類型檢查是在運行時做的。它的優點是方便閱讀,不需要寫非常多的類型相關的代碼。事實上,大多數的動態語言都是解釋執行的,他們具有腳本語言的一般特點和結構,只是在運行時上更具動態性,狀態上更為靈活。 一般地,腳本語言都是動態語言,而動態語言都是解釋型語言。 其他編程語言 下面是排名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年,動態語言了近1%的增幅,占整個編程語言類型份額的42.8%。
靜態類型和動態類型的語言走勢 |