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