查看原文
其他

21世纪编程语言死亡名单,Java、C与C++三巨头还能统治多久?

2017-09-08 王雪燕、John译 51CTO技术栈

 IT 圈有一个悬了很多年未决的世界谜题:“Java 到底什么时候会死啊?” 今年以来,一些比较流行的语言都呈现出稳定下降的趋势,像 Java 和 C 语言就是其中的大代表。


Java 屡“被死亡”?C 语言一蹶不振?

过去 16 年来(自 2001 年起),TIOBE 编程语言排行榜的三甲位置一直被 Java、C 与 C++ 长期占据。


Java 语言一度陷入狗带风波,“被死亡”和“被复活”了那么多次,现在它依然稳坐榜首。C 语言去年底就被爆一蹶不振,今年也是前三甲。


C# 与 Python 虽然已经被广泛认定为下一时代的核心编程语言,但在人气方面仍未得到充分体现。


C# 之所以无法进军三甲,主要是因为其在非 Windows 领域的采用率仍然不够理想。另一方面,Python 的动态类型化特性导致开发者们不倾向在大型以及/或者关键性软件系统中加以运用。


不过必须承认,三巨头与其他编程语言间的差距正在迅速缩小。而在三巨头逐渐失去压倒性优势之后,未来前景将如何变化目前还很难给出定论。


事实上,目前的趋势显示杂糅使用正步入主流,以单一编程语言开发的应用程序正变得越来越罕见。


按照这样的发展进程,未来 TIOBE 排行榜上还将出现更多人气缩水的语言选项。激动人心的时刻终于到来,相信大家和我们一样,也期待着看到未来几年中各类编程语言将迎来怎样的命运,又有哪些语言能够登上新时代的三甲宝座。

TIOBE 9 月编程语言排行榜 TOP20

TOP10 语言 TIOBE 指数走势

10 个编程语言历史排名(1987-2017)

注: 以下排名位次取决于 12 个月的平均值

编程语言“名人榜”(2003-2016)

“年度编程语言”获奖名单如下图所示,该奖项授予一年中评分最高的编程语言:

【说明】TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)进行计算。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。


这个排行榜可以用来考查你的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。

21世纪编程语言死亡名单

看完了上面一大堆的排行榜,咱们进入正题,在前面在众多“Java 已死”的月经帖中,今天终于有人正面回应了 Java 的死期。


据国外顾问机构约翰·库克博士的预测,到 2039 年 Java 将寿终正寝。换句话说,Java 只剩 22 年可活。


这时可能就会有人跳出来反驳约翰·库克,你凭什么这么说?有什么科学依据呢?


你还别说这还真不是空口说白话,确有科学依据的。 


《反脆弱》书里介绍了一个林迪效应:

  • 对于会自然消亡的事物生命每增加一天,预期寿命就会缩短一些。

  • 对于不会自然消亡的事物,生命每增加一天,意味着更长的预期剩余寿命。


林迪效应指出,经历的时间越长则未来生存的时间也越长。这适用于创造出来的事物,而不适用于生命体。一只小狗的寿命可能比一只老狗更长,但是一本已经在出版界发行了一个世纪的书可能在下一个世纪也会出现。


此前介绍了林迪效应的数学细节:幂律分布等等。而这篇文章所要阐述的关键事实是,如果某种东西具有林迪效应所描述的那种生存分布状态的话,那么其预期的未来寿命就等于当前的年龄。


例如,开头提到的那本 100 岁的书预计也会出现在下一个 100 年里。


请注意,这一切都是以概率分布为基础的,这并不是说,所有的新生事物都会很快消失,所有的东西都曾经是新的。


有人在哈姆雷特上演的首演那夜推测,几年后就没人会去关心哈姆雷特了。但现在我们知道哈姆雷特已经存在四个世纪了,而且还在变得越来越有名。林迪效果预测,人们在 25 世纪还能看到哈姆雷特的演出。


请注意,除了生存期之外,林迪效果丝毫没有考虑事物本身。某些人可能会基于一些其他信息而看好哈姆雷特,比如首演那天的演出效果等等,但这已经超出了林迪效应的考虑范围。


林迪效应可以简单地概括为“越活越年轻”。如果我们将林迪效应应用于编程语言,我们只考虑他们已经存在了多久,以及他们当前是否流行。根据 2017 年 9 月编程语言排行榜,Java、C 与 C++ 三巨头到底还能统治排行榜多久?


例如,你可能会认为,Go 语言将会因为谷歌公司的巨大影响力而长期存在,但是林迪效应并不会考虑这些信息。


所以,在这里,我们假设林迪效应成立,下面是我们预测的编程语言的寿命。

你可以质疑这个预测对某个语言的寿命有什么意义。例如,我认为 Lisp 会生存的更久一点,但如果将来人们用 Clojure 编程而不是用常见的 Lisp 呢。再比如,其他人不同意我这个看法。


“我们不知道到了 2100 年程序员会用什么语言进行编程。然而,我们知道它将被称为 FORTRAN。” C.A.R. Hoare 说。


那么这和 Java 的死亡有什么关系呢?


较老的编程语言,例如 FORTRAN,BASIC 和 COBOL 等虽然不是最流行的编程语言,但是它们在特定领域都有一定的应用。


而对于较新的编程语言,如 Go,Python,Java 和 C,则可能会被其他更新更好的语言所替代。也许生命周期还长不过较老的编程语言。


除了 Java,约翰·库克博士还预言了其他编程语言的生命周期。最先会挂掉的是近年来很热的 Go 语言(2025年),C#(2034 年),Python(2043 年),Haskell(2044 年),C(2062 年),Lisp(2075 年),FORTRAN(2077 年)。


换句话说,在本世纪结束时,这些语言都将消失。面对这种局面,程序员们有什么想说的:

网友A:搞得好像哪个程序员能编22年一样……

网友B:那还好,估计能撑到我退休,哈哈。

网友C:23333,全都灭亡了,将来就是我PHP的天下了。

网友D:大家先别动手,先弄死喊 PHP 的。

网友E:什么,我大 Java 要亡了???

网友F:2077 年之后用什么语言呢?

对于上面网友的疑问,您有什么看法呀?您觉得哪些语言不会死亡?为什么?欢迎在下方留言评论!


作者:王雪燕、John编译

编辑:陶家龙、孙淑娟


精彩文章推荐:

全球5000名的程序员和技术专家告诉你:2017什么工具最火?

成为技术大牛的秘诀都在8月的这十篇热门文章!

IT架构师绝对不能错过的34张史上最全技术知识图谱

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存