【IT168 评论】TIOBE今日公布了2009年4月的编程语言排行榜,本期前十的榜单与上期相比没明显变化,Java、C、C++依然以绝对优势占据前三甲的位置;排名第四到十位的分别是:PHP、VB、Python、C#、JavaScript、Perl和Ruby。Ruby经过数月的艰难爬升后终于进入前十,上期第十名Delphi下滑一位,排在第十一位。
仔细分析本期榜单可以看出,前十名中的PHP、Python、JavaScript、Perl、Ruby均为脚本级语言(榜单中的VisualBaisc未列入脚本级语言,但在ASP和ASP.NET中,如果选择VB作为开发语言,则是以VBScript这种脚本进行编程的);撇开应用场景和项目规模不说,至少在使用率上,脚本语言已经占据了编程语言的半壁江山。
2009年4月TIOBE编程语言排行榜前20名
脚本语言
脚本语言(Script language,或scripting programminglanguage)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。脚本语言的命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批次处理语言或工作控制语言。一个脚本通常是解释运行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序设计师快速完成程序的编写工作。大多脚本语言共性是:良好的快速开发,高效率的执行,解释而非编译执行,和其它语言编写的程序组件之间通信功能很强大。
就脚本语言的应用场景而言可以大致分为:工作控制(shell)、GUI 脚本、 应用程序定制脚本、Web编程、文本处理;就语言特性而言,大致可以分为: 文本处理语言、动态语言和可嵌入语言。
处理基于文本的记录是脚本语言最早的用处之一。如Unix'sawk最早是设计来帮助系统管理员处理调用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的编程语言。
Position | Programming Language | Ratings |
---|---|---|
21 | COBOL | 0.463% |
22 | ActionScript | 0.451% |
23 | Lisp/Scheme | 0.443% |
24 | FoxPro/xBase | 0.393% |
25 | Ada | 0.356% |
26 | Fortran | 0.341% |
27 | PowerShell | 0.250% |
28 | Scala | 0.237% |
29 | LabVIEW | 0.230% |
30 | Prolog | 0.223% |
31 | Alice | 0.207% |
32 | Erlang | 0.195% |
33 | Scratch | 0.178% |
34 | Transact-SQL | 0.170% |
35 | Haskell | 0.169% |
36 | Groovy | 0.165% |
37 | Falcon | 0.163% |
38 | Focus | 0.151% |
39 | Awk | 0.149% |
40 | ML | 0.142% |
41 | NXT-G | 0.134% |
42 | Objective-C | 0.134% |
43 | Smalltalk | 0.123% |
44 | Bourne shell | 0.118% |
45 | Tcl/Tk | 0.115% |
46 | Euphoria | 0.111% |
47 | Caml/F# | 0.110% |
48 | Forth | 0.109% |
49 | CL (OS/400) | 0.108% |
50 | J | 0.102% |
下面是排名51-100的语言:
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%。
Category | Ratings April 2009 | Delta April 2008 |
---|---|---|
Object-Oriented Languages | 55.6% | +0.0% |
Procedural Languages | 40.3% | -1.1% |
Functional Languages | 3.0% | +0.8% |
Logical Languages | 1.2% | +0.2% |
Category | Ratings April 2009 | Delta April 2008 |
---|---|---|
Statically Typed Languages | 57.2% | -0.9% |
Dynamically Typed Languages | 42.8% | +0.9% |