BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

TIOBE语言流行度排行显示混合编程时代到来

| 作者 Jeff Xiong  他的粉丝 发布于 2008年1月29日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

在编程语言流行度的评估方面,TIOBE一直是最为权威的机构之一。不久前该机构将Python评为2007年度编程语言

Python 被选为2007年度语言。最终,Python一年来取得了最大的增长 (2.04%)。没有清楚的原因为什么Python 在2007年取得了巨大的进步。上个月Python 在历史上第一次超越了Perl,这是Python 成为“工业标准”系统级粘合剂语言的信号。它尤其受到系统管理员和构建管理人员的喜爱。随着 Python 3的推出,Python在2008年继续上升的机会很大。
对比Python的快速增长,曾被评为2006年度编程语言的Ruby在07年中的流行度不升反降,同比下降了0.17%。但受到Python冲击最大的还是Perl:0.99%的下降幅度是主要脚本语言中最严重的。比Perl下滑更严重的C(-1.89%)和C++(-1.70%)所受的冲击则显然更多地来自Java、C#和Visual Basic。台湾iThome online对此评论说:
因为Python流行指数的上升,将Perl的名次往下挤到第7名。Paul Jansen观察Perl长期的变化趋势,从2005年以后,Perl的流行指数开始下滑,到2008年时,跌到只有最高时的一半。他认为Perl被 Python超越,意味着Python未来将取代Perl,成为用来连结不同软件组件的整合语言。
对于Ruby流行度的下滑,笔者认为主要原因——就像当初的快速上升一样——与Ruby on Rails的发展有关。经过几年近乎狂热的探索之后,Ruby on Rails适用的范围已经被基本摸清,甚至可以大胆地说:该用Rails开发的应用都已经在用Rails开发了。而一些Rails之外的Ruby实践被证明效果并不理想。例如用Ruby做系统管理和项目自动化的尝试,尽管我们看到了《Everyday Scripting with Ruby》这样的图书著作,但更多的组织仍然倾向于用Python来作为shell的替代品。

另一方面,Ruby on Rails朝向企业应用领域的推进也并不顺利。笔者曾经指出,Rails要进入企业应用领域,必须解决系统整合的问题。
系统整合。与遗留系统是否能够协同工作。这主要体现在两个方面:(1)消息系统;(2)遗留数据库。
但一年时间过去以后,这两方面的进展乏善可陈:关于“要不要(以及如何)用Ruby实现一个Hibernate”的讨论一直在进行,而消息中间件似乎更适合用Erlang来实现。其结果是,当Ruby on Rails坚持“做一件事并做好”的理念时,Ruby语言则越来越呈现“只能做这一件事”的状态。当那些扩展边界的尝试无疾而终时,Ruby流行度的下滑也就在情理之中了。

与此同时Lua在TIOBE的的榜单上窜升了30位。这种几乎专门用于游戏编程的脚本语言和专门用于高性能服务器编程的Erlang在07年中受到广泛的关注,似乎预示着混合语言编程时代的到来:人们不再执着于用一种语言解决所有问题,而是根据问题域选择最适合的语言。正像Ola Bini陈金洲分别(以不同的方式)说过的:
在未来的几年内,人们会越来越多地采用新的编程语言。当然,这并不意味着当前所用的语言会被取代,而是要结合不同的语言,并且针对特定问题选择恰当的语言。
其实这种趋势早已出现:人们越来越少地——像当年对比C++和Java那样——做编程语言之间的对比,更多的注意力被放在“它适合什么场景”这样的问题上。当一个典型的软件系统需要涉及4~5种主要编程语言时,这对于程序员究竟是机遇还是挑战?很大程度上这取决于程序员自己。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

编程语言的长尾 by 田 乐

我觉得python的确比ruby更扎实,作为胶水语言的能力更强。虽然一年中ruby的解释器有了重大的性能提升,但是和python比还要差很多。perl由于混乱的内置函数名,造成程序不够一致,也没有python方便写出容易读懂的程序。再加上django这个高性能的web框架对ror的一些挑战,python的确是年度语言。
现在的语言更像是一个程序员的长尾,有了更多的选择和更细的定位,那么混合编程也就成为了更加理性的选择。但是混合语言编程给一些程序员带来了不小的挑战。所以说,现在是彻底贯彻pragmatic programmer的时候了。

Re: 编程语言的长尾 by Chu Kevin

之前InfoQ有一篇文章谈到,混合语言编程的三个层次,我很认同那种说法。对于Python,Ruby这样的语言确实更适合作为中间层语言,快捷的开发创新性应用。

Re: 编程语言的长尾 by 陈 之过

ruby怎么能和python相比呢,不是一个数量级的啊,但是这也带来了负面的影响,由于涉及到的方面太多,而且没有绝对大宗的工业标准,python的发展受到了很大的制约,虽然在很多方面都有长足的发展,但是思路太过自由,这这一点上java是做的最好的,由于sun公司提出的j2ee规范,即保证了给各个厂商很大的自由度,还保证了兼容性,所以java才发展的这么顺利,而python时间却没有如此的标准出现,而反观ruby,基本是rails一枝独秀的状况,所以发展的方向感还是比较强的,当然,python的春天早已来到,现在可以说是百花齐放的时代,希望python能发展的更好!

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT