浮云先森 2010-04-07
本期编程榜我们将视角放在榜单前20名中那些我们并不熟悉的编程语言,来看一看Top20里的“陌生人”。
下面是本期榜单的前20名,请留意标亮的几门语言。
Tiobo编程语言排行榜的前20名几乎占据了全球编程语言使用率的70%。长期出现在编程榜前20名里的语言除了Java、C、PHP等我们熟悉并经常使用的语言外,还有一些国内很少应用的语言,比如这期榜单中的SAS、ABAP、MATLAB和Lua。
由于国内外软件需求和开发者使用习惯上的差异,这些语言并不为我们所熟知,但其在IT界及软件开发与应用方面的作用不可小视。值得注意的是,这些陌生的语言之所以可以长期占据编程榜重要的位置,要么是因为其背后有强势的软件平台(厂商)支持,要么是自身的特点专注并擅长于某一领域。简单来说,还是应用场景和应用需求决定了这些小众语言的大众地位。
SAS —— 本期排名13
要了解SAS语言,首先需要知道SAS软件系统。SAS系统是国外著名的统计分析软件,1966年在美国北卡罗莱纳州立大学诞生,经过多年的发展和完善,目前,SAS系统已经成为国际统计分析的标准软件,在各个领域应用广泛。SAS 是一个模块化、集成化的大型应用软件系统。它由数十个专用模块构成,功能包括数据访问、数据储存及管理、应用开发、图形处理、数据分析、报告编制、运筹学方法、计量经济学与预测等等。
SAS系统的使用依赖其自身带有的SAS语言。SAS系统的用户需要通用SAS语言提供的命令、语句和语法来控制系统完成数据管理和分析工作。
简单来看,SAS语言的功能有点类似数据库语言(如FoxPro),但又添加了一般高级程序设计语言的许多成分(如分支、 循环、数组),以及专用于数据管理、统计计算的函数。在SAS中,大部分常用的复杂数据计算的算法作为标准过程调用,用户仅需要指出过程名及其必要的参数。这一特点使得SAS编程十分简单,同时大大简化了SAS数据分析系统的工作。SAS系统的数据管理、报表、图形、统计分析等功能都可以用SAS语言程序来调用,只要指定要完成的任务就可以由SAS系统按照预先设计好的程序去进行。关于SAS语言的详细介绍请参考:数据管理与分析语言SAS简介
ABAP —— 本期排名17
ABAP是一门高级商业应用程序设计语言(Advanced Business Application Programming),它是著名商业软件公司SAP开发的一种编程语言,主要用于SAP系统内部商业应用程序的设计和开发。一般,SAP的商业软件会提供一系列的应用解决方案,同时提供一系列的编程接口对这些系统进行二次开发,ABAP就是这种二次开发的主力编程语言。ABAP语言开发的程序通过SAP开发平台编译并应用(依赖)与SAP系统。
ABAP是面向对象语言。它支持封装性和继承性。封装性是面向对象的基础,而继承性则是建立在封装性基础上的重要特性;ABAP的另一个特点是基于事件驱动的。
ABAP程序的源代码包括数据定义和处理快两个部分。
数据定义:包含整个程序中可见的全局数据类型和数据对象,选择屏幕元素以及ABAP Objects中自定义的类和接口;
处理块:是ABAP程序的主要结构单元,定义了程序在不同状态下执行的具体功能,在程序编译运行过程中,每个块都是一个独立的实体。ABAP程序中,数据定义和生命是独立于任何处理快递,其他所有语句都必须隶属于某个处理块。
MATLAB —— 本期排名18
MATLAB是一门精于数据分析和数值计算的语言,它最早有美国新墨西哥大学计算机科学系主任Cleve Moler创建,1984年由MathWorks公司正式把MATLAB推向市场。目前,MATLAB已经发展成为国际控制界的标准高级技术计算语言和交互式环境;MATLAB在数学类科技应用软件中在数值计算方面首屈一指。它可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,所以用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多。一般,我们使用MATLAB提供的软件环境进行MATALB对代码、文件和数据进行管理,MATLAB的交互式工具可以按地道的方式探查、设计和求解问题。MATLAB提供功能强大的数学函数库,可以用于线性代数、统计、傅立叶分析、筛选、优化和数值积分等问题求解。此外,各种函数可将基于MATLAB的算法与外部应用程序和语言,如:C、C++、Fortran、Java、COM等,还可以与Microsoft Excel集成,开发者可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。
目前,MATLAB广泛应用在信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
关于MATLAB编程的具体应用请参考:VC++与MATLAB混合编程及其应用
Lua —— 本期排名20
你可能没听过Lua,但你一定听过(或玩过)魔兽世界,Lua最著名的应用案例就是知名网络游戏——魔兽世界。Lua是一门简洁、小巧、可扩展性极强的脚本语言。其设计的目的是为了嵌入应用程序中,为应用程序提供灵活的扩展和定制功能;Lua最大的特点就是很容易嵌入其它语言中使用。
Lua是一种动态弱类型的程式设计语言。它只提供了很小的一个特性集合来满足不同程序的需要,其自身所带有的数据类型非常少,只提供了数字(缺省是双精度浮点数,可配置)、布尔、字符串等几种简单的数据类型。Lua只包括一个精简的核心和最基本的库。这使得Lua体积小巧,启动迅速;一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。
Lua用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程式里。与目前许多功能强大的语言不同,Lua自身不提供网络、图形界面和其他复杂的API库,这些任务主要由Lua的宿主语言(使用Lua来扩展的语言)来完成。Lua可以使用它们,就像是本来就内置的功能一样。
目前,很多游戏开发者使用Lua进行开发,他们使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括大话西游II、仙境传说、魔兽世界、战锤40k、博德之门、轩辕剑外传汉之云等。
下面是本期榜单前10名近年的趋势走向,请留意Java的下滑趋势:
前10名编程语言趋势走向
其他编程语言及趋势
下面是本期榜单第21-50的编程语言排名
Position | Programming Language | Ratings |
---|---|---|
21 | Transact-SQL | 0.500% |
22 | JavaFX Script | 0.485% |
23 | Lisp/Scheme | 0.481% |
24 | Scratch | 0.476% |
25 | D | 0.463% |
26 | Bourne shell | 0.437% |
27 | Scala | 0.433% |
28 | Erlang | 0.420% |
29 | COBOL | 0.398% |
30 | RPG (OS/400) | 0.379% |
31 | S-lang | 0.372% |
32 | Logo | 0.361% |
33 | Ada | 0.357% |
34 | Fortran | 0.350% |
35 | NXT-G | 0.321% |
36 | Tcl/Tk | 0.319% |
37 | Alice | 0.317% |
38 | Forth | 0.296% |
39 | FoxPro/xBase | 0.291% |
40 | Caml/F# | 0.280% |
41 | PowerShell | 0.268% |
42 | CL (OS/400) | 0.259% |
43 | Prolog | 0.258% |
44 | Groovy | 0.238% |
45 | Smalltalk | 0.221% |
46 | VHDL | 0.220% |
47 | J | 0.213% |
48 | C shell | 0.198% |
49 | MAX/MSP | 0.196% |
50 | VBScript | 0.186% |
下面是第50到100的编程语言排名
AD, Algol, Alpha, APL, Applescript, Awk, Beta, cg, Clean, cT, Dylan, Eiffel, Factor, Falcon, Focus, Haskell, Heron, Icon, IDL, Informix-4GL, Io, LabVIEW, LabWindows/CVI, Lingo, MAD, Maple, Mathematica, ML, Modula-2, Modula-3, MOO, MS-DOS batch, MUMPS, Natural, Occam, Oz, PL/I, Postscript, PowerBuilder, Progress, Q, R, REALbasic, Revolution, REXX, SIGNAL, SPSS, SuperCollider, Verilog, XSLT
编程语言类别
下面给出了编程语言类别的一年变化趋势,面向对象编程(Object-Oriented Languages)依然占到编程语言类型的半壁江山。
Category | Ratings Apr 2010 | Delta Apr 2009 |
---|---|---|
Object-Oriented Languages | 54.2% | -1.7% |
Procedural Languages | 41.3% | +1.4% |
Functional Languages | 2.7% | -0.3% |
Logical Languages | 1.7% | +0.5% |
Category | Ratings Apr 2010 | Delta Apr 2009 |
---|---|---|
Statically Typed Languages | 61.4% | +4.2% |
Dynamically Typed Languages | 38.6% | -4.2% |
动态和静态语言趋势走向