在编程语言流行度的评估方面, 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 种主要编程语言时,这对于程序员究竟是机遇还是挑战?很大程度上这取决于程序员自己。
评论