【51CTO独家特稿】Tiobe今天发布了最新一期的编程语言排行榜。本期榜单的前五名与10月份没有明显变化,依然是Java、C、C++、PHP和Python;Objective-C的增长势头强劲。本期另外一个值得注意的语言是重回前20名NXT-G。NXT-G是一种集成在乐高(LEGO)公司的机器人玩具产品中的可视化编程语言,关于NXT-G的详细报道可以参考2008年11月的编程语言排行榜:可视化编程语言日渐流行

 
2010年11月编程语言排行榜TOP20

本期榜单,我们将视线从传统开发平台转移到移动平台,看看最近大热的智能移动终端里的应用开发,"手机里的代码"。

从07年iPhone发布到现在,手机和移动终端正经历着一场用天翻地覆形容也不为过的变革:终端的人机交互变被重新定义,大尺寸的高分屏幕正在变的主流,基于iOS、Android等智能系统的手机正在随着成本的降低而不断普及;与硬件和平台发展相互推动的是基于各种平台的手机应用程序和游戏的大量涌现。在某个层面上,移动平台的应用数量和质量还在影响着平台本身的口碑和发展。

开发者渐渐意识的到,继PC、Web等传统软件开发平台,智能手机的应用开发正在走向前台,形成技术、产品和交付等相对独立的全新软件生态系统。站在编程语言的角度,如果说C、C++和Java成就了PC Client时代,PHP、Ruby成就了Web时代,那么哪种语言将成就移动时代?借助本期榜单,我们一起来探秘“手机里的代码”,看看在火热的智能移动平台,哪些语言在唱主角。

Objective-C

本期的第8名。在今年二月的编程榜中,我们就以“Objective-C的咏叹调”为题介绍了它的历史发展和特性。在iPhone和App Store之前,由于苹果公司的特点和Mac平台的特殊要求,Objective-C一直在编程语言领域保持一种低调的形象。与Windows平台下的应用开发技术和编程语言的繁盛景象相比,Objective-C更像是孤独盛开在Mac平台上的技术奇葩。

但随着iPhone应用开发的火爆,除之前的Mac平台的开发者外,众多软件开发者由其他语言或平台转向Objective-C开发iPhone应用程序,带动Objective-C走向繁荣。在51CTO对iPhone开发团队139.ME的访谈中也提到:Objective-C能更多的被人所认知归功于iPhone。

Objective-C是C语言的一个扩展集,以C为基础,在语言中添加了一些实用的特性。对于有过C++或Java经验的开发者而言,会被Objective-C的简短而惊叹。基本上,所有的iPhone应用都需要使用Objective-C编写,并配合苹果提供的Cocoa和Xcode等工具。以下Objective-C版的Hello World:

 
    
  1. #import   
  2.  
  3. int main (int argc,const char *argv[])  
  4. {  
  5.     NSLog(@"Hello,World!")  
  6.  
  7.     return(0);  
  8.  
  9. }//main  
  10.  

Java

Java无处不在。在移动平台上,最初的J2ME就曾一度统治MTK时代的手机软件和游戏市场;在智能手机大行其道的今天,借助与Android平台的推动,Java再一次迎来在移动平台的春天。

一般地,Android系统分为三个层次:系统层、应用框架层和应用层。Android是基于Linux内核开发的针对智能移动设备的系统,底层即系统层由C/C++构成,应用框架层提供核心功能和应用层运行所必要的API框架,应用层则是Java语言编写的应用程序。Android平台引入了Dalvik虚拟机,由Java语言编写的应用运行与Dalvik之上。Dalvik并不是完全按照Java虚拟机规范来实现的,传统的Java程序是在JVM上运行Java字节码,而Dalvik虚拟机运行的则是专有的文件格式.dex文件。

Dalvik的引入是为了规避一些Oracle/Sun在Java知识产权方面的一些风险,虽然Android在Java程序的编译运行上有所改变,但总体而言,并未改变Java程序员的语法习惯和代码风格。凭借学习曲线的降低和Google的强力推动,使Android平台迅速吸引了大批其他传统平台的Java程序员加入,使得Android平台的应用数理得以快速增加,终端和平台也随之快速发展。

一般,Android应用程序的开发需要借助Eclipse和ADT等IDE和工具。更多关于Android开发相关文章可以参考51CTO移动开发频道相关栏目。

下面是本期编程语言排行榜的其他排名数据和趋势走向。
 

前10名编程语言趋势走向

其他编程语言及趋势

下面是本期榜单第21-50的编程语言排名

Position Programming Language Ratings
21 MATLAB 0.636%
22 Lua 0.612%
23 ABAP 0.597%
24 Object Pascal 0.556%
25 Go 0.548%
26 Scheme 0.508%
27 Fortran 0.477%
28 Tcl 0.423%
29 D 0.414%
30 COBOL 0.405%
31 Logo 0.397%
32 CL (OS/400) 0.371%
33 APL 0.366%
34 JavaFX Script 0.366%
35 R 0.365%
36 JScript.NET 0.330%
37 C shell 0.327%
38 ActionScript 0.326%
39 Scratch 0.325%
40 IDL 0.325%
41 Visual Basic .NET 0.323%
42 Haskell 0.312%
43 Alice 0.311%
44 Prolog 0.300%
45 Erlang 0.267%
46 Smalltalk 0.266%
47 Forth 0.256%
48 Awk 0.238%
49 ML 0.237%
50 Scala 0.235%

 

下面是第50到100的编程语言排名

ABC, Algol, Applescript, Bash, bc, Beta, C++/CLI, CFML, cg, Clean, Clipper, Cobra, cT, Curl, Dylan, Eiffel, Euphoria, F#, Factor, Groovy, Icon, Io, J, LabVIEW, LabWindows/CVI, MAD, MAX/MSP, Modula-2, Modula-3, MUMPS, Natural, Oberon, Objective Caml, Occam, Oz, PL/I, Postscript, PowerShell, Q, REALbasic, S, SIGNAL, SPSS, Squirrel, Standard ML, Verilog, VHDL, XBase, XSLT, Z shell

编程语言类别

下面给出了编程语言类别的一年变化趋势。

Category Ratings Nov 2010 Delta Nov 2009
Object-Oriented Languages 56.7% +2.4%
Procedural Languages 38.0% -3.5%
Functional Languages 3.6% +0.7%
Logical Languages 1.7% +0.4%

动态和静态语言趋势走向

Category Ratings Nov 2010 Delta Nov 2009
Statically Typed Languages 63.1% +4.1%
Dynamically Typed Languages 36.9% -4.1%

历期榜单回顾

  1. 10月编程语言排行榜:Java的混乱之治
  2. 9月编程语言排行榜:Perl 不走寻常路
  3. 8月编程语言排行榜:微软锋利的刀C#
  4. 7月编程语言排行榜:这里有支足球队
  5. 6月编程语言排行榜:框架之翼
  6. 5月编程语言排行榜:动态语言的前世今生
  7. 4月编程语言排行榜:Top20里的“陌生人”
  8. 3月编程语言排行榜:Fortran归来
  9. 2月编程语言排行榜:Objective-C的咏叹调