lcy 发表于 2010-4-12 16:22:57

4月编程语言排行榜:Top20里的“陌生人”(1)

【51CTO独家特稿】Tiobe近日发布了2010年4月的编程语言排行榜,在本期榜单中,C语言反超Java夺得榜首。Tiobe分析称,在最近的十年中,C语言一直占据软件开发中15%-20%的编程语言使用率;此次重夺王位,并不意味着C语言的增长,而是Java的衰老(详细分析请参考51CTO之前的报道《Java,正在老去的王者》)。另外值得注意的是,Sun的RIA技术——JavaFX脚本语言一举窜升四位,有望进入前20名。
本期编程榜我们将视角放在榜单前20名中那些我们并不熟悉的编程语言,来看一看Top20里的“陌生人”。
下面是本期榜单的前20名,请留意标亮的几门语言。
http://images.51cto.com/files/uploadimg/20100407/083416431.jpg
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的下滑趋势:

lcy 发表于 2010-4-12 16:23:53

其他编程语言及趋势
下面是本期榜单第21-50的编程语言排名
PositionProgramming LanguageRatings21Transact-SQL0.500%22JavaFX Script0.485%23Lisp/Scheme0.481%24Scratch0.476%25D0.463%26Bourne shell0.437%27Scala0.433%28Erlang0.420%29COBOL0.398%30RPG (OS/400)0.379%31S-lang0.372%32Logo0.361%33Ada0.357%34Fortran0.350%35NXT-G0.321%36Tcl/Tk0.319%37Alice0.317%38Forth0.296%39FoxPro/xBase0.291%40Caml/F#0.280%41PowerShell0.268%42CL (OS/400)0.259%43Prolog0.258%44Groovy0.238%45Smalltalk0.221%46VHDL0.220%47J0.213%48C shell0.198%49MAX/MSP0.196%50VBScript0.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)依然占到编程语言类型的半壁江山。
CategoryRatings Apr 2010Delta Apr 2009Object-Oriented Languages54.2%-1.7%Procedural Languages41.3%+1.4%Functional Languages2.7%-0.3%Logical Languages1.7%+0.5%

CategoryRatings Apr 2010Delta Apr 2009Statically Typed Languages61.4%+4.2%Dynamically Typed Languages38.6%-4.2%
动态和静态语言趋势走向
http://images.51cto.com/files/uploadimg/20100407/084200204.jpg
页: [1]
查看完整版本: 4月编程语言排行榜:Top20里的“陌生人”(1)