阅读更多

50顶
6踩

编程语言

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则精于业务逻辑的处理。

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

      前十名编程语言走势图

      前十名编程语言走势 

      其他语言及排名

       

      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%

       

       

      编程语言类型走势:

       

  • 大小: 46 KB
来自: 51CTO
50
6
评论 共 54 条 请登录后发表评论
14 楼 Allen 2010-06-08 13:35
Ruby似乎已经不像2007、2008年那样风生水起了,说明它已经进入了一个稳定发展的时期了?
13 楼 sytemper 2010-06-08 13:22
看来留言,我还是继续零分党吧
12 楼 85977328 2010-06-08 13:12
各语言都有他的特点了.好象没有可比性.
11 楼 mybreeze77 2010-06-08 12:43
bitray 写道
真好笑啊。java回到第一,竟然还是等号。前两月不是C超过java了嘛,为什么java会第一不是绿色向上箭头呢?

你是第1次看这个排名?
10 楼 JeffreyHsu 2010-06-08 12:41
跟去年的比?? 脑子坏了啊

难道编程语言的选择还跟月份有关???
9 楼 tamsiuloong 2010-06-08 12:34
bitray 写道
真好笑啊。java回到第一,竟然还是等号。前两月不是C超过java了嘛,为什么java会第一不是绿色向上箭头呢?

和去年同月比较的
8 楼 xuby 2010-06-08 12:02
这个排行,每年发布一次足够了,每月发布一次毫无必要,纯属吸引眼球的炒作。
7 楼 bitray 2010-06-08 11:37
liusheng112078 写道
bitray 写道
真好笑啊。java回到第一,竟然还是等号。前两月不是C超过java了嘛,为什么java会第一不是绿色向上箭头呢?

他对比去年吧


后面的百分比是和去年对比,前面的位置也是啊,这个排行榜真2
6 楼 lkj107 2010-06-08 11:18
挣钱才是硬道理
5 楼 jasongreen 2010-06-08 11:01
我个人还是看好go语言的
4 楼 ghyghoo8 2010-06-08 10:52
怎么感觉是在跟踪股票的走势。。。
3 楼 jasongreen 2010-06-08 10:50
他是和去年的同月相比。
2 楼 liusheng112078 2010-06-08 10:49
bitray 写道
真好笑啊。java回到第一,竟然还是等号。前两月不是C超过java了嘛,为什么java会第一不是绿色向上箭头呢?

他对比去年吧
1 楼 bitray 2010-06-08 10:43
真好笑啊。java回到第一,竟然还是等号。前两月不是C超过java了嘛,为什么java会第一不是绿色向上箭头呢?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • PCap02_DS000319_1-00.zip

    这是pcap02这款芯片的官方文档,包含两个文件,DB_PCap02A_Vol1_en.pdf和DB_PCap02A_Vol2_en.pdf

  • PCap02A_Vol1.pdf

    电容数字转换芯片PCAP02的数据手册,PCAP02芯片测量范围可从fF~nF,测量速度500k,测量原理为充放电时间,精度高,功耗低。四种电容测量模式,内外参考电容

  • pcap01评估板

    该评估板提供了一个完整的测量系统用于评估pcap01芯片,它包括一个主板,插入模块,一个机遇windows操作系统的评估软件,以及一个PICPROG编程设备。

  • tcpdump源码分析——抓包原理

    本篇我们从总体看下tcpdump工具的抓包原理,通过学习了解并掌握其实现的机制,为后续进一步底层操作做准备。 1.1.1.1  如何实现 先来看看包传递过来的流程,如下图。包从网卡到内存,到内核态,最后给用户程序使用。我们知道tcpdump程序运行在用户态,那如何实现从内核态的抓包呢? 这个就是通过libpcap库来实现的,tcpdump调用libpcap的api函数,由libpcap进入到内...

  • 单芯片电容测量方案PCAP01原理

    1 前言   对于电容传感器的测量来说,传统的电路方式有其无法克服的局限性。复杂的模拟电路设计,难以扩展的电容测量范围,都会给开发带来非常大的阻力。   德国acam公司专利的PICOCAP?测量原理则给电容测量提供了革命性的突破。在2011年推出了最新的带有内部DSP单片机的单芯片电容测量方案PCAP01, 这个芯片会使电容测量提高到一个前所未有的水平。   2.概

  • pcap文件解析(二)--初识IP包

    在上一篇我们简单认识pcap文件,现在我们来看看IP包的大致结构。 IP包 在开始之前给大家推荐一个非常好用的工具RFCView,通过这个工具我们只需要输入RFC(Request For Comments,基本的因特网通讯协定都有在RFC文件内详细说明)号码就能查看各种RFC文档了。 在RFC791中详细定义了IP包的数据结构,这里做大致介绍:  0 1 2 3 0 1 2 3 4 5

  • pcap文件格式及文件解析

    第一部分:PCAP包文件格式 一 基本格式:    文件头 数据包头数据报数据包头数据报...... 二、文件头:        文件头结构体  sturct pcap_file_header  {       DWORD           magic;       DWORD           version_major;       DWORD           ve

  • 以太网抓包工具(ethernet)

    非常好用的以太网抓包工具,用于以太网学习及分析。

  • Libpcap TCP UDP 抓包

    这个官方程序是比较好用的,实现了UDP,TCP的抓包。学习下~ #define APP_NAME "sniffex" #define APP_DESC "Sniffer example using libpcap" #define APP_COPYRIGHT "Copyright (c) 2005 The Tcpdump Group" #define APP_DISCLAIMER "THER

  • python抓包(sniff)-----实现wireshark抓包功能

    python嗅探工具(sniff)详解 安装scapy模块 打开DOS命令行 python -m pip install scapy sniff()函数 功能 数据嗅探 几个参数 iface: 指定在哪个网络接口上抓包 count: 表示要捕获数据包的数量。默认为0(不限制数量) filter: 流量的过滤规则。使用的是BPF的语法 prn: 定义回调函数,使用lambda表达式来写回调函数(当符合filter的流量被捕获时,就会执行回调函数) BPF过滤语法举例 只捕获某个IP主机进行交互的流量:host

  • SNIFF原理解析

    SNIFF原理解析本文出自:http://www.xfocus.org 作者: xundi (2001-10-01 15:00:00)http://fanqiang.chinaunix.net/a5/b2/20011001/1500001382.html2001-04-01.秋天的树.   一 前言     SNIFF真是一个古老的话题,关于在网络上采用SNIFF来获取敏感信息已经不是什么 新鲜事

  • Bluetooth Sniff 详解

    <br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br /> 作者:Sam (甄峰) sam_code@hotmail.com<br /> <br /> <br />前面讲了Blueooth Remote Control发送Sniff request,要求每5ms发送一个数据包。这篇详细介绍一下Bluetooth Sniff.<br /><br /> 在Sniff mode, Slave活动的占空比可能会降低。如果一个ACL逻辑传输的Slave

  • 用pcap编程(英文)

    原文链接 Programming with pcap Tim Carstens timcarst at yahoo dot com Further editing and development by Guy Harris guy at alum dot mit dot edu Ok, let's begin by defining who this document is writt...

  • SmartSniff 模拟器抓包分享

    SmartSniff 抓取手机模拟器包

  • python邮件自动发送------(带界面附源码)

    python邮件自动发送 注:仅用于学习,切莫做其他用途。 基础知识 SMTP 全称“简单邮件传输协议” 基于TCP/IP的协议 可以对连接进行认证,也可以不认证 可以对连接进行加密,也可以不加密 主要作用: 1、提交邮件。当用户在电脑上输入电子邮件信息时,电子邮件客户端会使用SMTP将用户输入的电子邮件提交至服务器,由该服务器负责将电子邮件发送至接收服务器。 2、传输邮件。电子邮件服务器使用SMTP来传输消息。每条消息中途都会经过互联网上的多台邮件服务器,直到到达负责接手电子邮件地址域(domain,

  • Scapy Sniffer的用法

     Sniff方法定义: sniff(filter="",iface="any", prn=function, count=N) filter的规则使用 Berkeley Packet Filter (BPF)语法,具体参考http://blog.csdn.net/qwertyupoiuytr/article/details/54670477 iface用来指定要在哪个网络接口上进行抓包

  • Scapy3.0 Documentation ( Usage )

    说明:写到这里来,只是因为原文链接打开太慢了,至于翻译什么的就不误导大家了,还是原文好看原文链接:http://phaethon.github.io/scapy/api/usage.html      UsageNoteThis section has been partially updated for scapy3k. Some code examples may not work direc...

  • sniff原理

    提到网络嗅探大家都知道sniffer了,sneff是嗅探的意思,sniffer自然就是嗅探器的含义了。Sniffer是利用计算机的网络接口截获目的地为其它计算机的数据报文的一种工具。嗅探器最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。嗅探器也是很多程序人员在编写网

Global site tag (gtag.js) - Google Analytics