投递人 itwriter 发布于 2012-01-16 23:54 评论(16) 有6234人阅读  原文链接  [收藏]  « »

  英文原文:The Rise and Fall of Programming Languages in 2011

  在过去的一年里,编程领域迎来了翻天覆地的变化:移动设备成为编程工作的主要平台,而另一方面云也成为数据及应用程序的一大特定平台。在二者之间,台式机与笔记本电脑则在内存容量及处理器核心数方面突飞猛进。可以预见的是,上述变化将给开发语言的选择带来深远影响。

  极负盛名的 Tiobe 编程语言排名榜(一份相当权威的榜单,不仅密切关注各种语言及衍生产品,还会以百分比形式及时公布具体的变动幅度)表示,在过去一年中发展势头最强劲的语言为 Objective-C。我相信大家对这一结果应该不会太过惊讶。随着 iPhone、iPod 以及 iPad(Mac 也在一定程度上推波助澜)在全球范围内的风靡,对 Objective-C 使用技能的需求也得到了显著提高。

  移动设备的兴起同样对 Java 造成冲击。尽管在过去十年中,Java 在 Tiobe 榜单上的各项数据已经处于衰退之中,但近两年却又有卷土重来之势——我相信这与 Android 开发领域的繁荣密不可分——一年来,Java 甚至成功捍卫了自己的市场占有率。根据我的分析,Android 平台的出现成功为 Java 找到了一展身手的空间,尤其是在诸如 Scala、Groovy 以及 JRuby 等 JVM 语言逐步蚕食台式机及服务器平台的大环境之下,新平台堪称是 Java 的救星。

  随着移动编程的繁荣发展,开发人员们也将注意力转移到较为低级但更贴近硬件本身的编程语言上。通常情况下,由于移动设备上的应用程序往往使用较小的代码库,同时充分发挥硬件功能也需要使用特定种类的语言,因此脚本语言在这方面也显得较为疲软(苹果公司对编程语言及工具的严格控制也助长了这种趋势)。综上所述,多年以来(也可能是有史以来)各种主流脚本语言——包括 Perl、Python、Ruby 以及 PHP 等——第一次兵败滑铁卢。其中 Python 与 Ruby 则折戟沉沙得更加彻底。

  根据 Ohloh.net 网站的总结,Ruby 作为一款开源编程语言赢得了开发者们广泛的关注,这从其获得的捐赠数额上可见一斑;凭借这样的人气,Ruby 占据了 Tiobe 排行榜中的榜眼位置。而去年 Ruby 在代码使用规模方面达到了 2006 年以来的最低水平——只有 2008 年鼎盛时期的五分之一。我认为这种现象的出现,部分原因在于 Ruby on Rails(简称 RoR)引发的热潮渐渐平息;另外虽然 Ruby 框架本身不存在任何固有缺陷,但必须承认它只能作为大型项目的备选解决方案之一,而无法搞定所有问题。另外,其它类型的框架也已经开始在原创优势方面痛下苦功,这进一步削弱了 RoR 的卖点。Python 在 Tiobe 排行榜中的下滑并没有反映在 Ohloh 统计数字中,这可能表明尽管 Python 用户群体并未缩水,但由于市场整体规模的迅速扩张,导致其相对份额变得更小。

  我个人认为 PHP 的颓势主要源自 JavaScript 的崛起。JavaScript 虽然在 Tiobe 排行榜中的晋升幅度并不夸张,但其在开源软件项目中的使用比例却有了长足进步。PHP 与 JavaScript 在功能性方面有着一定程度的重叠,而很明显后者正慢慢成为时代的宠儿。一项新的调查(感谢 PHP 的出品公司 Zend 预先向我们透露了这份调查内容)显示,82% 的 PHP 开发人员将 JavaScript 作为第二语言(而在二者之外排到第三位的竞争者 Java 则仅占据了微不足道的 24%)。不过目前还难以判断 JavaScript 是否能够将这种优势一直保持下去。正如我在几个月前的文章中所说,我越来越认同 JavaScript 将成为一种通用型中间语言的趋势,而 Coffeescript 与 Dart 等则会成为前端语言的主流代表。就个人而言,我希望各浏览器厂商能够愿意将 JavaScript 编译化二进制程序作为未来浏览器加速机制的重要组成部分;不过我认为这同时可能会给某些浏览器在指令扩展方面走向开源,进而阻碍有针对性的性能优化。

  由脚本语言转向本机语言的的流行趋势在 .NET 领域也表现得相当明显。C#的一炮而红就很说明问题(其提升幅度仅次于 Objective-C 而排在第二),这股趋势甚至一举让 C# 稳居 C++ 之上,占据了 Tiobe 排行榜的探花位置。我相信这种增幅在很大程度上与开发人员脱离 Visual Basic 有关。这种趋势非常奇怪地削弱了 .NET 的主旨,即开发者在同一平台上使用多种互操作语言的习惯。但事实上,与 .NET 相关的各类语言紧密围绕在了以 C# 为核心的中央周围,进而弱化了原有使用习惯带来的益处(具有讽刺意味的是,JVM 则遭遇到完全相反的事态,即多种具有互操作性的备用语言逐渐占据上风)。

  一年还不足以使一种趋势成为常态,因此上述变化将以何种方式收尾目前还无法得到定论。然而非脚本语言的发展由于其遍地开花的良好势头,可能真的预示着长期以来束缚着开发者们的固定习惯即将动摇。尽管执行平台在性能与接合的严密程度方面难免有所损失,但相比之下似乎一切都是值得的。结局会怎样?让我们拭目以待吧。

  【相关链接】

  2012年 1 月编程语言排行榜:C#超 C++ 勇夺第三

  2011年 12 月编程语言排行榜:C#快取代第三名的C++

  2011年 11 月编程语言排行榜:Objective-C能成为年度编程语言?

  2011年 10 月编程语言排行榜:Java 人气持续走低

  2011年 9 月编程语言排行榜:D语言重返 Top 20

  2011年 8 月编程语言排行榜:F#首次进入前 20

  2011年 7 月编程语言排行榜:Objective-C将成为年度语言

  2011年 6 月编程语言排行榜:Lua 进入前十

  2011年 5 月编程语言排行榜:C#与 Objective-C创新高

  2011年 4 月编程语言排行榜:Lua 势如破竹

  2011年 3 月编程语言排行榜:C#超 Python 和 PHP

  2011年 2 月编程语言排行榜:Python 超 PHP

  2011年 1 月编程语言排行榜:Python 称霸 2010

10
1
来自: 51CTO
博问,解决您的技术难题 分享到: 新浪微博 腾讯微博 搜狐微博
相关标签: 程序员 编程语言
已经有 16 位园友对此新闻发表了看法。 发表评论

热门评论

  • Jeffrey Zhao 发表于 01-17 09:59
    Ruby是榜眼?Java那么低劣的语言当然没人围绕了,为什么会有其他语言越来越火热啊,就是Java太差了啊。
    支持(7) 反对(2)
  • magicDict 发表于 01-17 12:11
    @Jeffrey Zhao Java差不差是一个问题,不过,有多少人用又是另一个话题了。 IBM在后面挺Java,所有的Mainframe都支持Java,保险,银行,赚钱的行业都是支持Java,所以Java才牛啊。包括现在的Android也是Java的。。。 一个东西好不好,受不受欢迎,有时候和品质无关,和需求有关。 就像A片一样,如果电视台放A片,收视率也会超过很多电视节目的。 需求是第一位的。
    支持(4) 反对(0)
  • BruceWu 发表于 01-17 08:33
    Objective-C明年增速将放缓
    支持(4) 反对(0)
  • 宇宙大将军 发表于 01-17 14:09
    @Jeffrey Zhao 又见客观公正的老赵将大家从贬低Java的方向拉回到更加贬低Java的方向。
    支持(3) 反对(0)
  • wantme 发表于 01-18 09:30
    我也讨厌Java 写出的程序丑陋得象刚刚脱离动物的原始人 效率缓慢得真想大吼一声. 但是,TMD 许多医保软件,农合软件,等等,是用Java写的 好象不用Java写,就体现不出这个公司对客户的重视程度,也体现不出这个公司的技术水平. 哎!!!!!!!!!!!!!!! 只出,可喜的是,越来越多的企业换下了java,用上了.net ,因为他们知道,在微软的系统上跑java,就相当于无事找抽,只会给后续的维护留下深深的 隐患
    支持(3) 反对(0)
  • abraham lee 发表于 01-17 09:43
    C#的崛起与mono项目有关吧,mono越来越可爱了
    支持(2) 反对(3)
  • NewSea. 发表于 01-17 12:41
    @magicDict 如果所有电视台都放可以放A片, 收视率不一定会超过其它电视节目 !!! IBM挺Java 没用, 就像 大家喜欢A片一样. 老赵说的差,是Java本身比较差.说的还是很有道理的. Java 的需求 可以完全由其它软件来完成. C# + Mono 也可以 !!!
    支持(2) 反对(2)