写点什么

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:043558
用户头像

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

关注

评论

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

项目经理如何有效管理需求变更?

万事ONES

需求管理 ONES 项目经理

VS code常用插件推荐(总结整理篇)

孙叫兽

vscode 大前端 插件 Vue 3 引航计划

Java8 的时间库(1):介绍 Java8 中的时间类及常用 API

看山

Java 6月日更

密码学系列之:feistel cipher

程序那些事

加密解密 密码学 程序那些事

react源码解析13.hooks源码

全栈潇晨

React

并发王者课-铂金1:探本溯源-为何说Lock接口是Java中锁的基础

MetaThoughts

Java 多线程 并发 并发王者

面试官问“你有什么问题要问我”,如何完美回答?

架构精进之路

6月日更

页面怎么布局,当然是Grid ԅ(¯﹃¯ԅ)

空城机

JavaScript 大前端 6月日更 页面布局

论现代科技发展趋势:停滞、减速 OR 蓄力?

老猿Python

发展 科技 软件技术

【21-8】PowerShell 输入输出

耳东@Erdong

PowerShell 6月日更

JDK 工具大合集

看山

Java 6月日更

OpenVINO+微软黑客松比赛项目简介

IT蜗壳-Tango

IT蜗壳 6月日更

Linux之ls命令

入门小站

Linux

Java包装类(Integer 详解 )

若尘

java编程 6月日更

【Flutter 专题】103 初识 Flutter Mixin

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

【Vue2.x 源码学习】第十五篇 - 生成 ast 语法树 - 构造树形结构

Brave

源码 vue2 6月日更

故事|订单系统中的补偿事务

悟空聊架构

故事 事务 6月日更 订单系统 补偿事务

连续七年,我们持续领跑

🌏【架构师指南】总结分库分表的实现方案

码界西柚

分库分表 架构师 6月日更 实现方案

架构实战营模块六总结

竹林七贤

软件工程,其实没有任何工程而言

实力程序员

用EasyRecovery“监控硬盘”功能检测硬盘问题的方法

淋雨

数据恢复 EasyRecovery 文件恢复

缓存的世界 Redis(二)-持久化

卢卡多多

redis redis持久化 配置文件持久化 6月日更

【LeetCode】石子游戏Java题解

Albert

算法 LeetCode 6月日更

MySQL基础之十三:约束

打工人!

MySQL 6月日更

「SQL数据分析系列」4. 过滤操作

Databri_AI

数据库 SQL语言

前端开发华为鸿蒙系统应用 OpenHarmony JS

孙叫兽

华为 鸿蒙 OpenHarmony 鸿蒙开发 引航计划

PO 就是Scrum中的产品经理?别再搞不清啦

万事ONES

项目管理 Scrum 敏捷开发 PO ONES

一分钟开发一个表单

蛋先生DX

vue.js 表单 动态表单 6月日更

Python——字典的使用

在即

6月日更

快来,这里有23种设计模式的Go语言实现

华为云开发者联盟

线程 设计模式 单例模式 Go 语言

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