Tiobe近日公布了2010年7月的编程语言排行榜,本期榜单中的显著变化是:Objective-C排名大幅提升,它的流行当归功于iPhone 的成功,因为Objective-C一直被用于编写iPhone应用程 序。
前十位排名仍然没有变化,分别是:Java、C、C++、PHP、 C#、Visual Basic、Python、Perl、Objective-C、Javascript。其中C#、(Visual) Basic、JavaScript有轻微调整。
前50名列表:
Position Jul 2010 |
Position Jul 2009 |
Delta in Position | Programming Language | Ratings Jul 2010 |
Delta Jul 2009 |
Status |
---|---|---|---|---|---|---|
1 | 1 | Java | 18.673% | -1.78% | A | |
2 | 2 | C | 18.480% | +1.16% | A | |
3 | 3 | C++ | 10.469% | +0.05% | A | |
4 | 4 | PHP | 8.566% | -0.70% | A | |
5 | 6 | C# | 5.730% | +1.19% | A | |
6 | 5 | (Visual) Basic | 5.516% | -2.27% | A | |
7 | 7 | Python | 4.217% | -0.22% | A | |
8 | 8 | Perl | 3.099% | -1.10% | A | |
9 | 21 | Objective-C | 2.498% | +1.99% | A | |
10 | 9 | JavaScript | 2.432% | -1.08% | A | |
11 | 11 | Delphi | 2.323% | +0.33% | A | |
12 | 10 | Ruby | 1.982% | -0.59% | A | |
13 | 12 | PL/SQL | 0.772% | -0.12% | A | |
14 | 13 | SAS | 0.701% | -0.09% | A | |
15 | 15 | Pascal | 0.639% | -0.07% | A-- | |
16 | 17 | Lisp/Scheme/Clojure | 0.622% | +0.01% | B | |
17 | 20 | MATLAB | 0.581% | +0.07% | B | |
18 | 16 | ABAP | 0.548% | -0.15% | B | |
19 | 19 | Lua | 0.535% | +0.00% | B | |
20 | 28 | PowerShell | 0.493% | +0.17% | B |
Position | Programming Language | Ratings |
---|---|---|
21 | Go | 0.490% |
22 | RPG (OS/400) | 0.471% |
23 | ActionScript | 0.468% |
24 | Transact-SQL | 0.464% |
25 | D | 0.461% |
26 | FoxPro/xBase | 0.392% |
27 | COBOL | 0.382% |
28 | Ada | 0.379% |
29 | JavaFX Script | 0.349% |
30 | Fortran | 0.347% |
31 | Alice | 0.347% |
32 | Bourne shell | 0.343% |
33 | LabVIEW | 0.335% |
34 | Haskell | 0.324% |
35 | S-lang | 0.320% |
36 | Scratch | 0.314% |
37 | Logo | 0.312% |
38 | NXT-G | 0.306% |
39 | Tcl/Tk | 0.305% |
40 | Forth | 0.268% |
41 | Prolog | 0.236% |
42 | Groovy | 0.224% |
43 | CL (OS/400) | 0.219% |
44 | Scala | 0.219% |
45 | Caml/F# | 0.218% |
46 | Erlang | 0.217% |
47 | C shell | 0.213% |
48 | cT | 0.211% |
49 | ML | 0.205% |
50 | Smalltalk | 0.198% |
看到本期编程榜的标题你也许会觉得奇怪,编程语言和足球,他们之间会有什么联系吗?
世界杯让每个球迷都过足了瘾,球星与球队,对手与战术,胜利与失败,这都是足球的魅力。在本期编程语言排行榜的选题规划中,我们想将各种编程语 言组成一支最佳阵容,把应用场景当成假想敌,会是怎样一种情形。于是,有了这期编程语言与足球混搭的编程榜。
主流编程语言组成的最佳阵容
这期编程榜,我们将应用场景锁定在Web应用开发领域。这里涉及大量的前端展示和交互、复杂的业务处理逻辑以及高效、稳定可靠的后端Web服务 要求。这是绝大多数Web项目的需求描述,如果将其作为对手,我们会排出以下阵型。
前锋 :HTML、Javascript;(替补:Flash、Silverlight)
中场 :Java、C#、PHP、Ruby;(替补:Python、VB)
后防 :C、C++、F#、Perl;(替补:Scala、Erlang)
门将 :汇编语言
怎么样,这绝对是一只全明星的最佳阵容。你也许会费解,为何会如此安排?且听我慢慢道来。
锋线 = 前端
Web应用的前端需求大家都很清楚,我们需要展示内容,完成与用户的交互。这看起来简单,但在Web前端技术份那个没,留给我们排兵布阵的空间 一直不是很大。
HTML+JS,这是绝大多数网站的首选;当然,我们也可以选择Flash或者Silverlight等RIA技术,但HTML简单直接,效率毋庸置 疑;JavaScript也已发展的足够强大,几乎可以胜任所有的交互和消息传递工作;另外,JavaScript还有jQuery、ExtJS等优秀框 架,盘带和过人技术一流。
中场 = 业务层
中场是一个球队进攻的发动机,在Web开发中也是整个项目的应用核心。相比锋线,中场可以选择的空间更大些。Java、C#、PHP、 Ruby,每一个都是当今最为流行的编程语言;也有Python、VB等替补也相当强悍。
Java的强大不言而喻。在Web开发领域,Java拥有Struts、Spring、EJB等经典战术组合,可以完成绝大多数核心业务的需 求;值得一提的是Java在前端的表现也堪称专业,JSF、MyFaces等框架可以很好的衔接锋线与中场。唯一的不足之处是Java自身有点缺乏活 力,Sun被Oracle收购后,关于Java社区和JCP的诟病越来越多,Java 7迟迟未到;过多的框架选择也使Java有时有些混乱。但无论怎样,Java仍然是中场核心,绝对的王者。
依靠微软和.NET框架的强大支持,如今的C#足以与Java并齐形成中场的双核心。在Web方面,使用C#进行ASP.NET开发,结合 Visual Studio,C#可以高效、简单、易用的完成各种业务逻辑的开发。但C#并不完美,作为微软这个俱乐部的球员,C#有点独,你懂的。
看过中场核心,我们在看看两条边路。PHP,当今最流行的Web开发语言。强大的人气和过硬的技术,有其穿插跑动、套边传中,几乎一个人就可以 盘活整个进攻。一般的Web需求都可以通过PHP获得很好的解决。另外,作为LAMP黄金组合的成员,PHP的另一个优点的是身价不高,开发效率很高。
在PHP这个位置上我们还有一个选择是Visual Basic,作为ASP.NET的另一种实现语言,VB也足够优秀,可惜,我们有任劳任怨的PHP了。
说说我们的另一个边锋Ruby。这是近年兴起的一门语言。它简洁、灵活,编码轻松愉快;更为可贵的是Ruby有一套堪称杀手应用的Rails框 架,可以在整个项目中流程的梳理进攻,提高节奏。关于Ruby的更多报道请参考去年十月的编程语言排行榜《Ruby稳步提升 》。
后防 = 数据层+Web服务层
我们很难以足球的阵型来用语言严格定义后防线,但所有Web应用的后端服务、数据相应、性能和稳定性要求都集中在这一层。事实是,Java有 Hibernate等相对完美的解决方案可以完成数据的持久性要求;所以更多时候,我们考虑后防作为WebService的一面,性能、稳定和安全性是其 基本要求。
从这个角度讲,我们这个阵容里的后防核心是谁呢?无疑是C语言。作为2008年的年度编程语言,已有30多年历史的C丝毫不显老态,仍然在多数 项目和系统中发挥这最为重要的作用。如今多数对性能和稳定性要求苛刻的Web应用中仍然使用C作为底层核心。
与C相似,C++也是历史悠久但仍旧强悍的一员;与C不同的是,C++面向对象的特性使其独步于复杂应用场景需求之间;连Java、C#等大牛 都是师承自C++。目前,C++依然是系统底层、服务层、游戏开发等面向高效的系统级应用开发的强者。
随着网络应用的发展,当前的Web应用正面临高并发高负载的强大压力。在并行计算方面,函数式编程语言是目前多核心多线程最好的解决方案。在这 个位置上,F#虽然年轻,但也发展比较完备的语言,可以首发。当然,强于并发的还有历史悠久的Erlang和后起之秀Scala,也值得考虑。
最后我们再看看Perl,这门脚本语言简洁明快,能胜任系统级、数据交互和应用层等多各位置。特别是大型Web应用,涉及到与Unix和 Linux系统管理交互时,Perl是我们的首选。
门将这个位置一直比较头疼。在真实的Web应用中,上一个硬件防火墙是最为恰当的选择。但硬要在编程语言里挑一个,我会选择汇编语言。因为它可 以直接同底层硬件进行交互,直接访问存储器和I/O端口且不受编译器的限制。
如果C、C++等都无法满足你的需求,那就考虑一下汇编语言,虽然容易产生bug、不宜维护和编码,开发效率极低,但汇编是最直接最高效的保 障,能很好的把握一个应用程序的底线和根基。
下面是7月编程语言排行榜的详细排名和趋势情况。
下面是第50到100的编程语言排名
ABC, Algol, APL, Applescript, Awk, Beta, cg, Clean, Curl, Dylan,Eiffel, Euphoria, Factor, Focus, Heron, Icon, IDL, Informix-4GL, Io, J,J#, LabWindows/CVI, Lingo, MAD, Maple, Mathematica, MAX/MSP, Modula-2,Modula-3, MS-DOS batch, MUMPS, Natural, Occam, Oz, PL/I, Postscript,PowerBuilder, Progress, Q, R, REALbasic, Revolution, REXX, SIGNAL,Smarty, Spark, SPSS, VBScript, VHDL, XSLT
编程语言类别
下面给出了编程语言类别的一年变化趋势,面向对象编程(Object-Oriented Languages)依然占到编程语言类型的半壁江山。
Category | Ratings Jul 2010 | Delta Jul 2009 |
---|---|---|
Object-Oriented Languages | 55.9% | +1.2% |
Procedural Languages | 39.7% | -1.5% |
Functional Languages | 3.0% | +0.1% |
Logical Languages | 1.4% | +0.2% |
Category | Ratings Jul 2010 | Delta Jul 2009 |
---|---|---|
Statically Typed Languages | 64.0% | +3.9% |
Dynamically Typed Languages | 36.0% | -3.9% |
英文原文:TIOBE Programming Community Index for July 2010
July Headline: C# is rated higher than Visual Basic for the first time in history
上月榜单:2010年6月编程语言排行榜