欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

6月编程语言排行榜:框架之翼

程序员文章站 2024-01-09 14:25:10
...

TIOBE今天(67日)发布了最新一期的编程语言排行榜,在本期榜单中,曾夺得2009年年度编程语言的Google Go跌出前20名;TIOBE评论称,最初Google Go能获得如此成绩(Google Go推出三个月就获得了1.25%的增长),多数是出于人们的好奇心:一门由Google推出的编程语言。

6月编程语言排行榜:框架之翼
 6月编程语言排行榜前20名榜单

Google Go的确有其技术上的闪光点。Go自身支持并发编程,因此满足了对多处理器充分利用语言的需求;众多*程序员的参与其设计和代码改进也使得人们对它充满信心。但关键是,Go还没有在众多的编程语言中找到合适它的位置。

在这期编程榜中,Java重新回到榜首的位置,第二名至第五名分别是:CC++PHPVisual Basic。本期编程榜我们关注的主题是开发框架(Framework)。

《设计模式》中对框架的定义是:框架就是一组相互协作的类,对于特定的一类软件,框架构成了一种可重用的设计。使用开发框架可以减少重复开发工作量、缩短开发时间,降低开发成本。同时,框架的引入和使用还可以使程序设计更加合理和稳定,利于二次开发和维护。框架的使用在Web开发中应用尤为广泛。对于一个特定的项目,选择合适的语言平台及框架会使你如虎添翼。

Ruby——因框架而流行

Ruby是一门因开发框架而走红的语言。没错,是Rails框架才使Ruby变得如此热门。最初Ruby只是其创始人Matz对理想编程语言的一个实践,1993年开始编写,199512月才发布第一个版本。经过漫长的发展,自2000年后才被日文以外的开发者了解。

Ruby是一门纯面向对象的语言,开发效率非常高。减少编程时候的不必要的琐碎时间,令编写程序的人高兴,是Matz设计Ruby语言的一个首要的考虑。

Ruby on Rails之前,Rails的创始人DHH曾尝试过使用PHP进行框架设计,但他最终选择了Ruby。灵活高效的Ruby语言搭配良好框架设计思想,DHHRails的解释是最近的一条路。从Rails这个名字我们可以看出,DHH希望软件开发可以沿着一个正确的轨迹不断向前,告别复杂的左转右转和讨厌的红灯;他也是按照这样的想法架构整个Rails。目前,Ruby on Rails已经进阶主流Web开发技术,使用其开发的各种网站不计其数,详细可以参考51CTO之前的报道《TOP 50 Ruby on Rails开发的网站》。关于Ruby on Rails创始人DHH的更多介绍请参考51CTO的创始人小传《Ruby on Rails创始人DHH:架构是将复杂的问题简单化》 

    PHP——最流行最泛滥

    上文我们曾提到,DHH曾尝试过使用PHP进行最初的框架设计,但他最后放弃了PHP。这里面涉及到的不是只编码效率和DSL能力,更多的是编程语言底层机制和运行效率。

    PHP每次HTTP请求都要初始化资源,这个过程的开销非常大。尽管PHP解析器的运行速度快速且没有缺陷,但一旦使用框架,那么每次请求时初始化整个框架使性能的下降非常厉害,当使用一个很复杂的PHP框架的结果就是整体性能严重下降;同时,PHP语言本身的问题造成了PHP添加跨请求的高级特性相当困难,这是PHP本身一个很大的限制,但是反过来说,正是这种限制使得PHP始终保持在一个比较简单的Web语言上面,而正是这一点才是PHP得以成为互联网流行Web编程语言的原因。

    但作为最流行的Web编程语言,数量众多的PHP程序员无法拒绝框架的诱惑,这也催生了PHP开发框架的泛滥。在51CTO对PHPCMS创始人钟胜辉的采访中他谈到:PHP的框架跟ROR的情况有所不同,多而混乱;他同时提到:从长远来看,一个优秀的框架可以延长一个项目的寿命,降低维护和二次开发的成本。

    目前主流的PHP开发框架主要有:Zend Framework、CakePHP、CodeIgniter、Symfony等,国内也涌现出ThinkPHP、FleaPHP等优秀PHP框架。对于PHP开发者而言,如何在众多框架中挑选一个适合自己项目的成了一个难题。关于PHP框架的介绍和选择,可以参考51CTO之前的报道《国外十大最流行PHP框架排名》和《几款主流PHP框架的优缺点评比》。

    在Web开发领域,关于PHP和Ruby语言的争论一直存在,详细请参考51CTO的策划专题:大师论战Web开发:Ruby和PHP谁将称王?

    还有很多

    不只是Ruby和PHP,在编程语言排行榜的众多语言中,几乎所有主流语言都有多种自己的框架,比如Python的Django、JavaScript的jQuery、C++的MFC以及著名的Java开发框架Spring、Hibernate、Struts等。事实是,开发框架的使用已成为当前软件开发的主流应用形态。

    同一门语言的不同框架往往都能实现相同的功能,根据自身项目和框架的特点进行选择尤为重要。在JavaScript方面,Dojo面向对象功能强大,提供丰富的库及UI控件;jQuery则以简洁、快速著称,对DOM对象和事件处理尤为擅长;prototype则显得更为轻量,善于处理Ajax的交互过程。

    有时,基于同一种语言,不同的框架也具有不同的应用场景,比如对Java而言,Hibernate专注于数据层的持久化,Struts则精于业务逻辑的处理。

      框架的诞生和演进不仅拓展了编程语言的应用场景和范围,还大幅提高了基于语言平台的项目开发和维护效率。框架使语言如虎添翼,善用框架,可以使你的项目锦上添花。

      前十名编程语言走势图

      6月编程语言排行榜:框架之翼 

      其他语言及排名

       

      Position Programming Language Ratings
      21 Go 0.519%
      22 ActionScript 0.501%
      23 Transact-SQL 0.486%
      24 RPG (OS/400) 0.443%
      25 Bourne shell 0.426%
      26 Ada 0.416%
      27 D 0.398%
      28 JavaFX Script 0.393%
      29 FoxPro/xBase 0.388%
      30 COBOL 0.380%
      31 Fortran 0.376%
      32 Haskell 0.365%
      33 S-lang 0.347%
      34 Alice 0.340%
      35 LabVIEW 0.333%
      36 Logo 0.330%
      37 Scratch 0.329%
      38 Tcl/Tk 0.321%
      39 J 0.305%
      40 NXT-G 0.301%
      41 Forth 0.294%
      42 Prolog 0.254%
      43 Scala 0.253%
      44 Groovy 0.251%
      45 Caml/F# 0.248%
      46 CL (OS/400) 0.240%
      47 Erlang 0.234%
      48 Q 0.224%
      49 Smalltalk 0.222%
      50 ML 0.213%

       

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

      ABC, Algol, Alpha, APL, Applescript, Awk, Beta, C shell, cg, Clean, cT, Curl, Dylan, Eiffel, Euphoria, Factor, Falcon, Focus, Heron, Icon, IDL, Informix-4GL, Io, LabWindows/CVI, Lingo, MAD, Maple, Mathematica, MAX/MSP, Modula-2, MS-DOS batch, MUMPS, Natural, Occam, OpenCL, Oz, PL/I, Postscript, PowerBuilder, Progress, R, REALbasic, Revolution, REXX, SIGNAL, SPSS, VBScript, Verilog, VHDL, XSLT

      编程语言类别

      下面给出了编程语言类别的一年变化趋势,面向对象编程(Object-Oriented Languages)依然占到编程语言类型的半壁*。

       

      Category Ratings Jun 2010 Delta Jun 2009
      Object-Oriented Languages 55.5% +0.3%
      Procedural Languages 39.9% -1.0%
      Functional Languages 3.2% +0.2%
      Logical Languages 1.5% +0.5%


      Category Ratings Jun 2010 Delta Jun 2009
      Statically Typed Languages 62.8% +3.5%
      Dynamically Typed Languages 37.2% -3.5%

       

       

      编程语言类型走势:

      6月编程语言排行榜:框架之翼