5月编程语言排行榜:动态语言的前世此生

【51CTO独家特稿】TIOBE近日发布了2010年5月的编程语言排行榜,上期榜单C语言反超Java,本期C继续以18.186%的份额领跑,Java则位居第二。排名三到五位的依然是C++、PHP、VB,如下是本期编程语言排行榜前十名榜单:javascript

更多榜单回顾,欢迎访问:51CTO编程语言排行榜java

2010年5月编程语言排行榜榜单
2010年5月编程语言排行榜榜单
程序员

仔细观察本期榜单的Top10,咱们会发现其中半数是动态语言,它们是:PHP、Visual Basic、Python、Perl和JavaScript。今天咱们就一块儿走进动态语言的前世此生。编程

前10名编程语言趋势走向 
前10名编程语言趋势走向
编程语言

何谓动态?ide

对于动态语言,网上比较流行的说法是:程序在运行时能够改变其结构,新的函数能够被引进,已有的函数能够被删除,即程序在运行时能够发生结构上的变化。咱们能够理解成:直接被解释执行的语言称为动态语言。而须要编译环境将程序转换为其它的中间编码再执行的语言称为静态语言。函数

事实上,动态语言的根本是在语言设计之初的编译策略选择,即:编译器能对一段程序做出哪些断定。若是一个语言使用的编译策略支持编译器静态决定某个问题,咱们认为这个语言使用了一个静态(static)策略,或这说这个问题能够在编译时刻(compile time)决定。另外一方面,一个只容许在运行程序的时刻作出决定的策略成为动态策略(dynamic policy),或这被认为须要在运行时刻(run time)做出决定,(以上摘自《编译原理 2ed》)。一门语言动态与否的重点是在编译和运行,这在应用场景方面所产生的不一样与程序员的工做密切相关:你能作什么,在什么时候作。性能

动态语言的历史优化

世界上第一门动态语言(也是世界上第二门编程语言)是Lisp,其后不少语言都从Lisp身上继承了必要的优点基因(好比Smaltalk、Python、Ruby等),动态性就是其中之一。上世纪七十年代,Smalltalk语言出现,集合了面向对象和动态性得到当时开发界的承认;1986年Perl出现,高效的开发效率和极少的语法限制得到了大量程序员的欢迎,也使更多人领教了动态语言的魅力。this

目前,主要的动态编程语言有:PHP、Visual Basic、Ruby、Python、JavaScript、Groovy和Perl等,从动态与静态语言趋势图能够看出,动态语言已经逐渐转变成主流的编程语言,它们是Web应用开发的主力,并以一种比较轻松的姿态渐渐走进软件开发的其余角落。动态语言近年的高速发展与其自身特色和IT界的高速发展有很大关系。

动态语言与静态语言走势图 
近十年动态语言与静态语言走势图

因何而动?

与静态语言不一样,动态语言对类型的要求并不十分严格,代码简洁自由,通常的动态语言多为动态类型和弱类型,自身即支持泛型编程(这里的类型概括并不绝对,通常认为Python属强类型语言,Groovy支持静态类型)。动态语言秉承的一个理念是:优化人的时间而不是机器的时间。所以动态语言会为提升程序员的生产力方面竭尽全力,但对程序性能方面的影响也不可忽视。

51CTO一直提倡从应用场景和程序员生产力两个方面来评价一门语言或技术。站在程序员的角度,使用动态语言进行程序开发要比静态编译型语言更加轻松自如,没有过多的语法和编译限制。咱们常常能够听到从其余语言转向Ruby或Python的人提到“编程的乐趣”,这种乐趣是源自动态语言更接近人的思惟(而不是机器思惟),更符合项目需求流程而不是项目实现流程;一样一个功能,动态语言能够用更小的代码量来实现。动态语言对程序员生产力的提升,是其大行其道的主要缘由。

在性能方面,动态语言没有太大的优点,但动态语言的理念是:优化人的时间而不是机器的时间。提升开发者的生产力,宁可牺牲部分的程序性能或者购买更高配置的硬件。随着IT业的不断发展和摩尔定律的做用,硬件相对于人件一直在贬值,这个理念便有了合理的现实基础。从动态与静态语言趋势图能够看出,动态语言的抬升自2002年开始,2004年达到高潮,这一区间也正是计算机硬件价格大幅下降、互联网高速发展的时段。动态语言的流行,事实上是动态语言的相关特性迎合了互联网和IT界的发展,提升了程序员的生产力;虽然具备种种性能方面的不足,但很明显,动态语言的优势打败了这些缺点。

其余编程语言及趋势

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

其余编程语言及趋势 

其余编程语言及趋势 

 

 如下是本期第51-100的语言排名

ABC, Algol, APL, Applescript, Awk, Beta, cg, Clean, cT, Dylan, Eiffel, Euphoria, Factor, Falcon, Focus, Heron, Icon, IDL, Inform, Informix-4GL, Io, LabWindows/CVI, Lingo, LotusScript, LPC, MAD, Maple, Mathematica, MAX/MSP, Modula-2, Modula-3, MS-DOS batch, MUMPS, Natural, Occam, Oz, PL/I, Postscript, Progress, Q, R, Revolution, REXX, Sed, Seed7, SIGNAL, SPSS, VBScript, VHDL, XSLT

 

【2010年编程语言排行榜回顾】

  1. 4月编程语言排行榜:Top20里的“陌生人”
  2. 2010年3月编程语言排行榜:Fortran归来
  3. 2月编程语言排行榜:Objective-C的咏叹调
  4. 1月编程榜发布:Google Go意外夺得年度编程语言
相关文章
相关标签/搜索