阅读更多

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 条 请登录后发表评论
54 楼 lordtang 2010-06-11 10:00
对PHP的点评完全是瞎扯,搞得自己很懂似的!
53 楼 S姚F 2010-06-10 22:20
JAVA第一固然高兴,因为本人也是放弃了.NET和ASP去学JAVA的。
但还是有点悲哀啊 ,我们是程序员,不是JAVA通 !
52 楼 pudong 2010-06-10 11:19
很不喜欢大家把自己界定为学java的之类的,虽然我也主要用java,但我从不认为java是我的专业,我的专业是编程。

不管java是不是你的主要语言,甚至你的第一次给了java,当java射出的精华让你感觉到恶心的时候,你应该勇敢的骂出声来。就像我们的祖国。你们被欺骗了,让java深入人心这是种舆论攻势是商业政治在运作的结果,厂商、培训机构、他们都认为java对于他们的市场地位更加有利。很多无法获取更多信息的人,就把java视作唯一选择,甚至把一些其他语言者视为异教徒,就像我们的祖国。

有人可能会问,你说了这么多,你不还是在用java。是啊,我还在用java,就像我还在我的祖国。
jasongreen 写道
llfzy 写道
一直学java。。。。。。希望java前途光明!

myzhijie 写道
JAVA重新回到榜首 很开心!

longer042 写道
在怎么说我也相信java 目前不会落幕,现在觉得是主流。除非有一款nb的编程语言现世。取代java,那个时候又是一次历史性的改革了。。。像ruby这些动态编程语言起不了什么大风浪的。。能起风浪的就数微软的。net了。。只可惜不支持linux,大大限制了。net的发展。。。


很不喜欢大家把自己界定为学java的之类的,虽然我也主要用java,但我从不认为java是我的专业,我的专业是编程。

不管java是不是你的主要语言,甚至你的第一次给了java,当java射出的精华让你感觉到恶心的时候,你应该勇敢的骂出声来。就像我们的祖国。你们被欺骗了,让java深入人心这是种舆论攻势是商业政治在运作的结果,厂商、培训机构、他们都认为java对于他们的市场地位更加有利。很多无法获取更多信息的人,就把java视作唯一选择,甚至把一些其他语言者视为异教徒,就像我们的祖国。

有人可能会问,你说了这么多,你不还是在用java。是啊,我还在用java,就像我还在我的祖国。


精辟!屁精!
51 楼 沙鸥001 2010-06-10 10:19
hot66hot 写道
szanlin 写道
引用
很不喜欢大家把自己界定为学java的之类的,虽然我也主要用java,但我从不认为java是我的专业,我的专业是编程。

不管java是不是你的主要语言,甚至你的第一次给了java,当java射出的精华让你感觉到恶心的时候,你应该勇敢的骂出声来。就像我们的祖国。你们被欺骗了,让java深入人心这是种舆论攻势是商业政治在运作的结果,厂商、培训机构、他们都认为java对于他们的市场地位更加有利。很多无法获取更多信息的人,就把java视作唯一选择,甚至把一些其他语言者视为异教徒,就像我们的祖国。

有人可能会问,你说了这么多,你不还是在用java。是啊,我还在用java,就像我还在我的祖国。


+1

for(;;){
new Logger(this.getClass()).info("顶起来。。。");
}

+1

工具是拿来用的,不是拿来限制自己的。
50 楼 burnquist 2010-06-10 09:20
选择了JAVA就一直走下去吧
49 楼 asiazhang 2010-06-09 18:42
1000.times do
  puts "顶"
end
48 楼 superscorpio 2010-06-09 17:40
这个排名可靠性太差,中国的统计了吗?

光看排名没有意义啊!
47 楼 hot66hot 2010-06-09 16:19
szanlin 写道
引用
很不喜欢大家把自己界定为学java的之类的,虽然我也主要用java,但我从不认为java是我的专业,我的专业是编程。

不管java是不是你的主要语言,甚至你的第一次给了java,当java射出的精华让你感觉到恶心的时候,你应该勇敢的骂出声来。就像我们的祖国。你们被欺骗了,让java深入人心这是种舆论攻势是商业政治在运作的结果,厂商、培训机构、他们都认为java对于他们的市场地位更加有利。很多无法获取更多信息的人,就把java视作唯一选择,甚至把一些其他语言者视为异教徒,就像我们的祖国。

有人可能会问,你说了这么多,你不还是在用java。是啊,我还在用java,就像我还在我的祖国。


+1

for(;;){
new Logger(this.getClass()).info("顶起来。。。");
}
46 楼 select*from爱 2010-06-09 14:44
好奇心:一门由Google推出的编程语言。
kuchaguangjie 写道
szanlin 写道
引用
很不喜欢大家把自己界定为学java的之类的,虽然我也主要用java,但我从不认为java是我的专业,我的专业是编程。

不管java是不是你的主要语言,甚至你的第一次给了java,当java射出的精华让你感觉到恶心的时候,你应该勇敢的骂出声来。就像我们的祖国。你们被欺骗了,让java深入人心这是种舆论攻势是商业政治在运作的结果,厂商、培训机构、他们都认为java对于他们的市场地位更加有利。很多无法获取更多信息的人,就把java视作唯一选择,甚至把一些其他语言者视为异教徒,就像我们的祖国。

有人可能会问,你说了这么多,你不还是在用java。是啊,我还在用java,就像我还在我的祖国。


+1

while(1==1) {
   echo('+1\n')
}

45 楼 justjavac 2010-06-09 14:39
caowei3047 写道
这个排名太不不准了吧?javascript几乎每个开发者都用,java,.net程序员等等,怎么就这么靠后,太离谱了吧

SQL 也是每个程序员必须掌握的,不过,很多程序也是不需要数据库的。
44 楼 jiu276584251 2010-06-09 12:57
们的分工细节分的很规范,OK?而且中国的程序员的数量是很少的
caowei3047 写道
这个排名太不不准了吧?javascript几乎每个开发者都用,java,.net程序员等等,怎么就这么靠后,太离谱了吧

只有Web才有可能用到JavaScript的!比如像硬件编程,桌面程序,操作系统等,都用不到JavaScript啊
43 楼 kuchaguangjie 2010-06-09 12:46
szanlin 写道
引用
很不喜欢大家把自己界定为学java的之类的,虽然我也主要用java,但我从不认为java是我的专业,我的专业是编程。

不管java是不是你的主要语言,甚至你的第一次给了java,当java射出的精华让你感觉到恶心的时候,你应该勇敢的骂出声来。就像我们的祖国。你们被欺骗了,让java深入人心这是种舆论攻势是商业政治在运作的结果,厂商、培训机构、他们都认为java对于他们的市场地位更加有利。很多无法获取更多信息的人,就把java视作唯一选择,甚至把一些其他语言者视为异教徒,就像我们的祖国。

有人可能会问,你说了这么多,你不还是在用java。是啊,我还在用java,就像我还在我的祖国。


+1

while(true) {
   echo('顶\n')
}
42 楼 szanlin 2010-06-09 12:41
引用
很不喜欢大家把自己界定为学java的之类的,虽然我也主要用java,但我从不认为java是我的专业,我的专业是编程。

不管java是不是你的主要语言,甚至你的第一次给了java,当java射出的精华让你感觉到恶心的时候,你应该勇敢的骂出声来。就像我们的祖国。你们被欺骗了,让java深入人心这是种舆论攻势是商业政治在运作的结果,厂商、培训机构、他们都认为java对于他们的市场地位更加有利。很多无法获取更多信息的人,就把java视作唯一选择,甚至把一些其他语言者视为异教徒,就像我们的祖国。

有人可能会问,你说了这么多,你不还是在用java。是啊,我还在用java,就像我还在我的祖国。


+1
41 楼 yidao620c 2010-06-09 11:00
我喜欢JAVA这个平台。
会用的太多,精通的很少。
尔他东南西北风,我自岿然不动。
继续研究中。。。
40 楼 jasongreen 2010-06-09 10:31
llfzy 写道
一直学java。。。。。。希望java前途光明!

myzhijie 写道
JAVA重新回到榜首 很开心!

longer042 写道
在怎么说我也相信java 目前不会落幕,现在觉得是主流。除非有一款nb的编程语言现世。取代java,那个时候又是一次历史性的改革了。。。像ruby这些动态编程语言起不了什么大风浪的。。能起风浪的就数微软的。net了。。只可惜不支持linux,大大限制了。net的发展。。。


很不喜欢大家把自己界定为学java的之类的,虽然我也主要用java,但我从不认为java是我的专业,我的专业是编程。

不管java是不是你的主要语言,甚至你的第一次给了java,当java射出的精华让你感觉到恶心的时候,你应该勇敢的骂出声来。就像我们的祖国。你们被欺骗了,让java深入人心这是种舆论攻势是商业政治在运作的结果,厂商、培训机构、他们都认为java对于他们的市场地位更加有利。很多无法获取更多信息的人,就把java视作唯一选择,甚至把一些其他语言者视为异教徒,就像我们的祖国。

有人可能会问,你说了这么多,你不还是在用java。是啊,我还在用java,就像我还在我的祖国。
39 楼 murainwood 2010-06-09 10:15
yourgame 写道
murainwood 写道
justjavac 写道
murainwood 写道
longer042 写道
在怎么说我也相信java 目前不会落幕,现在觉得是主流。除非有一款nb的编程语言现世。取代java,那个时候又是一次历史性的改革了。。。像ruby这些动态编程语言起不了什么大风浪的。。能起风浪的就数微软的。net了。。只可惜不支持linux,大大限制了。net的发展。。。

有钱的主儿用Unix,Linux只是便宜货。

.net微软烧了那么多钱,都无法在企业应用超越java,ruby成不了气候。

Sun烧了那么多钱,都无法在桌面领域超越C#

"一次编写,到处运行"

什么时候.net的 C#你给我实现看看.你c#再这么桌面也只是在windows里面桌面,java桌面可以跨平台.

绝大多数不用Linux桌面的群众表示毫无压力。当然,对于那些Linux伪粉,一般只要面试的时候出一道上机Shell编程题就能拍掉。哈哈。
38 楼 dylan_cherie 2010-06-09 10:14
没啥意义,就一乐
37 楼 jackieban 2010-06-09 09:55
NO NO 像国外他们分的很清楚,javascript他们并不是每个程序员都写,他们的分工细节分的很规范,OK?而且中国的程序员的数量是很少的
36 楼 yaoyuande01 2010-06-09 09:07
说实话,小编,你发这个排行真TMD月经……
看看都搞成什么样子了!
35 楼 caowei3047 2010-06-09 09:06
这个排名太不不准了吧?javascript几乎每个开发者都用,java,.net程序员等等,怎么就这么靠后,太离谱了吧

发表评论

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

相关推荐

  • 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介绍和STM32模拟SPI驱动

    电容测量芯片PCAP介绍和代码

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

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

  • pcap01评估板

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

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

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

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

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

  • 以太网抓包工具(ethernet)

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

  • linux网络报文发送前加包头,linux下网络监听与发送数据包的方法(即libpcap、libnet两种类库的使用方法)...

    linux下可以用libpcap函数库实现监听数据包,使用libnet 函数库发送数据包安装:在命令行下apt-get install 就可以了libpcap的使用:/*author hjjdate 2011-1-21function:capture packet with the ruler and output the packet informationmodify 2011-1-23fun...

  • 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来获取敏感信息已经不是什么 新鲜事

  • python实现嗅探

    函数sniff()中可以使用多个参数,下面先来了解其中几个比较重要参数的含义。 (1)count:表示要捕获数据包的数量。默认值为0,表示不限制数量。 (2)store:表示是否要保存捕获到的数据包,默认值为1 (3)prn:这个参数是一个函数,这个函数将会应用在每一个捕获到的数据包上。 如果这个函数有返回值,将会显示出来。默认是空; 返回一个数据包信息 (4)iface:表示要使用的网卡或者网卡列表。 sniff()还支持了过滤器的使用 这个过滤器使用了一种功能非常强大的过滤语法——“伯克利

  • 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 Scapy-sniff函数

    sniff(count=0, store=1, offline=None, prn=None, filter=None, L2socket=None, timeout=None, opened_socket=None, stop_filter=None, iface=None) cou...

  • 编译报错及解决

    two   or   more   data   types   in   declaration   of   `col   出现这种错误主要是缺失《分号》

  • 用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使用手册

    For both filter types, you can add one or more filter strings (separated by spaces or CRLF) in the following syntax:  [include | exclude] : [local | remote | both] : [tcp | udp | tcpudp | icmp | all] ...

  • 遇到一个STM32中断的坑,记录一下(和NVIC的抢占位设置有关)

    事情是这样的,我有个仪表没有按键没有显示,所有的参数和校准等操作都要通过485来实现。我把以前的代码拷过来直接用,大致的代码如下图: 而校准程序大概如下:     调试的时候发现,用串口发送校准命令的时候,程序就挂在了while(ADC.flag==0)上面。经过一番检查,发现我这ModbusWrite()函数本来就属于TIM4的中断服务函数,而我确要在TIM4的中断服务函数里面等待只...

  • c语言根据头部信息判断文件类型,C语言解析pcap文件得到HTTP信息实例

    程序功能为解析由Wireshark生成的pcap文件。实现步骤:1)用Wireshark软件抓包得到test.pcap文件2)程序:分析pcap文件头 -> 分析pcap_pkt头 -> 分析帧头 -> 分析ip头 -> 分析tcp头 -> 分析http信息#include#include#include#include#include#define BUFSIZE ...

Global site tag (gtag.js) - Google Analytics