写点什么

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

  • 2008-01-27
  • 本文字数:1342 字

    阅读完需:约 4 分钟

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

2008-01-27 22:043420
用户头像

发布了 21 篇内容, 共 37043 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

从数据中台到AI中台,企业到底要建什么中台?

脑极体

List 和 Map 的排序

一盐难进

Java

如何理解Java8 的函数式编程

Rayjun

Java 函数式编程

数据库的乐观锁和悲观锁并非真实的锁

架构师修行之路

数据库 架构 乐观锁 悲观锁 分布式锁

LeetCode题解:21. 合并两个有序链表,利用数组排序,JavaScript,详细注释

Lee Chen

大前端 LeetCode

区块链+收藏品,全球三种典型应用路径的差异化

CECBC

区块链 应用价值

知路,然后智行远;懂行,所以万业兴

脑极体

DevOps 技术栈

柴锋

Linux DevOps 运维 敏捷 Shell

基于 grpc,protobuf搭建 server/client模型通信

是老郭啊

如何对 ElasticSearch 集群进行压力测试

白宦成

elasticsearch ELK Elastic Stack

HTTPS证书过期导致的故障

焦振清

运维 https SRE 服务故障 证书过期

JDK1.8新特性(七):默认方法,真香,开动!接口?我要升级!!

xcbeyond

接口 新特性 JDK1.8 默认方法 JDK1.8新特性

ARTS Week8

丽子

服务器与普通电脑的区别?

德胜网络-阳

Kafka处理请求的全流程解析

yes

kafka 面试 后端 消息队列 源码解析

踩坑记 | Flutter升级影响了NestedScrollView?

哈利迪

android

原来你是这样的B+树

Java技术宝典

B+树

# spring boot自定义线程池进行异步调用

一盐难进

Java

机器学习算法之——卷积神经网络(CNN)原理讲解

迈微AI研发社

学习 算法 卷积神经网络 CNN

机器学习算法之——K最近邻(k-Nearest Neighbor,KNN)分类算法原理讲解

迈微AI研发社

学习 算法 KNN K聚类

Go: 互斥锁和饥饿

陈思敏捷

mutex Go 语言

ARTS-week-2

saddamwilson

ARTS 打卡计划

2.2.1 类反射 -《SSM深入解析与项目实战》

谙忆

2.1.2 类加载器的工作原理与自定义加载器 -《SSM深入解析与项目实战》

谙忆

LeetCode题解:24. 两两交换链表中的节点,递归,JavaScript,详细注释

Lee Chen

大前端 LeetCode

troubleshoot之:用control+break解决线程死锁问题

程序那些事

Java JVM 死锁

多省市出台关于区块链人才引进的计划

CECBC

新基建 区块链技术

区块链跃升各国创新战略

CECBC

新基建 国家战略 区块链标准

如何设计实现一个证书加密签名工具包

三尾鱼

你为什么还在用存储过程?

架构师修行之路

数据库设计 架构设计

真正的勇士,会跨过六道裂谷,奔向云与AI的彼端

脑极体

TIOBE语言流行度排行显示混合编程时代到来_Ruby_Jeff Xiong_InfoQ精选文章